This question already has answers here:
Null or default comparison of generic argument in C#
(14个回答)
已关闭8年。
我希望能够检查一个值是否是其值类型的默认值。理想情况下,我想说:
但是,编译器提示无法对TValue和TValue进行
有没有更优雅/正确的方法来解决这个问题?
(14个回答)
已关闭8年。
我希望能够检查一个值是否是其值类型的默认值。理想情况下,我想说:
DoSomething<TValue>(TValue value) {
if (value == default(TValue)) {
...
}
}
但是,编译器提示无法对TValue和TValue进行
==
比较。到目前为止,这是我想到的最好的解决方法:DoSomething<TValue>(TValue value) {
if (value == null || value.Equals(default(TValue))) {
...
}
}
有没有更优雅/正确的方法来解决这个问题?
最佳答案
public bool EqualsDefaultValue<T>(T value)
{
return EqualityComparer<T>.Default.Equals(value, default(T));
}
关于c# - 使用泛型类型的默认值检查,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2187471/
10-10 14:25