如果默认泛型属性可以为空,并且泛型类型不受任何限制,为什么不能用值NULL值填充该属性呢?
public class Class_0<TValue> where TValue : struct
{
public TValue? Value { get; } = null; // is valid
}
public class Class_1<TValue> where TValue : class
{
public TValue? Value { get; } = null; // is valid
}
public class Class_2<TValue>
{
public TValue? Value { get; } = null; // error
}
我需要属性能够是 struct 或类,并且始终用空值填充.我不能写这样的东西:where TValue : struct, class
.