Переопределение методов реализуемого родительским классом интерфейса

242
07 ноября 2017, 23:35

Имеется класс

public class EntitySet<TEntity>: List<TEntity> where TEntity: Enitity

Как известно, класс List реализует IEnumerable. Как мне переопределить метод IEnumerable.FirstOrDefault() в классе EnititySet?

Answer 1

Никак. FirstOrDefault — метод расширения, а методы расширения невиртуальны.*

Вы можете написать в вашем классе метод FirstOrDefault, но код, который использовал метод Enumerable.FirstOrDefault, будут всё так же его использовать (из-за невиртуальности).

С другой стороны, нехорошо подменять поведение по умолчанию. Скорее всего, ваша задача решается как-то по-другому.

*Хотя предложение о введении виртуальных методов расширения есть.

READ ALSO
If и JSON в С#?

If и JSON в С#?

Как сделать проверку если не существует элемента в json ? Есть json от стим веб апи(http://steamcommunitycom/market/priceoverview?appid=730&market_hash_name=

325
WPF ListView убрать подсветку

WPF ListView убрать подсветку

Доброго дня, знатоки! Столкнулся с такой проблемой, необходимо сделать выделение списка ListView прозрачным, чтобы оно вообще никак не фигурировало

301
Что лучше применять для построения &ldquo;чат&rdquo;-бота

Что лучше применять для построения “чат”-бота

Добрый день, товарищи! Собственно, почему "чат" в вопросе взято в кавычки: Требуется не совсем чат-бот, а просто бот, отвечающий на весьма и весьма...

258
Минимальное число [требует правки]

Минимальное число [требует правки]

Дано положительное 4-ёхзначное число, нужно вывести минимальное число, которое можно получить перестановкой цифр в заданом числе

242