Im рефакторинг кода и добавление метода, который заменит устаревший метод (скоро будущий). Новый метод имеет следующую подпись:
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
, я должен бросить ArgumentNullException для отдельных свойств параметра FooArgs
:
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");
Или добавить более общее ArgumentException для параметра целиком FooArgs
:
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");
Спасибо!