CA1711: Tanımlayıcıların sonekleri yanlış olmamalıdır
Özellik | 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 | Yeni |
.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 ve ilişkili oldukları temel türler ve arabirimler listelenmiştir.
Sonek | Temel tür/Arabirim |
---|---|
Öznitelik | System.Attribute |
Koleksiyon | System.Collections.ICollection System.Collections.IEnumerable System.Collections.Queue System.Collections.Stack System.Collections.Generic.ICollection<T> System.Data.DataSet System.Data.DataTable |
Sözlük | System.Collections.IDictionary System.Collections.Generic.IDictionary<TKey,TValue> |
EventArgs | System.EventArgs |
EventHandler | Bir olay işletici temsilcisi |
Özel durum | System.Exception |
İzin | System.Security.IPermission |
Sıra | System.Collections.Queue |
Yığın | System.Collections.Stack |
Akış | System.IO.Stream |
Ayrıca, aşağıdaki sonekler kullanılmamalıdır:
Delegate
Enum
Impl
(bunun yerine kullanınCore
)Ex
veya aynı türün önceki bir sürümünden ayırt etmek için benzer bir sonekFlag
veyaFlags
sabit listesi türleri için
Adlandırma kuralları, ortak dil çalışma zamanını hedefleyen kitaplıklar için ortak bir görünüm sağlar. Bu, 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.
Çö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çenekleri kullanın.
Bu seçenekleri yalnızca bu kural için, geçerli olduğu tüm kurallar için veya bu kategorideki (Adlandırma) 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
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