Aracılığıyla paylaş


Ortak Öznitelikler (C# ve Visual Basic)

Bu konuda, C# ve Visual Basic programlarında en sık kullanılan öznitelikler açıklanmaktadır.

  • Genel nitelikleri

  • Geçersiz öznitelik

  • Koşul özniteliği

  • Arayanın bilgileri öznitelikleri

  • Visual Basic öznitelikleri

Genel nitelikleri

Çoğu öznitelikleri sınıfları veya yöntemler gibi belirli bir dil öğelerine uygulanır; Ancak, bazı öznitelikler genel — tüm derleme veya modül için geçerli olurlar.Örneğin, AssemblyVersionAttribute özniteliği, böyle bir derleme sürüm bilgileri katıştırmak için kullanılabilir:

[assembly: AssemblyVersion("1.0.0.0")]
<Assembly: AssemblyVersion("1.0.0.0")>

Genel öznitelikleri sonra herhangi bir kaynak kodu görünür üst düzey using yönergeleri (Imports Visual Basic) ve herhangi bir tür, modül veya ad alanı bildirimi önce.Genel öznitelikleri birden çok kaynak dosyada bulunabilir, ancak dosyaları tek bir derleme geçişinde derlenmelidir.Visual Basic projeleri için genel öznitelikleri genelde otomatik olarak oluşturulur AssemblyInfo.vb dosyasındaki konur Visual Basic projeleri.C# projeleri, n AssemblyInfo.cs dosyasında konur.

Derlemenin derleme hakkında bilgi sağlayan değerler nitelikleridir.Bunlar aşağıdaki kategorilere ayrılır:

  • Derleme kimlik öznitelikleri

  • Bilgilendirme öznitelikleri

  • Derleme bildirim öznitelikleri

  • Kesin ad öznitelikleri

Derleme kimlik öznitelikleri

(Kesin adı, eğer varsa ile) üç özniteliği bir derleme kimliğini belirleme: kültür adı ve sürümü.Bu öznitelikler, derleme tam adı formunu ve kodda başvuru gereklidir.Bir derlemenin sürümü ve kültür özniteliklerini kullanarak ayarlayabilirsiniz.Ancak, derleyici tarafından ad değeri Visual Studio IDE içinde Derleme Bilgileri İletişim Kutusu, veya Assembly Linker (Al.exe) derleme oluşturulduğunda derleme bildirimi içeren dosya.AssemblyFlagsAttribute Özniteliği, derleme birden çok kopyası bulunabilir olup olmadığını belirtir.

Kimlik öznitelikleri aşağıdaki tabloda gösterilmektedir.

Öznitelik

Purpose

AssemblyName

Bir derlemenin kimliği tam olarak açıklar.

AssemblyVersionAttribute

Derleme sürümünü belirtir.

AssemblyCultureAttribute

Derleme destekler, kültür belirtir.

AssemblyFlagsAttribute

Derleme, aynı işlemde veya aynı uygulama etki alanında aynı bilgisayarda yan yana yürütme destekleyip desteklemediğini belirtir.

Bilgilendirme öznitelikleri

Ek şirket veya ürün bilgisi için bir derleme sağlamak için bilgilendirme özniteliklerini kullanabilirsiniz.Aşağıdaki tabloda tanımlanan bilgilendirme öznitelikleri gösterir System.Reflection ad.

Öznitelik

Purpose

AssemblyProductAttribute

Derleme bildirimi ürün adını belirtir bir özel özniteliği tanımlar.

AssemblyTrademarkAttribute

Ticari marka bir derleme bildirimi için belirten özel bir öznitelik tanımlar.

AssemblyInformationalVersionAttribute

Derleme bildirimi için bilgilendirici bir sürümünü belirten özel bir öznitelik tanımlar.

AssemblyCompanyAttribute

Derleme bildirimi için şirket adını belirten özel bir öznitelik tanımlar.

AssemblyCopyrightAttribute

Derleme bildirimi için telif hakkı belirten özel bir öznitelik tanımlar.

AssemblyFileVersionAttribute

Win32 dosya sürüm kaynağı belirli bir sürüm numarasını kullanın derleyiciye.

CLSCompliantAttribute

Derleme Common Language Specification'a (cls) ile uyumlu olup olmadığını gösterir.

Derleme bildirim öznitelikleri

Derleme bildirim özniteliklerini derleme bildiriminde bilgi sağlamak için kullanabilirsiniz.Bu başlık, açıklama, varsayılan diğer adı ve yapılandırmasını içerir.Aşağıdaki tabloda tanımlanmış derleme bildirim özniteliklerini gösterir System.Reflection ad.

Öznitelik

Purpose

AssemblyTitleAttribute

Derleme bildirimi derleme ünvanını belirten özel bir öznitelik tanımlar.

AssemblyDescriptionAttribute

Derleme bildirimi için bir derleme açıklaması belirten özel bir öznitelik tanımlar.

AssemblyConfigurationAttribute

Bir derleme bildirimi için (örneğin, perakende veya hata ayıklama) bir derleme yapılandırmasını belirten özel bir öznitelik tanımlar.

AssemblyDefaultAliasAttribute

Kolay varsayılan diğer ad için bir derleme bildirimi tanımlar

Kesin ad öznitelikleri

Visual Studio'nun önceki sürümleri bu montaj düzeyi özniteliklere sahip güçlü adlarını kullanarak derleme imzalama gerçekleştirildi:

Bu hala desteklenmektedir, ancak derlemeler imzalamak için tercih edilen yolu İmzalama sayfa proje Tasarımcısı.Daha fazla bilgi için bkz. İmzalama Sayfası, Proje Tasarımcısı ve Nasıl yapılır: (Visual Studio) derleme imzalama.

Geçersiz öznitelik

Obsolete Özniteliği artık kullanılmak üzere önerilen program varlık olarak işaretler.Eski işaretlenmiş bir varlığın her kullanım sonradan bir uyarı veya öznitelik nasıl yapılandırıldığına bağlı olarak bir hata oluşturacaktır.Örne?in:

    <System.Obsolete("use class B")> 
    Class A
        Sub Method()
        End Sub 
    End Class 

    Class B
        <System.Obsolete("use NewMethod", True)> 
        Sub OldMethod()
        End Sub 

        Sub NewMethod()
        End Sub 
    End Class
[System.Obsolete("use class B")]
class A
{
    public void Method() { }
}
class B
{
    [System.Obsolete("use NewMethod", true)]
    public void OldMethod() { }
    public void NewMethod() { }
}

Bu örnekte Obsolete özniteliği sınıfa uygulanan A ve yöntemine B.OldMethod.İkinci bağımsız değişken özniteliği yapıcısının uygulanan çünkü B.OldMethod ayarlamak true, sınıfını kullanarak, ancak bu yöntem bir derleyici hatası neden olur A bir uyarı yalnızca üretim olacak.Arayan B.NewMethod, ancak, herhangi bir uyarı veya hata üretir.

Öznitelik Oluşturucu ilk bağımsız değişken olarak sağlanan dize uyarı veya hata bir parçası olarak görüntülenir.Örneğin, önceki tanımlarla kullandığınızda, aşağıdaki kod iki uyarı ve bir hata oluşturur:

' Generates 2 warnings: 
' Dim a As New A 
' Generate no errors or warnings: 

Dim b As New B
b.NewMethod()

' Generates an error, terminating compilation: 
' b.OldMethod()
// Generates 2 warnings: 
// A a = new A(); 

// Generate no errors or warnings:
B b = new B();
b.NewMethod();

// Generates an error, terminating compilation: 
// b.OldMethod();

Sınıf için iki uyarı A oluşturulur: bir sınıf başvurusu bildiriminin ve bir sınıf kurucusunu.

Obsolete Öznitelik bağımsız değişkeni olmadan kullanılabilir, ancak neden bir açıklama da dahil olmak üzere madde kullanılmıyor ve ne kullanmanız önerilir.

Obsolete Özniteliği tek kullanım özelliği ve nitelikleri sağlayan herhangi bir varlık için uygulanabilir.Obsolete seçeneği ObsoleteAttribute için bir eş addır.

Koşul özniteliği

Conditional Özniteliği bir yönteminin çalışmasını ön işlem tanımlayıcısını temel bağımlı yapar.Conditional Özniteliği için bir diğer ad, ConditionalAttributeve bir yöntem ya da öznitelik sınıfı için uygulanabilir.

Bu örnekte, Conditional veya programa özgü tanı bilgilerinin görüntülenmesini devre dışı bir yöntem uygulanır:

#Const TRACE_ON = True 
Imports System
Imports System.Diagnostics
Module TestConditionalAttribute
    Public Class Trace
        <Conditional("TRACE_ON")> 
        Public Shared Sub Msg(ByVal msg As String)
            Console.WriteLine(msg)
        End Sub 

    End Class 

    Sub Main()
        Trace.Msg("Now in Main...")
        Console.WriteLine("Done.")
    End Sub 
End Module
#define TRACE_ON
using System;
using System.Diagnostics;

public class Trace
{
    [Conditional("TRACE_ON")]
    public static void Msg(string msg)
    {
        Console.WriteLine(msg);
    }
}

public class ProgramClass
{
    static void Main()
    {
        Trace.Msg("Now in Main...");
        Console.WriteLine("Done.");
    }
}

TRACE_ON Tanımlayıcısı tanımlı değil, hiçbir İzleme çıktısı görüntülenir.

Conditional Özniteliği ile kullanılan genellikle DEBUG izleme ve özellikleri bulunan bir yayın oluşturur, ancak hata ayıklama yapılarında için günlüğü etkinleştirmek için tanımlayıcı böyle:

<Conditional("DEBUG")> 
Shared Sub DebugMethod()

End Sub
[Conditional("DEBUG")]
static void DebugMethod()
{
}

Koşullu olarak işaretlenmiş bir yöntem çağrıldığında varlığı veya belirtilen önişleme sembolün yokluğunda çağrısı atlanmış veya dahil olup olmadığını belirler.Çağrı sembolü tanımlanırsa, eklenir; Aksi takdirde çağrı atlanır.Kullanarak Conditional bir temizleyici olan yöntemlerin içinde kapsayan daha zarif ve daha az hataya alternatif #if…#endif böyle engeller:

#If DEBUG Then 
    Sub ConditionalMethod()
    End Sub
#End If
#if DEBUG
    void ConditionalMethod()
    {
    }
#endif

Koşullu bir yöntem, bir yapı ya da Sınıf bildirimindeki bir yöntem olmalıdır ve dönüş değeri olmamalıdır.

Birden fazla tanımlayıcı kullanarak

Birden çok yöntem varsa, Conditional öznitelikleri, yöntemine yapýlan çaðrýyý dahil en az bir koşullu sembolleri tanımlanırsa, (diğer bir deyişle, semboller mantıksal or işlecini kullanarak birbirine bağlıdır).Bu örnekte, ya da varlığını A veya B bir yöntem çağrısında neden olur:

<Conditional("A"), Conditional("B")> 
Shared Sub DoIfAorB()

End Sub
[Conditional("A"), Conditional("B")]
static void DoIfAorB()
{
    // ...
}

Mantıksal ve işleci kullanılarak sembolleri bağlama efekti elde etmek için seri koşullu yöntemleri tanımlayabilir.Yalnızca iki, ikinci yöntem aşağıdaki gibi yürütülür A ve B tanımlanır:

<Conditional("A")> 
Shared Sub DoIfA()
    DoIfAandB()
End Sub

<Conditional("B")> 
Shared Sub DoIfAandB()
    ' Code to execute when both A and B are defined... 
End Sub
[Conditional("A")]
static void DoIfA()
{
    DoIfAandB();
}

[Conditional("B")]
static void DoIfAandB()
{
    // Code to execute when both A and B are defined...
}

Koşul özniteliği sınıfları ile kullanma

Conditional Özniteliği için öznitelik sınıfı tanımını da uygulanabilir.Bu örnekte, özel öznitelik Documentation yalnızca hata ayıklama tanımlanırsa, bilgileri meta verileri ekler.

<Conditional("DEBUG")> 
Public Class Documentation
    Inherits System.Attribute
    Private text As String 
    Sub New(ByVal doc_text As String)
        text = doc_text
    End Sub 
End Class 

Class SampleClass
    ' This attribute will only be included if DEBUG is defined.
    <Documentation("This method displays an integer.")> 
    Shared Sub DoWork(ByVal i As Integer)
        System.Console.WriteLine(i)
    End Sub 
End Class
[Conditional("DEBUG")]
public class Documentation : System.Attribute
{
    string text;

    public Documentation(string text)
    {
        this.text = text;
    }
}

class SampleClass
{
    // This attribute will only be included if DEBUG is defined.
    [Documentation("This method displays an integer.")]
    static void DoWork(int i)
    {
        System.Console.WriteLine(i.ToString());
    }
}

Arayanın bilgileri öznitelikleri

Arayan bilgisi özniteliklerini kullanarak arayan için bir yöntem hakkında bilgi edinebilirsiniz.Dosya yolunu kaynak kodunu kaynak kodu ve arayan üye adı satır numarasını edinebilirsiniz.

Üye arayan bilgilerini edinmek için isteğe bağlı parametreler için uygulanan öznitelikleri kullanın.Her isteğe bağlı bir parametre varsayılan değeri belirtir.Aşağıdaki tabloda tanımlanan arayan bilgisi özniteliklerini listeler System.Runtime.CompilerServices ad alanı:

Öznitelik

Description

Tür

CallerFilePathAttribute

Arayan içeren kaynak dosyasının tam yolu.Derleme zamanında yol budur.

String

CallerLineNumberAttribute

Hangi yöntemi çağrılır kaynak dosyadaki satır numarası.

Integer

CallerMemberNameAttribute

Yöntem adı veya arayan özelliği adı.Daha fazla bilgi için bkz. Arayan Bilgileri (C# ve Visual Basic).

String

Arayanın bilgileri öznitelikler hakkında daha fazla bilgi için bkz: Arayan Bilgileri (C# ve Visual Basic).

Visual Basic öznitelikleri

Visual Basic belirli öznitelikleri aşağıdaki tabloda listelenmektedir.

Öznitelik

Purpose

ComClassAttribute

Derleyici sınıf bir com nesnesi olarak açık olduğunu gösterir.

HideModuleNameAttribute

Modül üyelerinin yalnızca modülü için gereken nitelik kullanarak erişilmesine izin verir.

VBFixedStringAttribute

Sabit uzunluklu bir dize boyutunu kullanmak için bir yapı ile giriş ve çıkış dosyası belirtir işlevleri.

VBFixedArrayAttribute

Giriş ve çıkış dosyası ile bir yapıda kullanmak için sabit bir dizi boyutunu belirtir işlevleri.

COMClassAttribute

Use COMClassAttribute com bileşenlerini oluşturma işlemini basitleştirmek için Visual Basic.com nesneleri önemli ölçüde farklı .NET Framework derlemeler, olmadan ve COMClassAttribute, çok sayıda com nesnesinden oluşturmak için adımları izlemenize gerek Visual Basic.Sınıfları ile işaretlenmiş için COMClassAttribute, derleyici bu adımların çoğu otomatik olarak gerçekleştirir.

HideModuleNameAttribute

Use HideModuleNameAttribute modül üyelerinin yalnızca modülü için gereken nitelik kullanarak erişilmesine izin vermek.

VBFixedStringAttribute

Use VBFixedStringAttribute zorlamak için Visual Basic sabit uzunluklu bir dize oluşturmak için.Varsayılan olarak değişken uzunluktaki dizeleri olan ve bu öznitelik dosyalara dizeleri depolamak yararlıdır.Aşağıdaki kod bunu göstermektedir:

Structure Worker
    ' The runtime uses VBFixedString to determine  
    ' if the field should be written out as a fixed size.
    <VBFixedString(10)> Public LastName As String
    <VBFixedString(7)> Public Title As String
    <VBFixedString(2)> Public Rank As String 
End Structure

VBFixedArrayAttribute

Use VBFixedArrayAttribute sabit dizilerini bildirmek için.Gibi Visual Basic , diziler dizeleridir varsayılan olarak değişken uzunlukta.Bu öznitelik seri hale getirilmedi ya da veri dosyalarına yazarken kullanışlıdır.

Ayrıca bkz.

Başvuru

Yansıma (C# ve Visual Basic)

Yansıma Kullanarak Özniteliklere Erişme (C# ve Visual Basic)

System.Reflection

Attribute

Kavramlar

C# Programlama Kılavuzu

Diğer Kaynaklar

Visual Basic Programlama Kılavuzu

Öznitelikleri Kullanarak Meta Verileri Genişletme