SLa*_*aks 8 .net c# constructor fxcop ca1062
我有一个包含两个构造函数的类,如下所示:
public MyClass(SomeOtherClass source) : this(source, source.Name) { }
public MyClass(SomeOtherClass source, string name) { /* ... */ }
Run Code Online (Sandbox Code Playgroud)
当我运行的FxCop,它正确地报告违反CA1062:ValidateArgumentsOfPublicMethods,因为如果source是null在第一个构造函数,它会抛出一个NullReferenceException上source.Name.
有没有办法解决这个警告?
我可以创建一个检查null并返回其参数的扩展方法,但它会很难看.此外,据我所知,它不会解决警告,因为FxCop不会意识到它的作用.
arb*_*ter 10
像这样?
public MyClass(SomeOtherClass source) : this(source, source == null ? null : source.Name) { }
public MyClass(SomeOtherClass source, string name) { /* ... */ }
Run Code Online (Sandbox Code Playgroud)