CA1053: Statik tutucu türlerinde oluşturucular bulunmamalıdır
TürAdı |
StaticHolderTypesShouldNotHaveConstructors |
CheckId |
CA1053 |
Kategori |
Microsoft.Design |
Bozan Değişiklik |
Bozan |
Sebep
Ortak veya iç içe geçmiş ortak bir tür yalnızca statik üyeleri bildirir ve ortak veya korumalı varsayılan bir constructor/kurucusu vardır.
Kural Tanımı
Statik üyeleri çağırma bir tür örneği gerektirmediğinden kurucu gereksizdir.Ayrıca türün statik olmayan üye bulundurmaması nedeniyle, bir örneğini oluşturma türün herhangi bir üyelesine erişim sağlamaz.
İhlallerin Düzeltilmesi
Bu kuralın bir ihlalini düzeltmek için, varsayılan kurucuyu kaldırın veya özel/private yapın.
[!NOT]
Eğer tür her hangi bir kurucu tanımlamıyorsa, bazı derleyiciler ortak/public varsayılan bir kurucu yaratırlar.Eğer türünüz ile ilgili durum buysa, ihlali ortadan kaldırmak için özel/private varsayılan bir kurucu ekleyin.
Uyarılar Ne Zaman Bastırılmalı
Bu kuraldan bir uyarı gizlemeyin.Kurucu varlığını türün statik türde olmadığını gösterir.
Örnek
Aşağıdaki örnekte, bu kuralı ihlal eden bir tür gösteriliyor.Kaynak kodunda varsayılan kurucu olmadığına dikkat edin.Bu kod bir assembly/derlemenin içine derlendiğinde, C# derleyicisi bu kuralı ihlal edecek bir varsayılan kurucu ekler.Bu sorunu gidermek için bir private/özel kurucu bildirin.
using System;
namespace DesignLibrary
{
public class NoInstancesNeeded
{
// Violates rule: StaticHolderTypesShouldNotHaveConstructors.
// Uncomment the following line to correct the violation.
// private NoInstancesNeeded() {}
public static void Method1() {}
public static void Method2() {}
}
}