摘要:严格的说,一个方法若抛出ArgumentNullException,其paramName值应该是这个方法自身定义的参数名称(是参数的名字而非其值)。在实践中,越来越多的代码将对参数值的一些检查交给若干Helper方法来完成。比如:
public static void CheckArgumentNotNull(object parameter, string parameterName){ if (null == parameter) { throw new ArgumentNullException(parameterName, StringResource.Get("ParameterCannotBeNULL")); }}
调用方法会把参数实例和参数名一起传给CheckArgumentNotNull,比如CheckArgumentNotNull(parent, "parent");注意到2者在字面上的区别只是有没有引号。
使用这样的Helper方法,使代码稍微简化了一些。而代码中出现的parameterName值也几乎不可能是"parameter"。这虽然违反了抛出ArgumentNullException的最初的设计指导,鉴于这样的使用越来越多,我们也就只能接受这样的实践。是为与时俱进的设计指导之一。...[
阅读全文]