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 9'da 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ı int
yerine, dilden bağımsız veri türü adını Int32
kullanı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ı
- UInteger
- Uzun
- ULong
- Imzasız
- Imzalı
- Satışa Arz
- 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
- Boolean
- 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 none
olarak 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