Freigeben über


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

CA1812: Nicht instanziierte interne Klassen vermeiden

CA1804: Nicht verwendete lokale Variablen entfernen