абстрактные ссылки на общие интерфейсы

Кто-нибудь еще считает, что было бы полезно, если бы среда выполнения позволяла ссылки на элементы универсального интерфейса, не относящиеся к универсальному типу? Я знаю, что обычным «обходным путем» является создание неуниверсального интерфейса в качестве основы для универсального интерфейса, но есть ли веская причина против того, чтобы этот базовый интерфейс в основном был автоматическим?

Например, учитывая следующий интерфейс:

public interface IProcessor<T> 
{
    string Name { get; }
    void Process(T item);
}

Я думаю, было бы удобно автоматически разрешить что-то вроде этого:

public void LogProcessor(IProcessor<> item)
{
        Trace.WriteLine(item.Name);
}

Мне любопытно услышать аргументы против этого (кроме «хватит лениться и просто напиши базовый интерфейс»).

5
задан WuffaloWill 18 March 2011 в 19:36
поделиться