你们都这样做:
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);
}
你怎么看?