CA1062: ValidateArgumentsOfPublicMethods für Co-Konstruktoraufrufe

8

Ich habe eine Klasse mit zwei Konstruktoren, die so aussehen:

%Vor%

Wenn ich FxCop ausführe, meldet es einen Verstoß gegen CA1062: ValidateArgumentsOfPublicMethods , denn wenn source ist null im ersten Konstruktor, es wird ein NullReferenceException auf source.Name geworfen.

Gibt es eine Möglichkeit, diese Warnung zu beheben?

Ich könnte eine Erweiterungsmethode machen, die nach Null sucht und ihr Argument zurückgibt, aber es wäre hässlich. Auch, wie ich verstehe, würde es die Warnung nicht lösen, weil FxCop nicht realisieren würde, was es tut.

    
SLaks 29.06.2009, 18:08
quelle

3 Antworten

10

So?

%Vor%     
arbiter 29.06.2009, 18:11
quelle
1

Es gibt legitime Zeiten, FxCop-Warnungen zu deaktivieren, und das könnte durchaus eine sein, aber Sie können das Problem entweder durch einen ternären Ausdruck beheben, der nach Null sucht und eine Ausnahme auslöst (oder einen Standardwert ersetzt) ​​oder einen Aufruf zu einer statischen Methode, die auf Null prüft und die entsprechende Ausnahme auslöst.

    
Jeff Yates 29.06.2009 18:15
quelle
0

Ich würde sagen, die einzige Möglichkeit, diese Warnung zu beheben, wäre, sie auszuschalten. FxCop ist ein großartiges Werkzeug, aber manchmal müssen Sie daran denken, dass es nur ein Werkzeug ist und Vorschläge machen kann, die nicht immer zu Ihrem Code passen.

In diesem Beispiel würde ich sagen, ignorieren Sie die Warnung oder deaktivieren Sie sie, wenn Sie sie nicht sehen wollen.

    
Andrew Hare 29.06.2009 18:10
quelle

Tags und Links