Aracılığıyla paylaş


Nasıl yapılır: Visual Basic'de Varsayılan Bir Özelliği Bildirme ve Çağırma

Varsayılan özellik, kodunuzu belirtmeden erişebileceğiniz bir sınıf veya yapı özelliğidir. Kod adları bir sınıf veya yapı çağırıldığında ancak bir özelliğe erişilmediğinde ve bağlam bir özelliğe erişime izin verdiğinde, Visual Basic varsa bu sınıfın veya yapının varsayılan özelliğine erişimi çözümler.

Bir sınıf veya yapı en fazla bir varsayılan özelliğe sahip olabilir. Ancak, varsayılan bir özelliği aşırı yükleyip birden fazla sürümüne sahip olabilirsiniz.

Daha fazla bilgi için bkz . Varsayılan.

Varsayılan özelliği bildirmek için

  1. Özelliğini normal şekilde bildirin. veya Private anahtar sözcüğünü Shared belirtmeyin.

  2. Anahtar sözcüğünü Default özellik bildirimine ekleyin.

  3. Özelliği için en az bir parametre belirtin. En az bir bağımsız değişken almayan varsayılan bir özellik tanımlayamazsınız.

    Default Property myProperty(ByVal index As Integer) As String
    

Varsayılan özelliği çağırmak için

  1. Içeren sınıfın veya yapı türünün değişkenini bildirin.

    Dim x As New class1(3)
    
  2. Normalde özellik adını dahil edeceğiniz bir ifadede değişken adını tek başına kullanın.

    MsgBox(x)
    
  3. Değişken adını parantez içinde bir bağımsız değişken listesiyle izleyin. Varsayılan özellik en az bir bağımsız değişken almalıdır.

    MsgBox(x(1))
    
  4. Varsayılan özellik değerini almak için değişken adını bağımsız değişken listesiyle birlikte bir ifadede veya atama deyimindeki eşittir (=) oturumunu izleyerek kullanın.

    MsgBox(x(1) & x(2) & x(3))
    
  5. Varsayılan özellik değerini ayarlamak için, atama deyiminin sol tarafındaki bağımsız değişken listesiyle değişken adını kullanın.

    x(1) = "Hello"
    x(2) = " "
    x(3) = "World"
    
  6. Diğer herhangi bir özelliğe erişmek için yaptığınız gibi, varsayılan özellik adını değişken adıyla birlikte her zaman belirtebilirsiniz.

    x.myProperty(1) = "Hello"
    x.myProperty(2) = " "
    x.myProperty(3) = "World"
    

Örnek 1

Aşağıdaki örnek, bir sınıfta varsayılan bir özellik bildirir.

Public Class class1
    Private myStrings() As String
    Sub New(ByVal size As Integer)
        ReDim myStrings(size)
    End Sub
    Default Property myProperty(ByVal index As Integer) As String
        Get
            ' The Get property procedure is called when the value
            ' of the property is retrieved.
            Return myStrings(index)
        End Get
        Set(ByVal Value As String)
            ' The Set property procedure is called when the value
            ' of the property is modified.
            ' The value to be assigned is passed in the argument 
            ' to Set.
            myStrings(index) = Value
        End Set
    End Property
End Class

Örnek 2

Aşağıdaki örnek, sınıfında class1varsayılan özelliğin myProperty nasıl çağrılduğunu gösterir. Üç atama deyimi değerleri içinde myPropertydepolar ve MsgBox çağrı değerleri okur.

Sub Test()
    Dim x As New class1(3)
    x(1) = "Hello"
    x(2) = " "
    x(3) = "World"
    MsgBox(x(1) & x(2) & x(3))
End Sub

Varsayılan özelliğin en yaygın kullanımı, çeşitli koleksiyon sınıflarında özelliğidir Item[] .

Güçlü Programlama

Varsayılan özellikler kaynak kod karakterlerinde küçük bir azalmaya neden olabilir, ancak kodunuzun okunmasını zorlaştırabilir. Çağıran kod sınıfınız veya yapınız hakkında bilgi sahibi değilse, sınıf veya yapı adına başvuru yaptığında, başvurunun sınıfa veya yapıya mı yoksa varsayılan bir özelliğe mi eriştiğinden emin olamaz. Bu, derleyici hatalarına veya küçük çalışma zamanı mantığı hatalarına yol açabilir.

Derleyici türü denetimini Onolarak ayarlamak için her zaman Option Strict Deyimini kullanarak varsayılan özellik hataları olasılığını bir ölçüde azaltabilirsiniz.

Kodunuzda önceden tanımlanmış bir sınıf veya yapı kullanmayı planlıyorsanız, varsayılan bir özelliğe sahip olup olmadığını ve varsa adının ne olduğunu belirlemeniz gerekir.

Bu dezavantajlar nedeniyle varsayılan özellikleri tanımlamamayı göz önünde bulundurmanız gerekir. Kod okunabilirliği için, varsayılan özellikler bile olsa her zaman tüm özelliklere açıkça başvurmayı da göz önünde bulundurmanız gerekir.

Ayrıca bkz.