Почему ThrowIfNull
реализован как:
static void ThrowIfNull<T>(this T argument, string name) where T : class
{
if (argument == null)
{
throw new ArgumentNullException(name);
}
}
Не лучше ли было бы переписать как:
static void ThrowIfNull<T>(this T argument, string name) where T : class
{
if (object.ReferenceEquals(argument, null))
{
throw new ArgumentNullException(name);
}
}
Плюсы: помогает избежать путаницы Равно
перегрузок и, вероятно, делает код более понятным.
Любые минусы для который? Они должны быть.