Kullanım kuralları

Kullanım kuralları .NET'in düzgün kullanımını destekler.

Bu bölümde

Kural Açıklama
CA1801: Kullanılmayan parametreleri gözden geçir Yöntem imzası, yöntemin gövdesinde kullanılmayan bir parametre içerir.
CA1816: GC.SuppressFinalize öğesini doğru çağırın Dispose uygulaması olan bir yöntem çağırmazGC.SuppressFinalize; veya çağrısı GC.SuppressFinalizeuygulaması Dispose olmayan bir yöntem veya bir yöntem (Me Visual Basic'te) dışında this bir şeyi çağırır GC.SuppressFinalize ve geçirir.
CA2200: Yığın ayrıntılarını korumak için yeniden fırlatma Tekrar fırlatılan bir özel durum ve fırlatma açıklamasında açıkça belirtilen özel durum. Bir özel durum throw deyiminde özel durum belirterek yeniden fırlatılırsa yöntem listesi özel durum döndüren özgün yöntem ile kaybolan geçerli yöntem arasında çağırır.
CA2201: Ayrılmış özel durum türleri oluşturmayın Bu, özgün hatayı algılamayı ve hata ayıklamayı zorlaştırır.
CA2207: Değer türü statik alanları satır içi başlatın Bir değer türü açık bir statik oluşturucu bildirir. Bu kural ihlalini düzeltmek için bildirildiğinde, tüm statik veriyi başlatın ve statik oluşturucuyu kaldırın.
CA2208: Bağımsız değişken özel durumlarını doğru örnekleyin Varsayılan (parametresiz) kurucu veya ArgumentException türeyen özel bir durum türü için çağrı yapılır veya hatalı dize bağımsız değişkeni parametreli bir kurucu veya ArgumentException türeyen bir özel durum türü iletilir.
CA2211: Sabit olmayan alanlar görünür olmamalıdır Sabit veya salt okunur olmayan statik alanlar iş parçacığı açısından güvenli değildir. Böyle bir alana erişim dikkatle denetlenmelidir ve sınıf nesnesine erişimi eşitlemek için gelişmiş programlama teknikleri gerektirir.
CA2213: Atılabilen alanlar atılmalıdır uygulayan System.IDisposable bir tür, aynı zamanda uygulayan IDisposabletürlerdeki alanları bildirir. Dispose alanın yöntemi, bildirim türü yöntemi tarafından Dispose çağrılmaz.
CA2214: Geçersiz kılınabilir yöntemleri oluşturucular içinde çağırmayın Bir oluşturucu bir sanal yöntemi çağırdığında, yöntemini çağıran örneğin oluşturucusunun yürütülmemiş olması mümkündür.
CA2215: Atma yöntemleri taban sınıf atmayı çağırmalıdır Bir tür atılabilir bir türden devralıyorsa, temel türün yöntemini kendi Dispose yönteminden çağırması Dispose gerekir.
CA2216: Atılabilir türler sonlandırıcıyı bildirmelidir uygulayan System.IDisposableve yönetilmeyen kaynakların kullanılmasını öneren alanları olan bir tür, tarafından Object.Finalizeaçıklandığı gibi sonlandırıcı uygulamaz.
CA2217: Numaralandırmaları FlagsAttribute ile işaretlemeyin Dışarıdan görünen bir sabit listesi ile FlagsAttributeişaretlenir ve sabit listesi üzerinde iki veya diğer tanımlı değerlerin birleşimini kullanmayan bir veya daha fazla değere sahiptir.
CA2218: GetHashCode'u Eşittir'i geçersiz kılarak geçersiz kılın Ortak tür geçersiz kılar System.Object.Equals ancak geçersiz kılmaz System.Object.GetHashCode.
CA2219: Özel durum yan tümceleri içinde özel durum harekete geçirmeyin Bir istisna sonlandırıcı ya da arıza yan tümcesine neden olduğunda, yeni istisna aktif istisnayı saklar. Bir filtre yan tümcesinde özel durum oluştuğunda, çalışma zamanı özel durumu sessizce yakalar. Bu, özgün hatayı algılamayı ve hata ayıklamayı zorlaştırır.
CA2224: Eşittir işlecini aşırı yükleyerek eşittiri geçersiz kılın Ortak tür, eşitlik işlecini uygular ancak geçersiz kılmaz System.Object.Equals.
CA2225: İşleç aşırı yüklemeleri adlandırılmış alternatiflere sahiptir Operatör aşırı yüklemesi bulundu ve beklenen adlandırılmış alternatif yöntem bulunamadı. Adlandırılmış alternatif üye işleçle aynı işleve erişim sağlar ve aşırı yüklenmiş işleçleri desteklemeyen dillerde program yapan geliştiriciler için sağlanır.
CA2226: İşleçler simetrik aşırı yüklemelere sahip olmalıdır Bir tür eşitlik veya eşitsizlik işlecini uygular ve karşı işleci uygulamaz.
CA2227: Koleksiyon özellikleri salt okunur olmalıdır Yazılabilir koleksiyon özelliği kullanıcının koleksiyonun tamamını farklı bir koleksiyonla değiştirmesine izin verir. Salt okunur özelliği değiştirilmesini durdurur ancak yine de tekil üyelerin ayarlamasına izin verir.
CA2229: Serileştirme oluşturucularını uygulayın Bu kural ihlalini düzeltmek için seri hale getirme yapıcısını uygular. Kapalı bir sınıf için kurucusunu özel yapın; aksi takdirde korunmuş yapın.
CA2231: ValueType.Equals değerini geçersiz kılmada eşittir işlecini aşırı yükle Değer türü, eşitlik işlecini geçersiz kılar Object.Equals ancak uygulamaz.
CA2234: Dizeler yerine System.Uri nesneleri gönderin Adında "URI", "URI", "urn", "urn", "url" veya "url" içeren bir dize parametresi olan yöntem çağrısı yapıldı. Yönteminin bildirim türü, parametresi olan ilgili bir System.Uri yöntem aşırı yüklemesini içerir.
CA2235: Tüm serileştirilebilir olmayan alanları işaretleyin Seri hale getirilemeyen bir örnek alan türü seri hale getirilebilir bir tür içinde bildirilir.
CA2237: ISerializable türleri SerializableAttribute ile işaretleyin Ortak dil çalışma zamanı tarafından serileştirilebilir olarak tanınmak için türler, arabirimin uygulanması ISerializable aracılığıyla özel bir serileştirme yordamı kullansa bile SerializableAttribute özniteliğiyle işaretlenmelidir.
CA2241: Biçimlendirme yöntemlerine doğru bağımsız değişkenleri sağlayın geçirilen String.Format biçim bağımsız değişkeni, her nesne bağımsız değişkenine karşılık gelen bir biçim öğesi içermiyor veya tam tersi.
CA2242: NaN için doğru sınayın Bu ifade veya Double.Nanile Single.Nan bir değeri test ediyor. Değeri test etmek için veya Double.IsNan(Double) kullanınSingle.IsNan(Single).
CA2243: Öznitelik dize harfleri doğru çözümlenmelidir Bir özniteliğin dize değişmez değeri parametresi URL, GUID veya sürüm için doğru ayrıştırılmaz.
CA2244: Dizine alınan öğe başlatmalarını yinelemeyin Nesne başlatıcıda aynı sabit dizine sahip birden fazla dizinlenmiş öğe başlatıcısı vardır. Son başlatıcı dışında tümü yedeklidir.
CA2245: Kendisine özellik atama Bir özellik kendisine yanlışlıkla atandı.
CA2246: Aynı deyimde bir simge ve üyesi atama Aynı deyimde bir simgenin ve üyesinin( yani bir alanın veya özelliğin) atanması önerilmez. Üye erişiminin, atamadan önce simgenin eski değerini mi yoksa bu deyimdeki atamadaki yeni değeri mi kullanması amaçlandığı net değildir.
CA2247: TaskCompletionSource oluşturucusna geçirilen bağımsız değişken TaskContinuationOptions sabit listesi yerine TaskCreationOptions sabit listesi olmalıdır TaskCompletionSource'ta, temel görevi denetleen TaskCreationOptions'ı alan oluşturucular ve görevde depolanan nesne durumunu alan oluşturucular vardır. TaskCreationOptions yerine yanlışlıkla TaskContinuationOptions geçirilmesi, çağrının seçenekleri durum olarak işlemesine neden olur.
CA2248: 'Enum.HasFlag' için doğru 'enum' bağımsız değişkeni sağlayın Yöntem çağrısına HasFlag bağımsız değişken olarak geçirilen sabit listesi türü, çağrılan sabit listesi türünden farklıdır.
CA2249: String.IndexOf yerine String.Contains kullanmayı göz önünde bulundurun string.IndexOf Bir alt dizenin varlığını veya yokluğunu denetlemek için sonucun kullanıldığı yere yapılan çağrılar ile string.Containsdeğiştirilebilir.
CA2250: Kullan ThrowIfCancellationRequested ThrowIfCancellationRequested belirtecin iptal edilip edilmediğini otomatik olarak denetler ve varsa atar OperationCanceledException .
CA2251: Üzerinde kullanın String.EqualsString.Compare sonucunu String.Compare sıfırla karşılaştırmak yerine hem daha net hem de daha hızlı kullanılırString.Equals.
CA2252: Önizleme özelliklerini kabul etme Önizleme API'lerini kullanmadan önce özellikleri önizlemeyi kabul edin.
CA2253: Adlandırılmış yer tutucular sayısal değerler olmamalıdır Günlük iletisi şablonundaki adlandırılmış yer tutucular yalnızca sayısal karakterlerden oluşmalıdır.
CA2254: Şablon statik bir ifade olmalıdır Günlük iletisi şablonu aramalar arasında değişiklik göstermelidir.
CA2255: ModuleInitializer Öznitelik kitaplıklarda kullanılmamalıdır Modül başlatıcıları, uygulama kodu yürütülmeye başlamadan önce uygulamanın bileşenlerinin başlatılmasını sağlamak için uygulama kodu tarafından kullanılması amaçlanmıştır.
CA2256: Üst arabirimlerde bildirilen tüm üyelerin DynamicInterfaceCastableImplementation-attributed arabiriminde bir uygulaması olmalıdır ile DynamicInterfaceCastableImplementationAttribute özniteliklendirilen türler, türü uygulayan bir tür için arabirim uygulaması görevi görür IDynamicInterfaceCastable . Sonuç olarak, devralınan arabirimlerde tanımlanan tüm üyelerin bir uygulamasını sağlaması gerekir, çünkü uygulayan IDynamicInterfaceCastable tür aksi takdirde bunları sağlamaz.
CA2257: 'DynamicInterfaceCastableImplementationAttribute' ile bir arabirimde tanımlanan üyeler 'statik' olmalıdır Uygulayan IDynamicInterfaceCastable bir tür meta verilerde dinamik arabirim uygulamayabileceği için, bu tür üzerinde tanımlanan açık bir uygulama olmayan bir örnek arabirimi üyesine yapılan çağrılar çalışma zamanında başarısız olabilir. Çalışma zamanı hatalarından kaçınmak için yeni arabirim üyelerini static işaretleyin.
CA2258: Visual Basic'te 'DynamicInterfaceCastableImplementation' arabirimi sağlanması desteklenmiyor İşlevsel DynamicInterfaceCastableImplementationAttributeöznitelikli bir arabirim sağlamak için Visual Basic'te desteklenmeyen Varsayılan Arabirim Üyeleri özelliği gerekir.
CA2259: Yalnızca statik alanlarla kullanıldığından emin olun ThreadStatic ThreadStaticAttributeyalnızca (Shared Visual Basic'te) alanları etkiler static . Örnek alanlarına uygulandığında özniteliğinin davranış üzerinde hiçbir etkisi yoktur.
CA2260: Genel matematik arabirimlerini doğru uygulama Genel matematik arabirimleri, türetilmiş türün kendi kendine yinelenen tür parametresi için kullanılmasını gerektirir.
CA2261: ile kullanmayın ConfigureAwaitOptions.SuppressThrowingTask<TResult> Bu ConfigureAwaitOptions.SuppressThrowing seçenek genel Task<TResult>tarafından desteklenmez çünkü bu geçersiz TResultbir döndürülmesine neden olabilir.
CA2262: Düzgün ayarla MaxResponseHeadersLength Değerin doğru sağlandığından MaxResponseHeadersLength emin olun. Bu değer kilobayt cinsinden ölçülür.
CA2264: 'ArgumentNullException.ThrowIfNull' öğesine null atanamayan bir değer geçirmeyin Geçirilen bağımsız değişken 'null' olduğunda 'ArgumentNullException.ThrowIfNull' oluşturulur. Null değer atanamayan yapılar ve 'nameof()' ve 'new' ifadeleri gibi bazı yapıların hiçbir zaman null olmadığından 'ArgumentNullException.ThrowIfNull' hiçbir zaman oluşturmaz.
CA2263: Tür bilindiğinde genel aşırı yüklemeyi tercih edin Genel bir aşırı yükleme kullanmak, tür bilindiğinde bir System.Type bağımsız değişken geçirmek için tercih edilir, çünkü bunlar geliştirilmiş derleme zamanı denetimleriyle daha temiz ve daha tür güvenli kodu teşvik eder.