Why は次のように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);
}
}
長所: 混乱を招くオーバーロードを回避するのに役立ちEquals
、おそらくコードがより明確になります。
それに対する短所はありますか?いくつかあるはずです。