【发布时间】:2012-02-08 01:02:07
【问题描述】:
public void DoFoo<T>(T foo) where T : ISomeInterface<T>
{
//possible compare of value type with 'null'.
if (foo == null) throw new ArgumentNullException("foo");
}
我故意只检查null,因为我不想限制ValueType 等于它的default(T)。我的代码以这种方式编译和工作得很好(ReSharper 抱怨,但不是 CodeAnalysis)。虽然我确实想知道:
- 有没有更标准的方法来处理这种情况?
- 是否有可能由此引发问题?
- 当我进行调用并传入值类型时,真正发生了什么?
【问题讨论】:
标签: c# generics null value-type null-check