[C#] методы интерфейса не доступны у класса
нет, реализован System.Array.System.Collections.IList.Contains(Object) : Boolean
для вызова нужно приводить к интерфейсу
для вызова нужно приводить к интерфейсу
Извиняюсь. Разобрался. До этого не сталкивался с Explicit interface member implementations
тему можно закрывать
тему можно закрывать
Это такая дурацкая особенность .net, которая выглядит совершенно неестественно и была, как говорят, введена только для того, чтобы не загромождать документацию стандартных классов, т.к. по мнению авторов это могло бы отпугнуть разработчиков от .net. Например, такой "простой" тип как Int32 содержит только 5 методов (согласно документации но в действительности их больше. Так, Int32 реализует еще 15 методов интерфейса IConvertible, но их можно вызвать, только после явного приведения к IConvertible.
>> Это такая дурацкая особенность .net, которая выглядит совершенно неестественно
Ваще-то это нужно, чтобы ты мог отнаследоваться от двух разных интерфейсов, содержащих функции с одинаковыми именами. Вот уж не знаю, где ты слышал про "загромождение документации стандартных классов".
Ваще-то это нужно, чтобы ты мог отнаследоваться от двух разных интерфейсов, содержащих функции с одинаковыми именами. Вот уж не знаю, где ты слышал про "загромождение документации стандартных классов".
Вот уж не знаю, где ты слышал про "загромождение документации стандартных классов
у самого Рихтера есть такая фраза...
у самого Рихтера есть такая фраза...

Оставить комментарий
6yrop
Как такое может быть? Класс System.Array реализует интерфейс System.Collections.IList, но у переменной типа Array не доступен, например, метод IList.Contains?