Кто-нибудь еще считает, что было бы полезно, если бы среда выполнения позволяла ссылки на элементы универсального интерфейса, не относящиеся к универсальному типу? Я знаю, что обычным «обходным путем» является создание неуниверсального интерфейса в качестве основы для универсального интерфейса, но есть ли веская причина против того, чтобы этот базовый интерфейс в основном был автоматическим?
Например, учитывая следующий интерфейс:
public interface IProcessor<T>
{
string Name { get; }
void Process(T item);
}
Я думаю, было бы удобно автоматически разрешить что-то вроде этого:
public void LogProcessor(IProcessor<> item)
{
Trace.WriteLine(item.Name);
}
Мне любопытно услышать аргументы против этого (кроме «хватит лениться и просто напиши базовый интерфейс»).