CA1711: Tanımlayıcıların ekleri yanlış olmamalıdır.
Mülk | Değer |
---|---|
Kural Kimliği | CA1711 |
Başlık | Tanımlayıcılar yanlış sonek içermemelidir |
Kategori | Adlandırma |
Hataya neden olan veya bozulmayan düzeltme | Son Dakika |
.NET 9'da varsayılan olarak etkin | Hayır |
Neden
Bir tanımlayıcı yanlış bir son eke sahip.
Varsayılan olarak, bu kural yalnızca dışarıdan görünen tanımlayıcılara bakar, ancak bu yapılandırılabilir.
Kural açıklaması
Kural gereği, yalnızca, belirli temel türleri genişleten veya bazı arabirimleri ya da bu türlerden türetilmiş türleri uygulayan tür adları, belirli ayrılmış soneklerle bitmelidir. Diğer tür adları aşağıdaki ayrılmış sonekleri kullanmamalı.
Aşağıdaki tabloda ayrılmış sonekler ile ilişkilendirildiği temel türler ve arabirimler listelenmiştir.
Sonek | Temel tip/Arabirim |
---|---|
Attribute |
System.Attribute |
Collection |
System.Collections.ICollection System.Collections.IEnumerable System.Collections.Queue System.Collections.Stack System.Collections.Generic.ICollection<T> System.Data.DataSet System.Data.DataTable |
Dictionary |
System.Collections.IDictionary System.Collections.Generic.IDictionary<TKey,TValue> |
EventArgs |
System.EventArgs |
EventHandler |
Bir olay işleyici temsilcisi |
Exception |
System.Exception |
Permission |
System.Security.IPermission |
Queue |
System.Collections.Queue |
Stack |
System.Collections.Stack |
Stream |
System.IO.Stream |
Ayrıca, aşağıdaki sonekler kullanılmamalıdır:
Delegate
Enum
-
Ex
veya aynı türün önceki bir sürümünden ayırt etmek için benzer bir ek -
Flag
veyaFlags
enum türleri için -
Impl
(bunun yerine kullanınCore
) -
New
Aynı ada sahip bir üye zaten var ise amaNew
eki yoksa
Adlandırma kuralları, .NET ortak dil çalışma zamanını hedefleyen kitaplıklar için ortak bir görünüm sağlar. Bu kurallar, yeni yazılım kitaplıkları için gereken öğrenme eğrisini azaltır ve kitaplığın yönetilen kod geliştirme konusunda uzmanlığı olan biri tarafından geliştirildiğine dair müşteri güvenini artırır. Daha fazla bilgi için bkz . Adlandırma yönergeleri: Sınıflar, Yapılar ve Arabirimler.
İhlalleri düzeltme
Tür adından soneki kaldırın.
Uyarıların ne zaman bastırılması gerekiyor?
Sonekte uygulama etki alanında açık bir anlama sahip olmadığı sürece bu kuraldan bir uyarıyı bastırmayın.
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 CA1711
// The code that's violating the rule is on this line.
#pragma warning restore CA1711
Bir dosya, klasör veya projenin kuralını devre dışı bırakmak için, yapılandırma dosyasındaki önem derecesini none
olarak ayarlayın.
[*.{cs,vb}]
dotnet_diagnostic.CA1711.severity = none
Daha fazla bilgi için bkz . Kod analizi uyarılarını gizleme.
Analiz için kodu yapılandırın
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çenekleri kullanın.
Bu seçenekleri yalnızca bu kural için, uyguladıkları tüm kurallar için veya bu kategorideki tüm kurallar için (Adlandırma) yapılandırabilirsiniz. Daha fazla bilgi için bkz . Kod kalitesi kuralı yapılandırma seçenekleri.
Belirli API yüzeylerini ekleme
api_surface seçeneğini ayarlayarak, bu kuralın erişilebilirliği temelinde kod tabanınızın hangi bölümlerinde çalıştırılacaklarını 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
Not
XXXX
CAXXXX
bölümünü geçerli kuralın kimliğiyle değiştirin.
Soneklere izin ver
İzin verilen soneklerin listesini yapılandırabilirsiniz ve her sonek kanal karakteriyle ("|") ayrılmıştır. Örneğin, kuralın Flag ve Flags soneklerinde çalıştırılmaması gerektiğini belirtmek için projenizdeki bir .editorconfig dosyasına aşağıdaki anahtar-değer çiftini ekleyin:
dotnet_code_quality.ca1711.allowed_suffixes = Flag|Flags