Mam klasy z dwóch konstruktorów, które wyglądają tak:CA1062: ValidateArgumentsOfPublicMethods dotyczące jednoczesnego konstruktora nazywa
public MyClass(SomeOtherClass source) : this(source, source.Name) { }
public MyClass(SomeOtherClass source, string name) { /* ... */ }
Kiedy uruchomić FxCop, słusznie zgłasza naruszenie CA1062: ValidateArgumentsOfPublicMethods, bo jeśli source
jest null
w pierwszy konstruktor, rzuci NullReferenceException
na source.Name
.
Czy istnieje sposób na naprawienie tego ostrzeżenia?
Mogę zrobić metodę rozszerzenia, która sprawdza wartość zerową i zwraca jej argument, ale byłaby brzydka. Ponadto, jak rozumiem, nie rozwiąże to ostrzeżenia, ponieważ FxCop nie zda sobie sprawy z tego, co robi.
Tak, to wszystko. Możesz także użyć dowolnej metody statycznej. – Groo