我希望能够检查某个值是否为其值类型的默认值。理想情况下,我想说:使用泛型类型进行缺省值检查
DoSomething<TValue>(TValue value) {
if (value == default(TValue)) {
...
}
}
然而,编译器抱怨说,它不能对TValue和TValue一个==
比较。这是我想出来的迄今为止最好的解决方法:
DoSomething<TValue>(TValue value) {
if (value == null || value.Equals(default(TValue))) {
...
}
}
有没有去这更优雅/正确的方法?
如果你抛出''类'约束你可能只是检查'null' ... – 2010-02-02 20:48:49
@Marc - 我知道,在这一点上它是一个问题的偏好。 – ChaosPandion 2010-02-02 20:51:48
我希望能够为任何类型的工作,包括价值和类的类型。 – StriplingWarrior 2010-02-02 21:02:27