Aracılığıyla paylaş


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ın Core )
  • Ex veya aynı türün önceki bir sürümünden ayırt etmek için benzer bir sonek
  • Flag veya Flags 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

Ayrıca bkz.