مشاركة عبر


ca1012: لا ينبغي أنواع مجردة المنشئات

TypeName

AbstractTypesShouldNotHaveConstructors

CheckId

ca1012

Category

Microsoft.تصميم

تعطيل تغيير

غير فاصلة

السبب

نوعا عاماً هو مجردة ويحتوي على الدالة الإنشائية عام.

وصف القاعدة

يمكن استدعاء المنشئات تشغيل أنواع المجردة فقط بواسطة الأنواع المشتقة. لأن المنشئات العامة إنشاء مثيلات لنوع، و إمكانية إنشاء مثيلات لنوع مجردة، مصمم على نوع مجردة مع على الدالة الإنشائية عام غير صحيح.

كيف إلى الإصلاح انتهاكات

لتصحيح انتهاكا لهذه قاعدة، أما جعل الدالة الإنشائية محمية أو عدم القيام بالتصريح نوع قيمة مجردة.

عند إلى منع التحذيرات

لا بمنع تحذير من هذه قاعدة. النوع abstract له على الدالة الإنشائية عام.

مثال

يلي مثال يحتوي على نوع مجردة يخالف هذه قاعدة.

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()          
        {          
        }      
    } 
}

يعمل المثال التالي على إصلاح انتهاك سابق بواسطة تغيير التشغيل المنشئ من publicإلى protected.

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()          
        {          
        }      
    } 
}