Aracılığıyla paylaş


Özniteliklere genel bakış (Visual Basic)

Öznitelikler, meta verileri veya bildirim temelli bilgileri kodla ilişkilendirmek için güçlü bir yöntem sağlar (derlemeler, türler, yöntemler, özellikler vb.). Bir öznitelik bir program varlığıyla ilişkilendirildikten sonra, özniteliği çalışma zamanında yansımaadlı bir teknik kullanılarak sorgulanabilir. Daha fazla bilgi için bkz . Yansıma (Visual Basic).

Öznitelikler aşağıdaki özelliklere sahiptir:

  • Öznitelikler programınıza meta veri ekler. Meta Veri, bir programda tanımlanan türler hakkında bilgidir. Tüm .NET derlemeleri, derlemede tanımlanan türleri ve tür üyelerini açıklayan belirtilen bir meta veri kümesi içerir. Gerekli ek bilgileri belirtmek için özel öznitelikler ekleyebilirsiniz. Daha fazla bilgi için bkz. Özel Öznitelikler Oluşturma (Visual Basic).

  • Tüm derlemelere, modüllere veya sınıflar ve özellikler gibi daha küçük program öğelerine bir veya daha fazla öznitelik uygulayabilirsiniz.

  • Öznitelikler, bağımsız değişkenleri yöntemler ve özelliklerle aynı şekilde kabul edebilir.

  • Programınız yansıma kullanarak kendi meta verilerini veya diğer programlardaki meta verileri inceleyebilir. Daha fazla bilgi için bkz. Yansıma Kullanarak Özniteliklere Erişme (Visual Basic).

Öznitelikleri Kullanma

Öznitelikler herhangi bir bildirimin çoğuna yerleştirilebilir, ancak belirli bir öznitelik geçerli olduğu bildirim türlerini kısıtlayabilir. Visual Basic'te bir öznitelik açılı ayraç (<> ) içine alınır. Uygulandığı öğeden hemen önce, aynı satırda görünmelidir.

Bu örnekte, SerializableAttribute özniteliği bir sınıfa belirli bir özelliği uygulamak için kullanılır:

<System.Serializable()> Public Class SampleClass
    ' Objects of this type can be serialized.
End Class

özniteliğine DllImportAttribute sahip bir yöntem aşağıdaki gibi bildirilir:

Imports System.Runtime.InteropServices
<System.Runtime.InteropServices.DllImport("user32.dll")>
Sub SampleMethod()
End Sub

Bir bildirime birden fazla öznitelik yerleştirilebilir:

Imports System.Runtime.InteropServices
Sub MethodA(<[In](), Out()> ByVal x As Double)
End Sub
Sub MethodB(<Out(), [In]()> ByVal x As Double)
End Sub

Belirli bir varlık için bazı öznitelikler birden çok kez belirtilebilir. Bu tür bir çok kullanımlı özniteliğine örnek olarak ConditionalAttribute:

<Conditional("DEBUG"), Conditional("TEST1")>
Sub TraceMethod()
End Sub

Uyarı

Kural gereği, tüm öznitelik adları .NET Framework'teki diğer öğelerden ayırt etmek için "Öznitelik" sözcüğüyle biter. Ancak, kodda öznitelikleri kullanırken öznitelik son ekini belirtmeniz gerekmez. Örneğin, [DllImport] ile eşdeğerdir [DllImportAttribute], ancak DllImportAttribute özniteliğin .NET Framework'teki gerçek adıdır.

Öznitelik Parametreleri

Birçok özniteliğin konumsal, adsız veya adlandırılmış olabilecek parametreleri vardır. Herhangi bir konumsal parametre belirli bir sırada belirtilmelidir ve atlanamaz; adlandırılmış parametreler isteğe bağlıdır ve herhangi bir sırada belirtilebilir. Önce konumsal parametreler belirtilir. Örneğin, bu üç öznitelik eşdeğerdir:

<DllImport("user32.dll")>
<DllImport("user32.dll", SetLastError:=False, ExactSpelling:=False)>
<DllImport("user32.dll", ExactSpelling:=False, SetLastError:=False)>

İlk parametre olan DLL adı konumsaldır ve her zaman önce gelir; diğerlerinin adı verilmiştir. Bu durumda, her iki adlandırılmış parametre de varsayılan olarak false olur, böylece atlanabilirler. Varsayılan parametre değerleri hakkında bilgi için tek tek özniteliğin belgelerine bakın.

Öznitelik Hedefleri

Özniteliğin hedefi , özniteliğin uygulandığı varlıktır. Örneğin, bir öznitelik bir sınıfa, belirli bir yönteme veya bütün bir derlemeye uygulanabilir. Varsayılan olarak, bir öznitelik önüne gelen öğeye uygulanır. Ancak bir özniteliğin bir yönteme mi, parametresine mi yoksa dönüş değerine mi uygulandığını açıkça belirleyebilirsiniz.

Bir öznitelik hedefini açıkça tanımlamak için aşağıdaki söz dizimini kullanın:

<target : attribute-list>

Olası target değerlerinin listesi aşağıdaki tabloda gösterilmiştir.

Hedef değer Şunlar için geçerlidir:
assembly Bütün montaj
module Geçerli derleme modülü (Visual Basic Modülünden farklıdır)

Aşağıdaki örnekte, derlemelere ve modüllere özniteliklerin nasıl uygulanacağı gösterilmektedir. Daha fazla bilgi için bkz. Ortak Öznitelikler (Visual Basic).

Imports System.Reflection
<Assembly: AssemblyTitleAttribute("Production assembly 4"),
Module: CLSCompliant(True)>

Öznitelikler için Ortak Kullanımlar

Aşağıdaki liste, koddaki özniteliklerin yaygın kullanımlarından birkaçını içerir:

  • Yöntemin SOAP protokolü üzerinden çağrılabilir olması gerektiğini belirtmek için Web hizmetlerinde WebMethod özniteliğini kullanarak yöntemleri işaretleme. Daha fazla bilgi için bkz. WebMethodAttribute.

  • Yerel kodla birlikte çalışırken yöntem parametrelerini sıralamayı açıklama. Daha fazla bilgi için bkz. MarshalAsAttribute.

  • Sınıflar, yöntemler ve arabirimler için COM özelliklerini açıklama.

  • DllImportAttribute sınıfını kullanarak yönetilmeyen kodu çağırma.

  • Derlemenizi başlık, sürüm, açıklama veya ticari marka açısından açıklama.

  • Kalıcılık için bir sınıfın hangi üyelerini seri hale getirebileceğinizi açıklama.

  • XML serileştirme için sınıf üyeleriyle XML düğümleri arasında eşlemeyi açıklama.

  • Yöntemler için güvenlik gereksinimlerini açıklama.

  • Güvenliği sağlamak için kullanılan özellikleri belirtme.

  • Kodun hata ayıklamaya kolay kalması için tam zamanında (JIT) derleyici tarafından yapılan iyileştirmeleri kontrol etme.

  • Bir metodu çağıran hakkında bilgi edinme.

Daha fazla bilgi için bakınız:

Ayrıca bakınız