Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Общие вопросы по .NET и C# > отсутствие метода в наследнике


Автор: Stas123 10.8.2011, 11:09
столконулся с такой пробленой.
Еспользую класс из сторонней библиотеки - IStrategyRuleList : IList<StrategyRule>, 
    ICollection<StrategyRule>, IEnumerable<StrategyRule>, IEnumerable, 
    ISynchronizedCollection

ISynchronizedCollection - тоже класс из этой библиотеки.

хочу вызвать у объекта IStrategyRuleList метод RemoveAt();
во время выполнения вылетает с ошибкой - Указанный метод не поддерживается.
Как такое может быть и что с этим делать?

Remove() - все нормально работает.

Автор: YankovskyAndrey 16.8.2011, 11:39
Проблема вызвана http://msdn.microsoft.com/ru-ru/library/ms173157.aspx. Надо привести IStrategyRuleList к конкретному интерфейсу, в данном случае IList.

Код

interface IStrategyRuleList : ...
{
    RemoveAt(int n); 
    
    //явная реализация интерфейса. Для вызова метода требуется сначала привести наследника к IList
    IList.RemoveAt(int n);
}


Автор: Stas123 16.8.2011, 13:02
Спасибо.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)