你们都可以这样做:
public void Proc(object parameter)
{
if (parameter == null)
throw new ArgumentNullException("parameter");
// Main code.
}
Jon Skeet曾经提到他有时会使用这个扩展来进行检查,所以你可以这样做:
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);
}
你认为怎样?