Aracılığıyla paylaş


CA1822: Üyeleri statik olarak işaretleyin

Özellik Değer
Kural Kimliği CA1822
Başlık Üyeleri static olarak işaretleyin
Kategori Performans
Hataya neden olan veya bozulmayan düzeltme Hataya neden olmayan - Yaptığınız değişiklik ne olursa olsun üye derlemenin dışında görünmüyorsa.

Hataya neden olmayan - Üyeyi anahtar sözcüğüyle bir örnek üyesi olarak this değiştirirseniz.

Breaking - Üyeyi bir örnek üyesinden statik üyeye değiştirirseniz ve derlemenin dışında görünür durumdaysa.
.NET 8'de varsayılan olarak etkin Öneri olarak

Neden

Örnek verilerine erişmeyen bir üye statik olarak işaretlenmez (Visual Basic'te paylaşılan).

Kural açıklaması

Örnek verilerine erişmeyen veya örnek yöntemlerini çağırmayan üyeler statik olarak işaretlenebilir (Visual Basic'te paylaşılan). Yöntemleri statik olarak işaretledikten sonra, derleyici sanal olmayan arama sitelerini bu üyelere yayar. Sanal olmayan çağrı sitelerini yayma, geçerli nesne işaretçisinin null olmayan olduğundan emin olan her çağrı için çalışma zamanında bir denetim yapılmasını engeller. Bu, performansa duyarlı kod için ölçülebilir bir performans kazancı elde edebilir. Bazı durumlarda, geçerli nesne örneğine erişilamaması bir doğruluk sorununu temsil eder.

İhlalleri düzeltme

Üyeyi statik (veya Visual Basic'te Paylaşılan) olarak işaretleyin veya uygunsa yöntem gövdesinde 'this'/'Me' kullanın.

Uyarıların ne zaman bastırılması gerekiyor?

Düzeltmenin hataya neden olacağı önceden gönderilen kod için bu kuraldan gelen bir uyarıyı engellemek güvenlidir.

Uyarıyı gizleme

Yalnızca tek bir ihlali engellemek istiyorsanız, kuralı devre dışı bırakmak ve sonra yeniden etkinleştirmek için kaynak dosyanıza ön işlemci yönergeleri ekleyin.

#pragma warning disable CA1822
// The code that's violating the rule is on this line.
#pragma warning restore CA1822

Bir dosya, klasör veya projenin kuralını devre dışı bırakmak için, yapılandırma dosyasındaki önem derecesini noneolarak ayarlayın.

[*.{cs,vb}]
dotnet_diagnostic.CA1822.severity = none

Daha fazla bilgi için bkz . Kod analizi uyarılarını gizleme.

Çözümlemek için kod yapılandırma

Bu kuralın kod tabanınızın hangi bölümlerinde çalıştırılacaklarını yapılandırmak için aşağıdaki seçeneği kullanın.

Bu seçeneği yalnızca bu kural için, geçerli olduğu tüm kurallar için veya bu kategorideki (Performans) tüm kurallar için yapılandırabilirsiniz. Daha fazla bilgi için bkz . Kod kalitesi kuralı yapılandırma seçenekleri.

Belirli API yüzeylerini ekleme

Bu kuralın üzerinde çalıştırılacak kod tabanınızın hangi bölümlerini erişilebilirliklerine göre yapılandırabilirsiniz. Örneğin, kuralın yalnızca genel olmayan API yüzeyinde çalıştırılması gerektiğini belirtmek için projenizdeki bir .editorconfig dosyasına aşağıdaki anahtar-değer çiftini ekleyin:

dotnet_code_quality.CAXXXX.api_surface = private, internal