Согласно документации SortedList и SortedDictionary они оба реализуют IReadOnlyCollection<KeyValuePair<TKey,TValue>>
и IReadOnlyDictionary<TKey,TValue>
.Версии doc для .net 4.5.2 говорят то же самое, поэтому мой проект, нацеленный на C # 6.0 (то есть .NET 4.6, как говорится в Википедии), должен быть охвачен этим.
Согласно компилятору из VS 2015, нет.
Я не могу передать SortedDictionary<int, string>
этой функции:
private static void funcIROCollKvp1 (IReadOnlyCollection<KeyValuePair<int, string>> i_rocollkvp)
Какой из них неправильный?
Вот полный код:
private static void funcIROCollKvp1 (IReadOnlyCollection<KeyValuePair<int, string>> i_rocollkvp)
{
}
private static void Main ()
{
SortedList<int, string> listkvp = new SortedList<int, string> ();
SortedDictionary<int, string> dict = new SortedDictionary<int, string> ();
funcIROCollKvp1 (listkvp);
funcIROCollKvp1 (dict);
}
1> D: \ Проекты Visual Studio \ testTKS_vs2015 \ test03 \ Program.cs (18,24,18,31): ошибка CS1503: Аргумент 1: невозможно преобразовать из 'System.Collections.Generic.SortedList' в 'System.Collections.Generic.IReadOnlyCollection> '
1> D: \ Проекты Visual Studio \ testTKS_vs2015 \ test03 \ Program.cs (19,24,19,28): ошибка CS1503: Аргумент 1: невозможно преобразовать из' System.Collections.Generic.SortedDictionary 'to' System.Collections.Generic.IReadOnlyCollection> '