CA1700: Numaralandırma değerlerini 'Ayrılmış' olarak adlandırmayın
Özellik | Değer |
---|---|
Kural Kimliği | CA1700 |
Başlık | Sabit listesi değerlerini 'Reserved' olarak adlandırmayın |
Kategori | Adlandırma |
Hataya neden olan veya bozulmayan düzeltme | Yeni |
.NET 9'da varsayılan olarak etkin | Hayır |
Neden
Numaralandırma üyesinin adı "ayrılmış" sözcüğünü içerir.
Kural açıklaması
Bu kural, "ayrılmış" içeren bir ada sahip numaralandırma üyesi şu anda kullanılmamaktadır ancak yeniden adlandırılabilir veya gelecekteki bir sürüme kaldırıldığını varsayar. Üye kaldırma veya yeniden adlandırma bölünmesi farklıdır. Kullanıcıların yalnızca adında "ayrılmış" bulunduğu için üyeyi yoksaymasını beklememelisiniz. Ayrıca kullanıcıların belgeleri okumasına veya buna uymasına da güvenemezsiniz. Ayrıca, ayrılmış üyeler nesne tarayıcılarında ve akıllı tümleşik geliştirme ortamlarında göründüğü için, gerçekte hangi üyelerin kullanıldığı konusunda karışıklığa neden olabilirler.
Ayrılmış üye kullanmak yerine, gelecek sürümde numaralandırmaya yeni bir üye ekleyin. Çoğu durumda, ekleme özgün üyelerin değerlerinin değişmesine neden olmadığı sürece, yeni üyenin eklenmesi hataya neden olan bir değişiklik değildir.
Sınırlı sayıda durumda, özgün üyeler özgün değerlerini korusa bile üyenin eklenmesi hataya neden olan bir değişikliktir. Öncelikle, yeni üye, tüm üye listesini kapsayan ve varsayılan durumda bir özel durum oluşturan dönüş değeri üzerinde ( switch
Select
Visual Basic'te) deyimini kullanan arayanları kesmeden mevcut kod yollarından döndürülemez. İkincil bir sorun, istemci kodunun gibi System.Enum.IsDefinedyansıma yöntemlerinden gelen davranış değişikliğini işleyememesidir. Buna göre, yeni üyenin mevcut yöntemlerden döndürülması gerekiyorsa veya bilinen bir uygulama uyumsuzluğu düşük yansıma kullanımı nedeniyle oluşursa, tek bölünemez çözüm şunlardır:
Özgün ve yeni üyeleri içeren yeni bir numaralandırma ekleyin.
Özgün numaralandırmayı özniteliğiyle System.ObsoleteAttribute işaretleyin.
Özgün numaralandırmayı kullanıma sunan tüm dış görünür türler veya üyeler için aynı yordamı izleyin.
İhlalleri düzeltme
Bu kuralın ihlalini düzeltmek için üyeyi kaldırın veya yeniden adlandırın.
Uyarıların ne zaman bastırılması gerekiyor?
Şu anda kullanılan bir üye veya daha önce gönderilen kitaplıklar için bu kuraldan gelen bir uyarıyı gizlemeniz güvenlidir.
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 CA1700
// The code that's violating the rule is on this line.
#pragma warning restore CA1700
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.CA1700.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
İlgili kurallar
CA2217: Numaralandırmaları FlagsAttribute ile işaretlemeyin
CA1712: Numaralandırma değerleri için tür adıyla önek kullanmayın
CA1028: Numaralandırma depolaması Int32 olmalıdır