+ Operator (Visual Basic)

Menambahkan dua angka atau mengembalikan nilai positif dari ekspresi numerik. Juga dapat digunakan untuk menggabungkan dua ekspresi string.

Sintaks

expression1 + expression2

or

+expression1  

Generator

Term Definisi
expression1 Harus diisi. Ekspresi numerik atau string apa pun.
expression2 Diperlukan kecuali + operator menghitung nilai negatif. Ekspresi numerik atau string apa pun.

Hasil

Jika expression1 dan expression2 keduanya numerik, hasilnya adalah jumlah aritmatika mereka.

Jika expression2 tidak ada, operator + adalah operator identitas unary untuk nilai ekspresi yang tidak berubah. Dalam pengertian ini, operasi terdiri dari mempertahankan tanda expression1, sehingga hasilnya negatif jika expression1 negatif.

Jika expression1 dan expression2 keduanya adalah string, hasilnya adalah perangkaian nilainya.

Jika expression1 dan expression2 merupakan jenis campuran, tindakan yang diambil tergantung pada jenisnya, kontennya, dan pengaturan Pernyataan Ketat Opsi. Untuk informasi selengkapnya, lihat tabel di "Keterangan."

Jenis yang Didukung

Semua jenis numerik, termasuk jenis tidak-ditandatangani dan titik-mengambang dan Decimal, dan String.

Keterangan

Secara umum, + melakukan penambahan aritmatika jika memungkinkan, dan menggabungkan hanya ketika kedua ekspresi adalah string.

Jika tidak ada ekspresi yang merupakan Object, Visual Basic mengambil tindakan berikut.

Jenis data ekspresi Tindakan menurut kompiler
Kedua ekspresi adalah jenis data numerik (SByte, Byte, Short, UShort, Integer, UInteger, Long, ULong, Decimal, Single, atau Double) Penambahan. Jenis data hasil adalah jenis numerik yang sesuai untuk jenis expression1 data dan expression2. Lihat tabel "Aritmatika Bilangan Bulat" di Jenis Data Hasil Operator.
Kedua ekspresi berjenis String Gabungkan.
Satu ekspresi adalah jenis data numerik dan yang lainnya adalah string Jika Option Strict adalah On, maka buat kesalahan kompiler.

Jika Option Strict adalah Off, maka secara implisit konversi String ke Double dan tambahkan.

Jika String tidak dapat dikonversi ke Double, maka lemparkan pengecualian InvalidCastException.
Satu ekspresi adalah jenis data numerik dan yang lainnya adalah Tidak ada Tambahkan, dengan Nothing dinilai sebagai nol.
Satu ekspresi adalah string, dan yang lainnya adalah Nothing Menggabungkan, dengan Nothing dinilai sebagai "".

Jika satu ekspresi merupakan satu ekspresi Object, Visual Basic mengambil tindakan berikut.

Jenis data ekspresi Tindakan menurut kompiler
Ekspresi Object menyimpan nilai numerik dan yang lainnya adalah jenis data numerik Jika Option Strict adalah On, maka buat kesalahan kompiler.

Jika Option Strict adalah Off, maka tambahkan.
Ekspresi Object menyimpan nilai numerik dan yang lainnya berjenis String Jika Option Strict adalah On, maka buat kesalahan kompiler.

Jika Option Strict adalah Off, maka secara implisit konversi String ke Double dan tambahkan.

Jika String tidak dapat dikonversi ke Double, maka lemparkan pengecualian InvalidCastException.
Ekspresi Object menyimpan nilai numerik dan yang lainnya berjenis data numerik Jika Option Strict adalah On, maka buat kesalahan kompiler.

Jika Option Strict adalah Off, maka secara implisit mengonversi string Object menjadi Double dan tambahkan.

Jika Object tidak dapat dikonversi ke Double, maka lemparkan pengecualian InvalidCastException.
Ekspresi Object menyimpan string dan yang lainnya berjenis String Jika Option Strict adalah On, maka buat kesalahan kompiler.

Jika Option Strict adalah Off, maka secara implisit mengonversi Object ke String dan menggabungkan.

Jika kedua ekspresi adalah ekspresi Object, maka Visual Basic mengambil tindakan berikut (Option Strict Off saja).

Jenis data ekspresi Tindakan menurut kompiler
Kedua ekspresi Object menyimpan nilai numerik Penambahan.
Kedua ekspresi Object berjenis String Gabungkan.
Saru ekspresi Object menyimpan nilai numerik dan yang lainnya menyimpan string Secara implisit mengonversi string Object menjadi Double dan tambahkan.

Jika string Object tidak dapat dikonversi ke nilai numerik, maka berikan InvalidCastException pengecualian.

Jika salah satu ekspresi Object mengevaluasi ke Tidak Ada atau DBNull, maka operator + memperlakukannya sebagai String dengan nilai "".

Catatan

Saat Anda menggunakan operator +, Anda mungkin tidak dapat menentukan apakah akan terjadi penambahan atau perangkaian string. Gunakan operator & untuk perangkaian guna menghilangkan ambiguitas dan untuk memberikan kode dokumentasi-mandiri.

Kelebihan beban

Operator + dapat kelebihan beban, yang berarti bahwa kelas atau struktur dapat mendefinisikan ulang perilakunya saat operand memiliki jenis kelas atau struktur tersebut. Jika kode Anda menggunakan operator ini pada kelas atau struktur seperti itu, pastikan Anda memahami perilakunya yang didefinisikan ulang. Untuk informasi lebih lanjut, lihat Prosedur Operator.

Contoh

Contoh berikut menggunakan operator + untuk menambahkan angka. Jika operan keduanya numerik, Visual Basic menghitung hasil aritmatika. Hasil aritmatika mewakili jumlah dari dua operan.

Dim sumNumber As Integer
sumNumber = 2 + 2
sumNumber = 4257.04 + 98112
' The preceding statements set sumNumber to 4 and 102369.

Anda juga dapat menggunakan operator + untuk menggabungkan string. Jika operan adalah kedua string, Visual Basic menggabungkannya. Hasil perangkaian mewakili string tunggal yang terdiri dari konten dua operan satu demi satu.

Jika operan dari jenis campuran, hasilnya tergantung pada pengaturan Pernyataan Ketat Opsi. Contoh berikut mengilustrasikan hasil ketika Option Strict adalah On.

Option Strict On
Dim var1 As String = "34"
Dim var2 As Integer = 6
Dim concatenatedNumber As Integer = var1 + var2
' The preceding statement generates a COMPILER ERROR. 

Contoh berikut mengilustrasikan hasil ketika Option Strict adalah Off.

Option Strict Off
Dim var1 As String = "34"
Dim var2 As Integer = 6
Dim concatenatedNumber As Integer = var1 + var2
' The preceding statement returns 40 after the string in var1 is
' converted to a numeric value. This might be an unexpected result.
' We do not recommend use of Option Strict Off for these operations.

Untuk menghilangkan ambiguitas, Anda harus menggunakan operator &, bukan +, untuk perangkaian.

Lihat juga