CA1720: Tanımlayıcılar tür adları içermemelidir

Özellik Değer
Kural Kimliği CA1720
Başlık Tanımlayıcılar tür adları içermemelidir
Kategori Adlandırma
Hataya neden olan veya bozulmayan düzeltme Yeni
.NET 8'de varsayılan olarak etkin Hayır

Neden

Üyedeki bir parametrenin adı bir veri türü adı içerir.

-veya-

Üyenin adı dile özgü bir veri türü adı içerir.

Varsayılan olarak, bu kural yalnızca dışarıdan görünen üyelere bakar, ancak bu yapılandırılabilir.

Kural açıklaması

Parametrelerin ve üyelerin adları, geliştirme araçları tarafından sağlanması beklenen türlerini açıklamak yerine anlamlarını iletmek için daha iyi kullanılır. Üye adları için bir veri türü adı kullanılması gerekiyorsa, dile özgü ad yerine dilden bağımsız bir ad kullanın. Örneğin, C# türü adı intyerine, dilden bağımsız veri türü adını Int32kullanın.

Parametre veya üyenin adındaki her ayrık belirteç, büyük/küçük harfe duyarsız bir şekilde aşağıdaki dile özgü veri türü adlarında denetlenmektedir:

  • Boole
  • Wchar
  • Int8
  • UInt8
  • Kısa
  • Ushort
  • Int
  • Uint
  • Tamsayı
  • Uınteger
  • Uzun
  • Ulong
  • Imzasız
  • Imzalı
  • Kayan
  • Float32
  • Float64

Ayrıca, bir parametrenin adları, büyük/küçük harfe duyarsız bir şekilde aşağıdaki dilden bağımsız veri türü adlarında da denetlenmektedir:

  • Object
  • Boole
  • Char
  • String
  • SByte
  • Bayt
  • UByte
  • Int16
  • UInt16
  • Int32
  • UInt32
  • Int64
  • UInt64
  • Intptr
  • Ptr
  • İşaretçi
  • UInptr
  • UPtr
  • UPointer
  • Tekli
  • Çift
  • Ondalık
  • Guid

İhlalleri düzeltme

Bir parametreye karşı tetiklenirse:

Parametrenin adındaki veri türü tanımlayıcısını, anlamını daha iyi açıklayan bir terimle veya 'value' gibi daha genel bir terimle değiştirin.

Bir üyeye karşı tetiklenirse:

Üyenin adındaki dile özgü veri türü tanımlayıcısını anlamını, dilden bağımsız eşdeğeri veya 'değer' gibi daha genel bir terimi daha iyi açıklayan bir terimle değiştirin.

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

Tür tabanlı parametre ve üye adlarının zaman zaman kullanılması uygun olabilir. Ancak, yeni geliştirme için, bu kuraldan gelen bir uyarıyı gizlemeniz gereken bilinen hiçbir senaryo gerçekleşmez. Daha önce gönderilen kitaplıklar için bu kuraldan gelen bir uyarıyı gizlemeniz gerekebilir.

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 CA1720
// The code that's violating the rule is on this line.
#pragma warning restore CA1720

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.CA1720.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, geçerli olduğu tüm kurallar 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