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 8'de 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 ( switchSelect 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:

  1. Özgün ve yeni üyeleri içeren yeni bir numaralandırma ekleyin.

  2. Ö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 noneolarak 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

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

CA1008: Numaralandırmalar sıfır değerine sahip olmalıdır

CA1027: Numaralandırmaları FlagsAttribute ile işaretleyin