Aracılığıyla paylaş


CA1012: Soyut türlerde oluşturucular bulunmamalıdır

TürAdı

StaticHolderTypesShouldNotHaveConstructors

CheckId

CA1012

Kategori

Microsoft.Design

Bozan Değişiklik

Bozmayan

Sebep

Ortak tür soyuttur ve public bir kurucusu vardır.

Kural Tanımı

Soyut türler üzerindeki kurucular yalnızca türetilen türler tarafından çağrılabilir.Ortak yapıcılar tipin bir örneğini yaptığından, ve siz bir soyut tipin örneğini yapamayacağınızdan, soyut sınıf hatalı biçimde dizayn edilmiş ortak yapıcıya sahip olur.

İhlallerin Düzeltilmesi

Bu kuralı ihlal düzeltmek için korumalı yapıcı olun veya soyut olarak türünü bildirmeyin.

Uyarılar Ne Zaman Bastırılmalı

Bu kuraldan bir uyarı gizlemeyin.Soyut tür bir genel oluşturucuya sahiptir.

Örnek

Aşağıdaki örnek, bu kuralı ihlal eden bir soyut türü içerir.

Imports System     

Namespace Samples

    ' Violates this rule       
    Public MustInherit Class Book 

        Public Sub New()          
        End Sub  

    End Class  

End Namespace
using System;

namespace Samples  
{   
    // Violates this rule       
    public abstract class Book      
    {          
        public Book()          
        {          
        }      
    } 
}

Aşağıdaki örnek, önceki ihlalini protected 'da public 'dan oluşturucunun erişebilirliğini değiştirerek giderir.

Imports System     

Namespace Samples

    ' Violates this rule       
    Public MustInherit Class Book 

        Protected Sub New()          
        End Sub  

    End Class  

End Namespace
using System;

namespace Samples  
{   
    // Violates this rule       
    public abstract class Book      
    {          
        protected Book()          
        {          
        }      
    } 
}