Prosedur Operator (Visual Basic)

Prosedur operator adalah serangkaian pernyataan Visual Basic yang menentukan perilaku operator standar (seperti *, <>, atau And) pada kelas atau struktur yang telah Anda tentukan. Fungsi ini juga disebut kelebihan beban operator.

Saat Harus Menentukan Prosedur Operator

Stelah menentukan kelas atau struktur, Anda dapat mendeklarasikan variabel sebagai jenis kelas atau struktur tersebut. Terkadang variabel seperti itu perlu berpartisipasi dalam operasi sebagai bagian dari ekspresi. Untuk melakukannya, variable itu harus menjadi operand operator.

Visual Basic menentukan operator hanya pada jenis data dasarnya. Anda dapat menentukan perilaku operator ketika salah satu atau kedua operand berasal dari jenis kelas atau struktur Anda.

Untuk informasi selengkapnya, lihat Prosedur Operator.

Jenis Prosedur Operator

Prosedur operator dapat menjadi salah satu dari jenis berikut:

  • Definisi operator tunggal di mana argumennya adalah jenis kelas atau struktur Anda.

  • Definisi operator biner di mana setidaknya salah satu argumen adalah jenis kelas atau struktur Anda.

  • Definisi operator konversi di mana argumennya adalah jenis kelas atau struktur Anda.

  • Definisi operator konversi yang mengembalikan jenis kelas atau struktur Anda.

Operator konversi selalu tunggal, dan Anda selalu menggunakan CType sebagai operator yang Anda tentukan.

Sintaks Deklarasi

Sintaks untuk mendeklarasikan prosedur operator adalah sebagai berikut:

Public Shared [Widening | Narrowing] Operator operatorsymbol ( operand1 [,  operand2 ]) As datatype

' Statements of the operator procedure.

End Operator

Anda hanya menggunakan kata kunci Widening atau Narrowing pada operator konversi jenis. Simbol operator selalu Fungsi CType untuk operator konversi jenis.

Anda mendeklarasikan dua operand untuk menentukan operator biner, dan Anda mendeklarasikan satu operand untuk menentukan operator tunggal, termasuk operator konversi jenis. Semua operand harus dideklarasikan ByVal.

Anda menyatakan setiap operand dengan cara yang sama seperti Anda mendeklarasikan parameter untuk Sub Prosedur.

Jenis Data

Karena Anda menentukan operator pada kelas atau struktur yang telah Anda tentukan, setidaknya salah satu operand harus dari jenis data kelas atau struktur itu. Untuk operator konversi jenis, baik jenis operand atau kembalian harus dari jenis data kelas atau struktur.

Untuk detail selengkapnya, lihat Pernyataan Operator.

Sintaks Panggilan

Anda memanggil prosedur operator secara implisit dengan menggunakan simbol operator dalam sebuah ekspresi. Anda menyediakan operand dengan cara yang sama seperti yang Anda lakukan untuk operator yang telah ditentukan.

Sintaks untuk panggilan implisit ke prosedur operator adalah sebagai berikut:

Dim testStruct Asstructurename

Dim testNewStruct Asstructurename= testStructoperatorsymbol10

Ilustrasi Deklarasi dan Panggilan

Struktur berikut menyimpan nilai bilangan bulat 128-bit yang ditandatangani sebagai bagian urutan tinggi dan urutan rendah konstituen. Struktur tersebut menentukan operator + untuk menambahkan dua nilai veryLong dan menghasilkan nilai veryLong yang dihasilkan.

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

Contoh berikut menunjukkan panggilan umum ke operator + yang ditentukan pada veryLong.

Dim v1, v2, v3 As veryLong
v1.highOrder = 1
v1.lowOrder = Long.MaxValue
v2.highOrder = 0
v2.lowOrder = 4
v3 = v1 + v2

Lihat juga