Kullanım Uyarıları
Kullanım uyarıları .NET Framework'ün uygun kullanımını destekler.
Bu Bölümde
Kural |
Tanımlama |
---|---|
Yöntem imzası, yöntemin gövdesinde kullanılmayan bir parametre içerir. |
|
Yeni bir nesne oluşturulur, ancak hiç kullanılmaz; veya çağrılan yeni dizeyi oluşturur ve döndürür ve yeni dize hiç kullanılmaz; ya da COM veya P/Invoke yöntemi, bir HRESULT ya da hiç kullanılmayan hata kodu döndürür. |
|
Dispose uygulamasını çağırmayan yöntem GC.SuppressFinalize'ı çağırmaz; ya da Dispose çağrılarında GC.SuppressFinalize uygulamayan yöntem; ya da GC.SuppressFinalize'ı çağıran yöntem ve bundan başka şeyleri geçen yöntemdir (Benim Visual Basic). |
|
Bir özel durum yeniden atılmış ve özel durum içinde throw deyimini açıkça belirtilen.Bir özel durum throw ifadesi içinde özel durum belirterek yeniden oluşursa, özel durum gönderdi orijinal yöntemi geçerli yöntem arasındaki yöntem çağrıları kayıp listesidir. |
|
Bu, özgün hata algılamak ve hata ayıklamak sabit kılar. |
|
Yöntem uygulaması, aynı nesne üzerinde System.IDisposable.Dispose veya bir Dispose eşdeğer (örneğin, bazı türleri üzerinde Close() yöntemi) için birden fazla çağrı kodu yolları içerir. |
|
Bir yöntemin gövdesi içinde bir hazır bilgi dizesi Microsoft Yazım kitaplığı tarafından tanınmayan bir veya birkaç sözcük içerir. |
|
Bir platform çağırma yöntemi tanımlanır ve eşdeğer bir işlevselliği olan bir yöntem .NET Framework Sınıf Kitaplığı'nda bulunmaktadır. |
|
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. |
|
Varsayılan (parametresiz) kurucu veya ArgumentException türeyen bir özel durum türü için bir ç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. |
|
Ne sabitler, ne de salt okunur olan static alanlar güvenli iş parçacığı değildir.Böyle bir alana erişim dikkatle kontrol edilebilir ve sınıf nesnesine erişimi eşitlemek için Gelişmiş programlama teknikleri gerektirir. |
|
CA2212: Servis verilen bileşenleri WebMethod ile işaretlemeyin |
System.EnterpriseServices.ServicedComponent ' devralan bir türde bir yöntemin System.Web.Services.WebMethodAttribute ile işaretlenir.WebMethodAttribute ve bir ServicedComponent yönteminin çakışan davranışları ve bağlam ve işlem akışı için gereksinimleri olduğu için, bazı senaryolarda yöntemin davranışı yanlış olacaktır. |
IDisposable uygulayan türlerin alanları System.IDisposable uygulayan bir türle bildirilir.Bir Dispose yöntemi alanının tanıtıcısının bildirim türü Dispose yöntemi tarafından çağrılmaz. |
|
CA2214: Geçersiz kılınabilir yöntemleri oluşturucular içinde çağırmayın |
Bir kurucu sanal yöntemi çağırdığında, henüz çalıştırılmayan yöntemi çağıran örnek için olan yapıcı olması mümkündür. |
Bir tür atılabilen bir tipten devralınırsa, kendi Dispose yönteminden basit tip olan Dispose yöntemini çağırmalıdır. |
|
System.IDisposable uygular ve yönetilmeyen kaynakları kullanımı önermek alanları olan bir tür Object.Finalize tarafından belirtildiği gibi bir sonlandırıcı uygulamıyor. |
|
Dışarıdan görünür bir sıralama ile bileşik FlagsAttribute işaretlenir ve iki ya da numaralandırma tanımlanan diğer değerleri birleşimi kuvvetlerini olmayan bir veya daha fazla değeri vardır. |
|
CA2218: GetHashCode'u Eşittir'i geçersiz kılarak geçersiz kılın |
GetHashCode, karma algoritmalar ve karma tablolar gibi veri yapıları için uygun olan geçerli örneği temel alan bir değer döndürür.Aynı türdeki ve eşit olan iki nesnenin aynı karma kodu döndürmesi gerekir. |
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.Filtre yan tümcesinde bir özel durum ortaya çıktığında, çalışma zamanı özel durumu sessizce yakalar.Bu, özgün hata algılamak ve hata ayıklamak sabit kılar. |
CA2220: Sonlandırıcılar taban tür sonlandırıcıları çağırmalıdır |
Sonlandırılma, devralma hiyerarşisi aracılığıyla gönderilmelidir.Bunu güvence altına almak için, türler basit sınıflarının kendi Finalize yönteminde Finalize yöntemini çağırmalılar. |
Finalizers ailesi erişim değiştiricisi kullanmalı. |
|
Devralınan üyeleri için erişim değiştiricisini değiştirmemelisiniz.Devralınmış bir üyeyi özel olarak değiştirme, arayanların yöntemin temel sınıf uygulamasına erişmesini engellemez. |
|
Ortak dil çalışma zamanı, aynı üyeler arasında ayrım yapmak için dönüş türleri kullanımına izin verir, ancak bu özelliği ne ortak dil belirtimi ne de .NET programlama dillerinin ortak özelliğidir. |
|
CA2224: Eşittir işlecini aşırı yükleyerek eşittiri geçersiz kılın |
Ortak tür eşitlik işlecini uygulayan ancak Object.Equals geçersiz kılmaz. |
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ış diğer üye erişim işlecini aynı işlevleri sağlar ve fazla yüklenmiş işleçleri desteklemez dillerde program geliştiriciler için sağlanmıştır. |
Bir türü eşitlik veya eşitsizlik işleci uygular ve ters işleci uygulamıyor. |
|
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. |
|
.NET Framework'ün yayım öncesi sürümleri kullanılarak oluşturulmuş kaynak dosyaları .NET Framework'ün desteklenen sürümleri tarafından kullanılamayabilir. |
|
Bu kural ihlalini düzeltmek için, seri hale getirme yapıcısını uygula.Kapalı bir sınıf için kurucusunu özel yapın; aksi taktide, korunmuş yapın. |
|
Ortak veya korumalı tür VarArgs çağırma kuralı params anahtar sözcüğünü kullanan bir ortak veya korumalı yöntem içerir. |
|
CA2231: ValueType.Equals değerini geçersiz kılmada eşittir işlecini aşırı yükle |
Bir değer türü Object.Equals'ı geçersiz kılar, ama eşitlik işlecini uygulamaz. |
CA2232: Windows Forms giriş noktalarını STAThread ile işaretleyin |
STAThreadAttribute, COM uygulama modelinin bir tek iş parçacıklı grup olduğunu gösterir.Bu öznitelik Windows Forms kullanan herhangi bir uygulamanın girişinde sunulur; atlanırsa, Windows bileşenleri doğru çalışmayabilir. |
Aritmetik işlemler işlemin sonucu olarak yer alan veri türleri için olası değerler aralığı dışında olmadığından emin olmak için işlenen doğrulamadan yapılması gereken değil. |
|
Adında "URI", "URI", "urn", "urn", "url" veya "url" içeren bir dize parametresi olan bir yöntem çağrısı yapıldı. Bildirim türü yöntemi, System.Uri parametresini aşırı yüklemeye uyan yöntemi içerir. |
|
Seri hale getirilemeyen bir örnek alan türü seri hale getirilebilir bir tür içinde bildirilir. |
|
CA2236: ISerializable türler üzerinde taban sınıf yöntemlerini çağırın |
Bu kural ihlalini düzeltmek için, taban türü GetObjectData yöntemini veya karşılık gelen türetilmiş yöntemden ya da oluşturucudan serileştirme oluşturucusunu çağırın. |
CA2237: ISerializable türleri SerializableAttribute ile işaretleyin |
Tür ISerializable arabirimini uygulaması aracılığıyla özel bir seri hale getirme yordamı kullansa bile ortak dil çalışma zamanı tarafından seri hale getirilebilir olarak tanınması için türleri SerializableAttribute özniteliğiyle işaretlenmesi gerekir. |
Seri hale getirme olayı tanıtan bir yöntem tür, doğru görünürlüğe, dönüş türüne ve ya imzaya sahip değil. |
|
CA2239: İsteğe bağlı yöntemler için serileştirme kaldırma yöntemler sağlayın |
System.Runtime.Serialization.OptionalFieldAttribute özniteliği ile işaretlenmiş bir alan türüne sahip ve serinin olay yöntemlerini işleme türü sağlamaz. |
Bu kuralı ihlal düzeltmek için görünür ve geçersiz kılınabilir GetObjectData yöntem yapmak ve tüm örnek alanlar seri hale getirme işleminde veya açıkça NonSerializedAttribute özniteliğiyle işaretlenmiş olduğundan emin olun. |
|
CA2241: Biçimlendirme yöntemlerine doğru bağımsız değişkenleri sağlayın |
System.String.Format için geçirilen biçimi bağımsız değişkeni, her nesne değişkeni (veya tersi) karşılık gelen bir biçim öğesi içermiyor. |
Bu ifade, değeri Single.Nan veya Double.Nan'a karşı test eder.Single.IsNan(Single) ya da Double.IsNan(Double) değerini test etmek için kullanın. |
|
Harflerden oluşan dize parametresi, bir özniteliğin bir URL, bir GUID veya bir sürümü için doğru ayrıştırmaz. |