Поместите 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
, и все в порядке. Но это ужасно. Почему это происходит?