Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
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 GC.SuppressFinalize öğesini çağırmaz; veya Dispose uygulaması olmayan bir yöntem GC.SuppressFinalize öğesini çağırır; veya bir yöntem GC.SuppressFinalize öğesini çağırır ve this dışında bir şey geçirir (Visual Basic'te Me). |
| CA2200: Yığın ayrıntılarını korumak için yeniden fırlat | Bir özel durum yeniden fırlatılır ve özel durum, throw deyiminde açıkça belirtilir. Bir özel durum, throw deyiminde özel durum belirtilerek yeniden fırlatılırsa, özel durumu başlangıçta fırlatan yöntem ile geçerli yöntem arasındaki yöntem çağrıları listesi kaybolur. |
| 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, tüm statik verileri bildirildikleri anda başlatın ve statik oluşturucuyu kaldırın. |
| CA2208: Argüman özel durumlarını doğru örnekleyin | ArgumentException olan veya ondan türeyen bir özel durum türünün varsayılan (parametresiz) oluşturucusuna bir çağrı yapılır ya da ArgumentException olan veya ondan türeyen bir özel durum türünün parametreli oluşturucusuna hatalı bir dize bağımsız değişkeni geçirilir. |
| 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: Kullanılıp atılabilir alanlar uygun şekilde temizlenmelidir |
System.IDisposable uygulayan bir tür, türleri de IDisposable uygulayan alanlar bildirir.
Dispose alan yöntemi, bildiren türün Dispose yöntemi tarafından ç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: Dispose yöntemleri temel sınıfın Dispose yöntemini çağırmalıdır | Bir tür atılabilir bir türden devralıyorsa, kendi Dispose yönteminden temel türün Dispose yöntemini çağırmalıdır. |
| CA2216: Atılabilir türler sonlandırıcıyı bildirmelidir |
System.IDisposable uygulayan ve yönetilmeyen kaynakların kullanıldığını düşündüren alanlara sahip olan bir tür, Object.Finalize içinde açıklandığı gibi bir sonlandırıcı uygulamaz. |
| CA2217: Enum'ları FlagsAttribute ile işaretlemeyin | Dışarıdan görünür bir numaralandırma, FlagsAttribute ile işaretlenir ve iki'nin kuvveti olmayan ya da numaralandırmada tanımlanan diğer değerlerin birleşimi olmayan bir veya daha fazla değere sahiptir. |
| CA2218: Equals geçersiz kılındığında GetHashCode'u da geçersiz kılın | Bir genel tür, System.Object.Equals öğesini geçersiz kılar ancak System.Object.GetHashCode öğesini geçersiz kılmaz. |
| CA2219: Özel durum yan tümcelerinde özel durum oluşturmayın | Bir finally ya da fault bloğunda bir istisna oluştuğunda, yeni istisna etkin istisnayı gizler. Bir filtre ifadesinde özel durum oluşturulduğunda, çalışma zamanı bunu sessizce yakalar. Bu, özgün hatayı algılamayı ve hata ayıklamayı zorlaştırır. |
| CA2224: Eşitlik işleci aşırı yüklenirken Equals yöntemini geçersiz kılın | Genel bir tür, eşitlik işleçini tanımlar ancak System.Object.Equals öğesini geçersiz kılmaz. |
| CA2225: İşleç aşırı yüklemelerinin adlandırılmış karşılıkları vardır | 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. Yalnızca okunur bir özellik, koleksiyonun değiştirilmesini engeller ancak tek tek üyelerin ayarlanmasına yine de izin verir. |
| CA2229: Serileştirme oluşturucularını uygulayın | Bu kural ihlalini düzeltmek için serileştirme yapıcısını uygulayın. Sealed bir sınıf için oluşturucuyu private yapın; aksi takdirde protected yapın. |
| CA2231: ValueType.Equals’i geçersiz kılarken eşittir işlecini de aşırı yükleyin | 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ı "uri", "URI", "urn", "URN", "url" veya "URL" içeren bir dize parametresine sahip bir yönteme çağrı yapılır. Yöntemin tanımlandığı tür, System.Uri parametresine sahip karşılık gelen bir yöntem aşırı yüklemesi 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 ISerializable arabirimini uygulayarak özel bir serileştirme yordamı kullanıyor olsa bile SerializableAttribute özniteliğiyle işaretlenmelidir. |
| CA2241: Biçimlendirme yöntemlerine doğru argümanları geçirin | String.Format öğesine iletilen 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 denetimini doğru yapın | Bu ifade, bir değeri Single.Nan veya Double.Nan ile karşılaştırarak test eder. Değeri test etmek için Single.IsNan(Single) veya Double.IsNan(Double) kullanın. |
| CA2243: Öznitelik dize harfleri doğru çözümlenmelidir | Bir özniteliğin dize sabiti parametresi, URL, GUID ya da sürüm olarak doğru şekilde ayrıştırılamaz. |
| 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: Bir özelliği kendisine atamayın | Bir özellik kendisine yanlışlıkla atandı. |
| CA2246: Aynı ifadede bir simgeyi ve onun üyesini atamayın | 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şturucusuna 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' argümanını kullanın |
HasFlag yöntem çağrısına bağımsız değişken olarak geçirilen sabit listesi türü, çağıran sabit listesi türünden farklıdır. |
| CA2249: String.IndexOf yerine String.Contains kullanmayı göz önünde bulundurun | Sonucun bir alt dizenin bulunup bulunmadığını denetlemek için kullanıldığı string.IndexOf çağrıları, string.Contains ile değiştirilebilir. |
CA2250: ThrowIfCancellationRequested kullanın |
ThrowIfCancellationRequested, belirtecin iptal edilip edilmediğini otomatik olarak denetler ve iptal edilmişse OperationCanceledException fırlatır. |
CA2251: String.Compare yerine String.Equals kullanın |
String.Compare sonucunu sıfırla karşılaştırmak yerine String.Equals kullanmak hem daha açık hem de muhtemelen daha hızlıdır. |
| 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ükleme iletisi şablonundaki adlandırılmış yer tutucular yalnızca rakam karakterlerinden oluşmamalıdır. |
| CA2254: Şablon statik bir ifade olmalıdır | Günlükleme iletisi şablonu çağrılar arasında değişiklik göstermemelidir. |
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 üyeler, DynamicInterfaceCastableImplementation özniteliğiyle işaretlenmiş bir arabirimde bir uygulamaya sahip olmalıdır |
DynamicInterfaceCastableImplementationAttribute ile öznitelendirilen türler, IDynamicInterfaceCastable türünü uygulayan bir tür için arabirim uygulaması işlevi görür. Sonuç olarak, devralınan arabirimlerde tanımlanan üyelerin tümünü uygulaması gerekir; çünkü IDynamicInterfaceCastable öğesini uygulayan tür, aksi takdirde bunları sağlamayacaktır. |
| CA2257: 'DynamicInterfaceCastableImplementationAttribute' ile bir arabirimde tanımlanan üyeler 'statik' olmalıdır | Meta verilerde, IDynamicInterfaceCastable uygulayan bir türün dinamik bir arabirim uygulaması gerçekleştirme garantisi olmadığından, bu tür üzerinde açık bir şekilde tanımlanmamış bir örnek arabirim üyesine yapılan çağrılar çalışma zamanında başarısız olma ihtimaline sahiptir. Ç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 |
ThreadStaticAttribute, yalnızca static alanlarını (Visual Basic'te Shared) etkiler. Ö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: ConfigureAwaitOptions.SuppressThrowing öğesini Task<TResult> ile kullanmayın |
ConfigureAwaitOptions.SuppressThrowing seçeneği, genel Task<TResult> tarafından desteklenmez; çünkü bu, geçersiz bir TResult döndürülmesine yol açabilir. |
CA2262: Düzgün ayarla MaxResponseHeadersLength |
MaxResponseHeadersLength değerinin doğru şekilde sağlandığından emin olun. Bu değer kilobayt cinsinden ölçülür. |
| CA2263: Tür bilindiğinde genel aşırı yüklemeyi tercih edin | Tür biliniyorsa, System.Type bağımsız değişkeni geçirmeye göre jenerik bir aşırı yükleme kullanmak tercih edilir; çünkü bu yaklaşım, derleme zamanında daha iyi denetimler sağlayarak daha temiz ve tür açısından daha güvenli kod yazılmasını destekler. |
| CA2264: 'ArgumentNullException.ThrowIfNull' parametresine null olamayan bir değer geçirmeyin | Geçirilen bağımsız değişken 'null' olduğunda, 'ArgumentNullException.ThrowIfNull' özel durumu fırlatır. Null atanamayan struct'lar ile 'nameof()' ve 'new' ifadeleri gibi bazı yapılar, hiçbir zaman null olmadıkları bilindiğinden 'ArgumentNullException.ThrowIfNull' hiçbir zaman bir özel durum fırlatmaz. |
CA2265: Span<T> öğesini null veya default ile karşılaştırmayın |
Bir aralığı null veya default ile karşılaştırmak, amaçladığınız şeyi yapmayabilir.
default ve null değişmez değeri örtük olarak Span<T>.Empty türüne dönüştürülür. |
CA2266: Dosya tabanlı program giriş noktası ile başlamalıdır #! |
Dosya tabanlı bir program birden çok dosyadan oluştuğunda, giriş noktası dosyası dahil edilen diğer dosyalardan açıkça ayırt etmek için bir shebang (#!) satırıyla başlamalıdır. |
GitHub'da bizimle işbirliği yapın
Bu içeriğin kaynağı GitHub'da bulunabilir; burada ayrıca sorunları ve çekme isteklerini oluşturup gözden geçirebilirsiniz. Daha fazla bilgi için katkıda bulunan kılavuzumuzu inceleyin.