Cara: Menentukan Operator (Visual Basic)
Jika Anda telah menentukan kelas atau struktur, Anda dapat menentukan perilaku operator standar (seperti *
, <>
, atau And
) ketika salah satu atau kedua operand merupakan jenis kelas atau struktur Anda.
Tentukan operator standar sebagai prosedur operator dalam kelas atau struktur. Semua prosedur operator harus merupakan Public
Shared
.
Menentukan operator pada kelas atau struktur juga disebut overloading pada operator.
Contoh
Contoh berikut menentukan operator +
untuk struktur yang disebut height
. Strukturnya menggunakan tinggi yang diukur dalam kaki dan inci. Satu inci sama dengan 2,54 sentimeter, dan satu kaki sama dengan 12 inci. Untuk memastikan nilai yang dinormalisasi (inci < 12,0), konstruktor melakukan aritmatika modulo 12. Operator +
menggunakan konstruktor untuk menghasilkan nilai yang dinormalisasi.
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
Anda dapat menguji struktur height
dengan kode berikut.
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
Lihat juga
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk