我使用C# 8的可空引用类型。
我有一个通用类,可能会接受可空引用类型作为类型参数。
是否有一种方法可以基于可能为可空引用类型(甚至是Nullable结构体)的泛型类型参数声明非可空类型?
abstract class Selector<T>
{
T SelectedItem;
// how to make item parameter not nullable?
abstract string Format(T! item);
// how to make item parameter not nullable?
Func<T!, string> FormatFunction;
}
!
和?
符号。因为可空值类型和引用类型的实现方式完全不同,所以没有一种简单的通用方法来处理这两者。 - Lasse V. Karlsen