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