Procedury operatorów (Visual Basic)
Procedurę operator jest serią Visual Basic instrukcji, które definiują zachowanie operatora standardowe (takie jak *, <>, lub And) na klasy lub struktury, które zostały zdefiniowane.Jest to tak zwane przeciążanie operatora.
Podczas definiowania procedur operatora
Po zdefiniowaniu klasy lub struktury można zadeklarować zmienne typu tej klasy lub struktury.Czasami takiej zmiennej musi uczestniczyć w operacji jako część wyrażenia.Aby to zrobić, należy operand operatora.
Visual BasicDefiniuje operatorów tylko na jego typów podstawowych danych.Można zdefiniować zachowanie operatora, gdy jeden lub oba operandy są typu klasy lub struktury.
Aby uzyskać więcej informacji, zobacz Operator — Instrukcja.
Rodzaje procedury operatora
Procedura operator może być jednym z następujących typów:
Definicja operator unarny, gdzie jest argumentem typu klasy lub struktury.
Definicja operatora binarnego, gdzie jest co najmniej jeden z argumentów typu klasy lub struktury.
Definicja operatora konwersji, w których argument jest typu klasy lub struktury.
Definicja operatora konwersji, która zwraca typ klasy lub struktury.
Operatory konwersji są zawsze jednoargumentowe i zawsze używać CType jako operatora, są definiowane.
Składnia deklaracji
Składnia deklaracji procedurę operator jest w następujący sposób:
Public Shared [Widening | Narrowing] Operatoroperatorsymbol (operand1 [, operand2]) As datatype
' Statements of the operator procedure.
End Operator
Za pomocą Widening lub Narrowing słowa kluczowego tylko na operatora konwersji typu.Symbol operatora jest zawsze CType — Funkcja (Visual Basic) dla operatora konwersji typu.
Stwierdzenie dwa operandy określenie operatora binarnego i zadeklarować jeden operand do definiowania operator unarny, łącznie z operatora konwersji typu.Wszystkie argumenty muszą być zadeklarowane ByVal.
Zadeklarować ten sam sposób można deklarować parametrów dla każdego argumentu Sub — Procedury (Visual Basic).
Typ danych
Ponieważ operator są definiowane na klasy lub struktury, które zostały zdefiniowane, co najmniej jeden z argumentów musi być typu danych, że klasy lub struktury.Dla operatora konwersji do typ operandu lub typ zwrotny musi być typu danych klasy lub struktury.
Aby uzyskać więcej informacji, zobacz Operator — Instrukcja.
Składnia wywołania
Wszcząć procedurę operator jest niejawnie przy użyciu symbolu operatora w wyrażeniu.Operandy podać ten sam sposób jak dla operatorów wstępnie zdefiniowanych.
Składnia niejawna wywołanie procedury operator jest w następujący sposób:
Dim testStruct As structurename
Dim testNewStruct As structurename = testStruct operatorsymbol 10
Ilustracja deklaracji i wywołanie
Następującą strukturę przechowuje wartość całkowita 128-bitowa, jako części składowe kolejności wysokiej i niskiej zamówienia.Definiuje on + operatora, aby dodać dwa veryLong wartości i wygenerować wynikające veryLong wartości.
Public Structure veryLong
Dim highOrder As Long
Dim lowOrder As Long
Public Shared Operator +(ByVal v As veryLong,
ByVal w As veryLong) As veryLong
Dim sum As New veryLong
sum = v
Try
sum.lowOrder += w.lowOrder
Catch ex As System.OverflowException
sum.lowOrder -= (Long.MaxValue - w.lowOrder + 1)
sum.highOrder += 1
End Try
sum.highOrder += w.highOrder
Return sum
End Operator
End Structure
W poniższym przykładzie pokazano typowy wywołanie + operator zdefiniowane na veryLong.
Dim v1, v2, v3 As veryLong
v1.highOrder = 1
v1.lowOrder = Long.MaxValue
v2.highOrder = 0
v2.lowOrder = 4
v3 = v1 + v2
Aby uzyskać dodatkowe informacje i przykłady, zobacz Przeciążanie operatora, w języku Visual Basic 2005.
Zobacz też
Zadania
Porady: definiowanie operatora (Visual Basic)
Porady: definiowanie operatora konwersji (Visual Basic)
Porady: wywoływanie procedury operatora (Visual Basic)
Porady: używanie klasy definiującej operatory (Visual Basic)
Informacje
Koncepcje
Sub — Procedury (Visual Basic)
Procedury funkcji (Visual Basic)