Ves*_*ian 2 c# generics nullable class
我正在尝试做这样的事情:
public class MySuperCoolClass<T>
{
public T? myMaybeNullField {get; set;}
}
Run Code Online (Sandbox Code Playgroud)
这可能吗?
这给了我错误:
错误CS0453:
T' must be a non-nullable value type in order to use it as type parameter泛型类型或方法System.Nullable'中的类型T'.
谢谢
Sri*_*vel 12
添加where T : struct通用约束以消除错误,因为Nullable<T>只接受struct.
public class MySuperCoolClass<T> where T : struct
{
public T? myMaybeNullField { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
Nullable<T> 定义如下
public struct Nullable<T> where T : struct
Run Code Online (Sandbox Code Playgroud)
所以你也被迫这样做,只是为了防止你做MySuperCoolClass<object>那些object?无效的做法.