Вы все делаете это:
public void Proc(object parameter)
{
if (parameter == null)
throw new ArgumentNullException("parameter");
// Main code.
}
Джон Скит однажды упомянул, что он иногда использует расширение для этой проверки, так что вы можете просто:
parameter.ThrowIfNull("parameter");
Итак, у меня есть две реализации этого расширения, и я не знаю, какая из них лучше.
Первый:
internal static void ThrowIfNull<T>(this T o, string paramName) where T : class
{
if (o == null)
throw new ArgumentNullException(paramName);
}
Второй:
internal static void ThrowIfNull(this object o, string paramName)
{
if (o == null)
throw new ArgumentNullException(paramName);
}
Что вы думаете?