CA1822: Member als statisch markieren
TypeName |
MarkMembersAsStatic |
CheckId |
CA1822 |
Kategorie |
Microsoft.Performance |
Unterbrechende Änderung |
Nicht unterbrechend – Wenn der Member unabhängig von der vorgenommenen Änderung außerhalb der Assembly nicht sichtbar ist. Nicht unterbrechend – Wenn Sie nur den Member mit dem this-Schlüsselwort in einen Instanzmember ändern. Unterbrechend – Wenn Sie den Member von einem Instanzmember in einen statischen Member ändern und er außerhalb der Assembly sichtbar ist. |
Ursache
Ein Member, der nicht auf Instanzdaten zugreift, ist nicht als statisch markiert (Shared in Visual Basic).
Regelbeschreibung
Member, die nicht auf Instanzdaten zugreifen oder keine Instanzmethoden aufrufen, können als static markiert werden (Shared in Visual Basic). Danach gibt der Compiler nicht virtuelle Aufrufsites an diese Member aus. wodurch eine Überprüfung zur Laufzeit aller Aufrufe verhindert wird, die sicherstellt, dass der aktuelle Objektzeiger ungleich NULL ist. Dies kann zu einer messbaren Leistungssteigerung für leistungsabhängigen Code führen. In manchen Fällen stellt es ein Problem mit der Richtigkeit dar, wenn nicht auf die aktuelle Objektinstanz zugegriffen werden kann.
Behandeln von Verstößen
Markieren Sie den Member als statisch (oder Shared in Visual Basic), oder verwenden Sie im Methodentext ggf. 'this'/'Me'.
Wann sollten Warnungen unterdrückt werden?
Eine Warnung dieser Regel kann bei zuvor veröffentlichtem Code, für den die Korrektur eine unterbrechende Änderung wäre, gefahrlos unterdrückt werden.
Verwandte Regeln
CA1811: Nicht aufgerufenen privaten Code vermeiden