Udostępnij za pośrednictwem


Porady: deklarowanie i wywoływanie w właściwości domyślnej w Visual Basic

Właściwość domyślna to właściwość klasy lub struktury, do którego kod może uzyskiwać dostęp bez jego określania. Podczas wywoływania nazw kodu klasy lub struktury, ale nie właściwości, a kontekst zezwala na dostęp do właściwości, Visual Basic rozpoznaje dostęp do domyślnej właściwości tej klasy lub struktury, jeśli istnieje.

Klasa lub struktura może mieć co najwyżej jedną właściwość domyślną. Można jednak przeciążyć właściwość domyślną i mieć więcej niż jedną wersję.

Aby uzyskać więcej informacji, zobacz Domyślne.

Aby zadeklarować właściwość domyślną

  1. Zadeklaruj właściwość w normalny sposób. Nie należy określać słowa kluczowego Shared lub Private .

  2. Uwzględnij Default słowo kluczowe w deklaracji właściwości.

  3. Określ co najmniej jeden parametr dla właściwości . Nie można zdefiniować właściwości domyślnej, która nie bierze co najmniej jednego argumentu.

    Default Property myProperty(ByVal index As Integer) As String
    

Aby wywołać właściwość domyślną

  1. Zadeklaruj zmienną zawierającą klasę lub typ struktury.

    Dim x As New class1(3)
    
  2. Użyj samej nazwy zmiennej w wyrażeniu, w którym zwykle należy uwzględnić nazwę właściwości.

    MsgBox(x)
    
  3. Postępuj zgodnie z nazwą zmiennej z listą argumentów w nawiasach. Właściwość domyślna musi przyjmować co najmniej jeden argument.

    MsgBox(x(1))
    
  4. Aby pobrać domyślną wartość właściwości, użyj nazwy zmiennej z listą argumentów w wyrażeniu lub po znaku równości (=) w instrukcji przypisania.

    MsgBox(x(1) & x(2) & x(3))
    
  5. Aby ustawić domyślną wartość właściwości, użyj nazwy zmiennej z listą argumentów po lewej stronie instrukcji przypisania.

    x(1) = "Hello"
    x(2) = " "
    x(3) = "World"
    
  6. Zawsze można określić domyślną nazwę właściwości wraz z nazwą zmiennej, tak jak w przypadku uzyskiwania dostępu do dowolnej innej właściwości.

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

Przykład 1

W poniższym przykładzie zadeklarowana jest właściwość domyślna klasy.

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

Przykład 2

W poniższym przykładzie pokazano, jak wywołać właściwość myProperty domyślną klasy class1. Trzy instrukcje przypisania przechowują MsgBox wartości w pliku myProperty, a wywołanie odczytuje wartości.

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

Najczęstszym zastosowaniem właściwości domyślnej jest Item[] właściwość w różnych klasach kolekcji.

Niezawodne programowanie

Właściwości domyślne mogą spowodować niewielkie zmniejszenie liczby znaków kodu źródłowego, ale mogą utrudnić odczytywanie kodu. Jeśli kod wywołujący nie jest zaznajomiony z klasą lub strukturą, gdy tworzy odwołanie do nazwy klasy lub struktury, nie może być pewne, czy odwołanie uzyskuje dostęp do samej klasy lub struktury, czy właściwości domyślnej. Może to prowadzić do błędów kompilatora lub drobnych błędów logiki czasu wykonywania.

Można nieco zmniejszyć prawdopodobieństwo błędów właściwości domyślnych, zawsze używając instrukcji Option Strict , aby ustawić sprawdzanie typów kompilatora na Onwartość .

Jeśli planujesz użyć wstępnie zdefiniowanej klasy lub struktury w kodzie, musisz określić, czy ma on właściwość domyślną, a jeśli tak, jaka jest jego nazwa.

Ze względu na te wady należy rozważyć nie zdefiniowanie właściwości domyślnych. W przypadku czytelności kodu należy również rozważyć jawne odwoływanie się do wszystkich właściwości, nawet właściwości domyślnych.

Zobacz też