class Program
{
static void Main(string[] args)
{
Console.WriteLine(SomeFunction<int>()==null);
var temp = new SomeClass<int>();
Console.WriteLine(temp.SomeFunction() == null);
Console.ReadKey();
}
static public T? SomeFunction<T>() where T : struct
{
return null;
}
public class SomeClass<T> where T : struct
{
public T? SomeFunction()
{
return null;
}
}
}
在上述示例中,为什么可空类型需要使用结构约束呢?我不明白为什么要用struct而不是object或class。
SomeFunction
必须声明where T : struct
?”Nullable<T>
本身是一个结构体这一事实是无关紧要的,即使Nullable<T>
是引用类型,你仍然必须添加where T:struct
约束。 - dcastro