我有一个包含两个构造函数的类,如下所示:
public MyClass(SomeOtherClass source) : this(source, source.Name) { }
public MyClass(SomeOtherClass source, string name) { /* ... */ }
当我运行 FxCop 时,它会正确地报告违反 CA1062: ValidateArgumentsOfPublicMethods ,因为如果第一个构造函数中的 source
为 null
,它将在 source.Name
上抛出 NullReferenceException
。
有什么办法可以解决这个警告吗?
我可以创建一个扩展方法来检查 null 并返回它的参数,但这会很丑陋。此外,据我所知,它不会解决警告,因为 FxCop 不会意识到它的作用。
最佳答案
像这样?
public MyClass(SomeOtherClass source) : this(source, source == null ? null : source.Name) { }
public MyClass(SomeOtherClass source, string name) { /* ... */ }
关于c# - CA1062:共同构造函数调用上的 ValidateArgumentsOfPublicMethods,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1059654/