Aracılığıyla paylaş


CA1813: Korumasız özniteliklerden kaçının

TypeName

AvoidUnsealedAttributes

CheckId

CA1813

Kategori

Microsoft.Performance

Değişiklik kesiliyor

Bölme

Neden

Ortak türü devraldığı Attribute, soyut değil ve değil Mühürlü (NotInheritable Visual Basic).

Kural Tanımı

.NET Framework Sýnýf kitaplýðý özel öznitelikleri almak için yöntemler sağlar.Varsayılan olarak, bu yöntemleri öznitelik Devralma hiyerarşisinde arama; Örneğin Attribute.GetCustomAttribute belirtilen öznitelik türü veya belirtilen öznitelik türü genişleten herhangi bir öznitelik türü arar.Öznitelik mühürleme kalıtım hiyerarşisi aracılığıyla arama ortadan kaldırır ve performansı artırır.

İhlalleri düzeltmek nasıl

Bu kuralı ihlal düzeltmek için öznitelik türü mühürlemek veya soyut yapabilirsiniz.

Uyarıları ne zaman

Uyarı Bu kuraldan bastırmak güvenlidir.Yalnızca, bir öznitelik Hiyerarşinin tanımlanması ve öznitelik mühürlemek veya soyut olun, bunu yapmanız gerekir.

Örnek

Aşağıdaki örnekte, bu kurala uyan özel bir nitelik gösterir.

Imports System

Namespace PerformanceLibrary

' Satisfies rule: AvoidUnsealedAttributes.
<AttributeUsage(AttributeTargets.Class Or AttributeTargets.Struct)>  _
NotInheritable Public Class DeveloperAttribute
    Inherits Attribute
    Private nameValue As String 

    Public Sub New(name As String)
        nameValue = name
    End Sub 


    Public ReadOnly Property Name() As String 
        Get 
            Return nameValue
        End Get 
    End Property 
End Class  

End Namespace
using System;

namespace PerformanceLibrary 
{
    // Satisfies rule: AvoidUnsealedAttributes.

    [AttributeUsage(AttributeTargets.Class|AttributeTargets.Struct)]
    public sealed class DeveloperAttribute: Attribute
    {
        private string nameValue;
        public DeveloperAttribute(string name) 
        { 
            nameValue = name; 
        }

        public string Name
        {
            get 
            {
                return nameValue;
            }
        }
    }

}

İlgili kuralları

CA1019: Öznitelik bağımsız değişkenleri için erişimcileri tanımlayın

CA1018: Öznitelikleri AttributeUsageAttribute ile işaretleyin

Ayrıca bkz.

Diğer Kaynaklar

Attribute Usage Guidelines