У меня есть этот код:
public T? Foo<T>()
where T : class?
{
return null;
}
Это дает логическую и ожидаемую ошибку:
Параметр типа Nullable должен быть известен как тип значения или не Обнуляемый ссылочный тип. Попробуйте добавить ограничение 'class', 'struct' или type.
Теперь я добавлю еще одно ограничение:
public T? Foo<T>()
where T : class?, IDisposable // Could be any interface I guess
{
return null;
}
Теперь достаточно интересная ошибка только что исчезла. Хотя мне действительно кажется, что у нас противоречивые ограничения, так как интерфейс non-nullalbe
, а class?
-
Я что-то здесь упускаю или есть проблема с компилятором?