Я просматривал проект Проект, ориентированный на домен N-Layered.NET 4.0 Пример приложения, и просматривал какой-то код, который я не понимаю, В этом проекте они часто используют синтаксис, как показано ниже, для проверки аргументов для null:
public GenericRepository(IQueryableContext context,ITraceManager traceManager)
{
if (context == (IQueryableContext)null)
throw new ArgumentNullException("context", Resources.Messages.exception_ContainerCannotBeNull);
Зачем вам вводить null в тип объекта, который вы проверяете на null?