あなたは皆これをします:
public void Proc(object parameter)
{
if (parameter == null)
throw new ArgumentNullException("parameter");
// Main code.
}
Jon Skeet はかつて、拡張機能を使用してこのチェックを行うことがあると述べたので、次のことを実行できます。
parameter.ThrowIfNull("parameter");
そのため、この拡張機能の 2 つの実装を思いついたのですが、どちらが最適かはわかりません。
初め:
internal static void ThrowIfNull<T>(this T o, string paramName) where T : class
{
if (o == null)
throw new ArgumentNullException(paramName);
}
2番:
internal static void ThrowIfNull(this object o, string paramName)
{
if (o == null)
throw new ArgumentNullException(paramName);
}
どう思いますか?