以下内容无法编译:
public void MyMethod<T>(T value)
{
if (value == default(T))
{
// do stuff
}
}
错误: Operator '==' cannot be applied to operands of type 'T' and 'T'
我不能使用 value == null
,因为 T
可能是一个 struct。
我不能使用 value.Equals(default(T))
,因为 value
可能是 null
。
测试是否与默认值相等的正确方法是什么?