我正在查看“面向领域的N层.NET 4.0示例应用”项目,并发现了一些我不理解的代码。在这个项目中,他们经常使用以下语法来检查参数是否为null:
public GenericRepository(IQueryableContext context,ITraceManager traceManager)
{
if (context == (IQueryableContext)null)
throw new ArgumentNullException("context", Resources.Messages.exception_ContainerCannotBeNull);
为什么你要将null转换为你正在检查是否为空的对象类型?
null
就是null
,它没有类型。他们可能遵循某种“只应检查相同类型的对象是否相等”的论点,但我觉得这有点荒谬... - Travis Gockel