Поделиться через


CA1822: помечайте члены как статические

TypeName

MarkMembersAsStatic

CheckId

CA1822

Категория

Microsoft.Performance

Критическое изменение

Не критическое, если член не виден снаружи сборки вне зависимости от внесенных изменений.Не критическое, если член изменен на член экземпляра при помощи ключевого слова this.

Критическое - если член виден снаружи сборки и он изменен с члена экземпляра на статический член.

Причина

Член, не имеющий доступа к данным экземпляра, не помечен как статический (Shared в Visual Basic).

Описание правила

Члены, не обращающиеся к данным экземпляра и не вызывающие методы экземпляра, можно пометить как статические (Shared в Visual Basic).Если пометить методы как статические, компилятор предоставит этим членам невиртуальные места вызова.При этом отключается проверка каждого вызова во время выполнения (проверяется, что указатель текущего объекта не является нулевым).Это обеспечивает значительное повышение производительности при работе с кодом, для которого важна высокая производительность системы.В некоторых случаях невозможность доступа к экземпляру текущего объекта является нарушением правильности кода.

Устранение нарушений

Пометьте член как статический (или Shared в Visual Basic) или используйте "this"/"Me" в основной части метода, если возможно.

Отключение предупреждений

Можно безопасно отключать предупреждения этого правила для поставленного ранее кода, изменение которого будет критическим.

Связанные правила

CA1811: не используйте невызываемый закрытый код

CA1812: не создавайте внутренние классы без экземпляров

CA1804: удалите неиспользуемые локальные переменные