Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Если вы определили класс или структуру, можно определить поведение стандартного оператора (например*<>, или And) при наличии одного или обоих операндов типа класса или структуры.
Определите стандартный оператор как процедуру оператора в классе или структуре. Все процедуры оператора должны быть PublicShared.
Определение оператора класса или структуры также называется перегрузкой оператора.
Пример
В следующем примере определяется + оператор для структуры, называемой height. Структура использует высоту, измеряемую в футах и дюймах. Один дюйм составляет 2,54 сантиметра, и одна нога составляет 12 дюймов. Чтобы обеспечить нормализованные значения (дюймы < 12,0), конструктор выполняет арифметический модуль 12. Оператор + использует конструктор для создания нормализованных значений.
Public Shadows Structure height
' Need Shadows because System.Windows.Forms.Form also defines property Height.
Private feet As Integer
Private inches As Double
Public Sub New(ByVal f As Integer, ByVal i As Double)
Me.feet = f + (CInt(i) \ 12)
Me.inches = i Mod 12.0
End Sub
Public Overloads Function ToString() As String
Return Me.feet & "' " & Me.inches & """"
End Function
Public Shared Operator +(ByVal h1 As height,
ByVal h2 As height) As height
Return New height(h1.feet + h2.feet, h1.inches + h2.inches)
End Operator
End Structure
Вы можете протестировать структуру height с помощью следующего кода.
Public Sub consumeHeight()
Dim p1 As New height(3, 10)
Dim p2 As New height(4, 8)
Dim p3 As height = p1 + p2
Dim s As String = p1.ToString() & " + " & p2.ToString() &
" = " & p3.ToString() & " (= 8' 6"" ?)"
Dim p4 As New height(2, 14)
s &= vbCrLf & "2' 14"" = " & p4.ToString() & " (= 3' 2"" ?)"
Dim p5 As New height(4, 24)
s &= vbCrLf & "4' 24"" = " & p5.ToString() & " (= 6' 0"" ?)"
MsgBox(s)
End Sub
См. также
- Процедуры операторов
- Практическое руководство. Определение оператора преобразования
- Практическое руководство. Вызов процедуры оператора
- Практическое руководство. Использование класса, в котором определяются операторы
- Оператор Statement
- Оператор Structure
- Практическое руководство. Объявление структуры
- Оператор Mod