以下不會編譯:測試平等默認值
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
可能是一個結構。
我不能使用value.Equals(default(T))
,因爲value
可能是null
。
什麼是測試相等到默認值的正確方法?
回覆評論;並且對於信息來說,'EqualityComparer'是BCL使用的標準實現,例如'Dictionary <,>'。 –
2009-12-13 23:28:31
http://stackoverflow.com/questions/65351/null-or-default-comparsion-of-generic-argument-in-c-sharp – nawfal 2013-04-15 10:28:53