我正在重构一些代码,并添加一个将替代一个即将被弃用的方法的新方法。新方法具有以下签名:
FooResult Foo(FooArgs args) { ... }
弃用的方法包含了越来越多的参数。这些参数现在已经成为FooArgs
类的属性。弃用的方法有几个保护条件,其检查空值的结构如下:
if (parameter1 == null)
throw new ArgumentNullException(“parameter1”);
if (parameter... == null)
throw new ArgumentNullException(“parameter...”);
if (parameterN == null)
throw new ArgumentNullException(“parameterN”);
现在参数被整合到FooArgs
类中,那我应该为FooArgs
参数的各个属性抛出ArgumentNullException异常吗?
if (args.Property1 == null)
throw new ArgumentNullException(“args.Property1”);
if (args.Property... == null)
throw new ArgumentNullException(“args.Property...”);
if (args.PropertyN == null)
throw new ArgumentNullException(“args.PropertyN”);
或者为整个FooArgs
参数抛出一个更一般的ArgumentException:
if (args.Property1 == null)
throw new ArgumentException(“Property1 cannot be null.”, “args”);
if (args.Property... == null)
throw new ArgumentException(“Property... cannot be null.”, “args”);
if (args.PropertyN == null)
throw new ArgumentException(“Property2 cannot be null.”, “args”);
谢谢!
FooArgs
类,并且如果属性永远不应该为空,那么你可以将检查委托给类本身。 - Matthew Strawbridge