Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bu konuda, Visual Basic programlarında en yaygın olarak kullanılan öznitelikler açıklanmaktadır.
Genel Öznitelikler
Özniteliklerin çoğu sınıflar veya yöntemler gibi belirli dil öğelerine uygulanır; ancak bazı öznitelikler geneldir; bütün bir derleme veya modül için geçerlidir. Örneğin, AssemblyVersionAttribute özniteliği sürüm bilgilerini bir derlemeye eklemek için kullanılabilir, örneğin:
<Assembly: AssemblyVersion("1.0.0.0")>
Genel öznitelikler, herhangi bir üst düzey Imports deyimden sonra ve herhangi bir tür, modül veya ad alanı bildiriminden önce kaynak kodunda görünür. Genel öznitelikler birden çok kaynak dosyada görünebilir, ancak dosyaların tek bir derleme geçişinde derlenmesi gerekir. Visual Basic projelerinde genel öznitelikler genellikle AssemblyInfo.vb dosyasına konur (Visual Studio'da proje oluşturduğunuzda dosya otomatik olarak oluşturulur).
Derleme öznitelikleri, bir derleme hakkında bilgi sağlayan değerlerdir. Bunlar aşağıdaki kategorilere ayrılır:
Derleme kimliği özellikleri
Bilgi öznitelikleri
Assembly manifest öznitelikleri
Derleme Kimliği Öznitelikleri
Bir derlemenin kimliğini üç öznitelik (varsa tanımlayıcı bir adla) belirler: ad, sürüm ve kültür. Bu öznitelikler derlemenin tam adını oluşturur ve kodda başvururken gereklidir. Öznitelikleri kullanarak derlemenin sürümünü ve kültürünü ayarlayabilirsiniz. Ancak, derleme bildirimini içeren dosyaya göre derleme oluşturulduğunda ad değeri derleyici, Derleme Bilgileri İletişim Kutusu'ndaki Visual Studio IDE veya Derleme Bağlayıcısı (Al.exe) tarafından ayarlanır. AssemblyFlagsAttribute özniteliği, derlemenin birden çok kopyasının birlikte bulunup bulunamayacağını belirtir.
Aşağıdaki tabloda kimlik öznitelikleri gösterilmektedir.
| Özellik | Amaç |
|---|---|
| AssemblyName | Bir derlemenin kimliğini tam olarak açıklar. |
| AssemblyVersionAttribute | Derlemenin sürümünü belirtir. |
| AssemblyCultureAttribute | Derlemenin hangi kültürü desteklediğini belirtir. |
| AssemblyFlagsAttribute | Derlemenin aynı bilgisayarda, aynı işlemde veya aynı uygulama etki alanında yan yana yürütmeyi destekleyip desteklemediğini belirtir. |
Bilgi Öznitelikleri
Bir derleme için ek şirket veya ürün bilgileri sağlamak için bilgi özniteliklerini kullanabilirsiniz. Aşağıdaki tabloda ad alanında tanımlanan bilgi öznitelikleri gösterilmektedir System.Reflection .
| Özellik | Amaç |
|---|---|
| AssemblyProductAttribute | Derleme bildirimi için ürün adını belirten özel bir öznitelik tanımlar. |
| AssemblyTrademarkAttribute | Bir derleme bildirimi için ticari marka belirten özel bir öznitelik tanımlar. |
| AssemblyInformationalVersionAttribute | Derleme bildirimi için bilgilendirme 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 | Derleyiciye Win32 dosya sürümü kaynağı için belirli bir sürüm numarasını kullanma talimatı verir. |
| CLSCompliantAttribute | Derlemenin Ortak Dil Belirtimi (CLS) ile uyumlu olup olmadığını gösterir. |
Derleme Bildirimi Öznitelikleri
Derleme bildiriminde bilgi sağlamak için derleme bildirimi özniteliklerini kullanabilirsiniz. Buna başlık, açıklama, varsayılan diğer ad ve yapılandırma dahildir. Aşağıdaki tabloda, System.Reflection ad alanında tanımlanan derleme bildirimi öznitelikleri gösterilmektedir.
| Özellik | Amaç |
|---|---|
| AssemblyTitleAttribute | Derleme bildirimi için bir derleme başlığı belirten özel bir öznitelik tanımlar. |
| AssemblyDescriptionAttribute | Bir derleme bildirimi için derleme açıklaması belirten özel bir öznitelik tanımlar. |
| AssemblyConfigurationAttribute | Derleme bildirimi için bir derleme yapılandırmasını (perakende veya hata ayıklama gibi) belirten özel bir öznitelik tanımlar. |
| AssemblyDefaultAliasAttribute | Derleme manifestosu için dostça bir varsayılan diğer ad tanımlar |
Eski Öznitelik
Obsolete özniteliği, bir program varlığını artık kullanılması önerilmeyen bir varlık olarak işaretler. Kullanım dışı olarak işaretlenen bir varlığın her kullanımı, özniteliğin nasıl yapılandırıldığına bağlı olarak bir uyarı veya hata oluşturur. Ö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
Bu örnekte Obsolete özniteliği, A sınıfına ve B.OldMethod yöntemine uygulanır.
B.OldMethod üzerine uygulanan öznitelik oluşturucusunun ikinci bağımsız değişkeni true olarak ayarlandığı için, bu yöntem bir derleyici hatasına neden olurken, sınıf A kullanıldığında sadece bir uyarı verecektir.
B.NewMethodAncak çağrısı hiçbir uyarı veya hata üretmez.
Öznitelik oluşturucusunun ilk bağımsız değişkeni olarak sağlanan dize, uyarı veya hatanın parçası şeklinde 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()
Sınıf A için iki uyarı oluşturulur: biri sınıf başvurusunun bildirimi için, diğeri de sınıf oluşturucu için.
Obsolete Özniteliği bağımsız değişkenler olmadan kullanılabilir, ancak öğenin neden kullanım dışı olduğu ve bunun yerine ne kullanılacağı hakkında bir açıklama eklemek önerilir.
özniteliği Obsolete tek kullanımlık bir özniteliktir ve özniteliklere izin veren herhangi bir varlığa uygulanabilir.
Obsolete , için ObsoleteAttributebir diğer addır.
Koşullu Öznitelik
özniteliği, Conditional bir yöntemin yürütülmesini ön işleme tanımlayıcıya bağımlı hale getirir.
Conditional özniteliği için ConditionalAttributebir diğer addır ve bir yönteme veya öznitelik sınıfına uygulanabilir.
Bu örnekte, Conditional programa özgü tanılama bilgilerinin görüntülenmesini etkinleştirmek veya devre dışı bırakmak için bir yönteme uygulanır:
#Const TRACE_ON = True
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
TRACE_ON Tanımlayıcı tanımlanmamışsa hiçbir izleme çıkışı görüntülenmez.
Conditional Özniteliği genellikle hata ayıklama derlemeleri için izleme ve günlüğe kaydetme özelliklerini etkinleştirmek için tanımlayıcıyla birlikte DEBUG kullanılır, ancak sürüm derlemelerinde kullanılamaz, örneğin:
<Conditional("DEBUG")>
Shared Sub DebugMethod()
End Sub
Koşullu olarak işaretlenmiş bir yöntem çağrıldığında, belirtilen ön işleme simgesinin varlığı veya yokluğu çağrının dahil edilip edilmediğini belirler. Simge tanımlanmışsa çağrı eklenir; aksi takdirde çağrı atlanır.
Conditional kullanmak, #if…#endif blokları içinde yöntemleri kapsamanın daha temiz, daha zarif ve daha az hataya açık bir alternatifidir, örneğin:
#If DEBUG Then
Sub ConditionalMethod()
End Sub
#End If
Koşullu yöntem, bir sınıf veya yapı bildiriminde bir yöntem olmalı ve dönüş değerine sahip olmamalıdır.
Birden Çok Tanımlayıcı Kullanma
Bir yöntemin birden çok Conditional özniteliği varsa, koşullu simgelerden en az biri tanımlanmışsa yöntem çağrısı eklenir (başka bir deyişle, simgeler OR işleci kullanılarak mantıksal olarak birbirine bağlanır). Bu örnekte, A veya B varlığının bir yöntem çağrısıyla sonuçlanacağı anlamına gelir.
<Conditional("A"), Conditional("B")>
Shared Sub DoIfAorB()
End Sub
AND işlecini kullanarak sembolleri mantıksal olarak bağlamanın etkisini elde etmek için seri koşullu yöntemler tanımlayabilirsiniz. Örneğin, aşağıdaki ikinci yöntem yalnızca hem A hem de B tanımlandığında yürütülü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
Öznitelik Sınıflarıyla Koşullu Kullanma
Özniteliği bir Conditional öznitelik sınıfı tanımına da uygulanabilir. Bu örnekte, özel öznitelik Documentation yalnızca DEBUG tanımlandığında meta veriye bilgi 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
Arayan Bilgisi Öznitelikleri
Arayan Bilgisi özniteliklerini kullanarak, bir yönteme çağıran hakkında bilgi edinebilirsiniz. Kaynak kodun dosya yolunu, kaynak kodundaki satır numarasını ve çağıranın üye adını alabilirsiniz.
Üye çağrıcı bilgilerini almak için isteğe bağlı parametrelere uygulanan öznitelikleri kullanırsınız. İsteğe bağlı her parametre bir varsayılan değer belirtir. Aşağıdaki tabloda, System.Runtime.CompilerServices ad alanında tanımlanan Arayan Bilgilerine ait öznitelikler listelenir.
| Özellik | Açıklama | Türü |
|---|---|---|
| CallerFilePathAttribute | Çağıranı içeren kaynak dosyanın tam yolu. Bu, derleme zamanındaki yoldur. | String |
| CallerLineNumberAttribute | Yönteminin çağrıldığı kaynak dosyadaki satır numarası. | Integer |
| CallerMemberNameAttribute | Çağıranın yöntem adı veya özellik adı. Daha fazla bilgi için bkz . Arayan Bilgileri (Visual Basic). | String |
| CallerArgumentExpressionAttribute | Çağıran tarafından bağımsız değişken için kullanılan ifade. Daha fazla bilgi için bkz . Arayan Bilgileri (Visual Basic). | String |
Arayan Bilgisi öznitelikleri hakkında daha fazla bilgi için bkz. Arayan Bilgileri (Visual Basic).
Visual Basic Öznitelikleri
Aşağıdaki tabloda Visual Basic'e özgü öznitelikler listeleniyor.
| Özellik | Amaç |
|---|---|
| ComClassAttribute | Derleyiciye sınıfın BIR COM nesnesi olarak kullanıma sunulacak olduğunu gösterir. |
| HideModuleNameAttribute | Modül üyelerine yalnızca modül için gereken nitelik kullanılarak erişilmesine izin verir. |
| VBFixedStringAttribute | Dosya girişi ve çıkış işlevleriyle kullanılmak üzere bir yapıdaki sabit uzunlukta bir dizenin boyutunu belirtir. |
| VBFixedArrayAttribute | Dosya girişi ve çıkış işlevleriyle kullanılmak üzere bir yapıdaki sabit dizinin boyutunu belirtir. |
COMClassAttribute
Visual Basic'ten COM bileşenleri oluşturma işlemini basitleştirmek için kullanın COMClassAttribute . COM nesneleri .NET Framework derlemelerinden önemli ölçüde farklıdır ve olmadan COMClassAttribute, Visual Basic'ten COM nesnesi oluşturmak için birkaç adımı izlemeniz gerekir. ile COMClassAttributeişaretlenmiş sınıflar için, derleyici bu adımların çoğunu otomatik olarak gerçekleştirir.
HideModuleNameAttribute
HideModuleNameAttribute sadece modül için gerekli nitelik kullanılarak modül üyelerine erişilmesine izin verin.
VBFixedStringAttribute
Visual Basic'i sabit uzunlukta bir dize oluşturmaya zorlamak için kullanın VBFixedStringAttribute . Dizeler varsayılan olarak değişken uzunluktadır ve bu öznitelik, dizeleri dosyalara depolarken kullanışlıdır. Aşağıdaki kod bunu gösterir:
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
Boyutu sabit dizileri bildirmek için kullanın VBFixedArrayAttribute . Visual Basic dizeleri gibi diziler de varsayılan olarak değişken uzunluktadır. Bu öznitelik, dosyaları serileştirirken veya dosyalara veri yazarken kullanışlıdır.