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ą
Zadeklaruj właściwość w normalny sposób. Nie należy określać słowa kluczowego
Shared
lubPrivate
.Uwzględnij
Default
słowo kluczowe w deklaracji właściwości.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ą
Zadeklaruj zmienną zawierającą klasę lub typ struktury.
Dim x As New class1(3)
Użyj samej nazwy zmiennej w wyrażeniu, w którym zwykle należy uwzględnić nazwę właściwości.
MsgBox(x)
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))
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))
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"
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 On
wartość .
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ż
- Procedury właściwości
- Parametry i argumenty procedur
- Property, instrukcja
- Wartość domyślna
- Różnice między właściwościami i zmiennymi w Visual Basic
- Instrukcje: tworzenie właściwości
- Instrukcje: deklarowanie właściwości z mieszanymi poziomami dostępu
- Instrukcje: wywoływanie procedury właściwości
- Instrukcje: umieszczanie wartości we właściwości
- Instrukcje: pobieranie wartości z właściwości