C # - Как мы должны реализовать значение по умолчанию (T) в интерфейсах?

Поместите default (T) в интерфейс. Явно реализует интерфейс.Результат не компилируется

public interface IWhatever<T>
{
   List<T> Foo(T BarObject = default(T));
}

public class ConcreteWhatever: IWhatever<ConcreteWhatever>
{
    List<ConcreteWhatever> Foo(ConcreteWhatever BarObject = default(T)) {}
}

Я полностью ожидаю default (ConcreteWhatever) . Я получаю default (T) , что приводит к ошибке компиляции.

Я просто захожу и заменяю default (T) на null , и все в порядке. Но это ужасно. Почему это происходит?

5
задан P.Brian.Mackey 29 August 2011 в 21:22
поделиться