Udostępnij za pośrednictwem


+ — Operator (Visual Basic)

Dodaje dwie liczby lub zwraca wartość dodatnią wyrażenia liczbowego. Można również używać do łączenia dwóch wyrażeń ciągu.

Składnia

expression1 + expression2

lub

+expression1  

generatora

Termin Definicja
expression1 Wymagany. Dowolne wyrażenie liczbowe lub ciągowe.
expression2 Wymagane, chyba że + operator oblicza wartość ujemną. Dowolne wyrażenie liczbowe lub ciągowe.

Result

Jeśli expression1 i expression2 są liczbowe, wynikiem jest suma arytmetyczna.

Jeśli expression2 jest nieobecny, + operator jest operatorem tożsamości jednoargumentowej dla niezmienionej wartości wyrażenia. W tym sensie operacja polega na zachowaniu expression1znaku , więc wynik jest ujemny, jeśli expression1 jest ujemny.

Jeśli expression1 i expression2 są ciągami, wynikiem jest łączenie ich wartości.

Jeśli expression1 i expression2 są typami mieszanymi, podjęta akcja zależy od ich typów, ich zawartości i ustawienia instrukcji Option Strict. Aby uzyskać więcej informacji, zobacz tabele w sekcji "Uwagi".

Obsługiwane typy

Wszystkie typy liczbowe, w tym typy niepodpisane i zmiennoprzecinkowe oraz Decimal, i String.

Uwagi

Ogólnie rzecz biorąc, wykonuje dodawanie arytmetyczne, + gdy jest to możliwe, i łączy tylko wtedy, gdy oba wyrażenia są ciągami.

Jeśli żadne wyrażenie nie jest wyrażeniem Object, program Visual Basic wykonuje następujące akcje.

Typy danych wyrażeń Akcja kompilatora
Oba wyrażenia są typami danych liczbowych (SByte, Byte, ShortLongIntegerUShortULongDecimalUIntegerSinglelub )Double Dodaj. Typ danych wynikowych jest typem liczbowym odpowiednim dla typów expression1 danych i expression2. Zobacz tabele "Arytmetyka całkowita" w obszarze Typy danych wyników operatorów.
Oba wyrażenia są typu String Złączyć.
Jedno wyrażenie jest typem danych liczbowych, a drugi jest ciągiem Jeśli Option Strict ma wartość On, wygeneruj błąd kompilatora.

Jeśli Option Strict parametr to Off, niejawnie przekonwertuj element String na Double i dodaj.

Jeśli nie można przekonwertować elementu String na Double, zgłosić InvalidCastException wyjątek.
Jedno wyrażenie jest typem danych liczbowych, a drugi to Nic Dodaj wartość z wartością Nothing zero.
Jedno wyrażenie jest ciągiem, a drugie Nothing Połącz, z wartością Nothing "".

Jeśli jedno wyrażenie jest wyrażeniem Object , visual basic wykonuje następujące akcje.

Typy danych wyrażeń Akcja kompilatora
Object Wyrażenie zawiera wartość liczbową, a druga jest typem danych liczbowych Jeśli Option Strict ma wartość On, wygeneruj błąd kompilatora.

Jeśli Option Strict ma wartość Off, dodaj.
Object wyrażenie zawiera wartość liczbową, a druga jest typu String Jeśli Option Strict ma wartość On, wygeneruj błąd kompilatora.

Jeśli Option Strict parametr to Off, niejawnie przekonwertuj element String na Double i dodaj.

Jeśli nie można przekonwertować elementu String na Double, zgłosić InvalidCastException wyjątek.
Object Wyrażenie zawiera ciąg, a drugi jest typem danych liczbowych Jeśli Option Strict ma wartość On, wygeneruj błąd kompilatora.

Jeśli Option Strict parametr to Off, niejawnie przekonwertuj ciąg Object na Double i dodaj.

Jeśli nie można przekonwertować ciągu Object na Double, zgłosić InvalidCastException wyjątek.
Object Wyrażenie zawiera ciąg, a drugi jest typu String Jeśli Option Strict ma wartość On, wygeneruj błąd kompilatora.

Jeśli Option Strict wartość to Off, niejawnie przekonwertuj Object na String i połącz.

Jeśli oba wyrażenia są Object wyrażeniami, program Visual Basic wykonuje następujące akcje (Option Strict Off tylko).

Typy danych wyrażeń Akcja kompilatora
Oba Object wyrażenia przechowują wartości liczbowe Dodaj.
Oba Object wyrażenia są typu String Złączyć.
Jedno Object wyrażenie zawiera wartość liczbową, a druga zawiera ciąg Niejawnie przekonwertuj ciąg Object na Double i dodaj.

Jeśli nie można przekonwertować ciągu Object na wartość liczbową, zgłosić InvalidCastException wyjątek.

Object Jeśli wyrażenie zwróci wartość Nic lub DBNull, + operator traktuje go jako String wartość "".

Uwaga

Jeśli używasz + operatora, możesz nie być w stanie określić, czy wystąpi połączenie dodawania lub łączenia ciągów. & Użyj operatora do łączenia, aby wyeliminować niejednoznaczność i udostępnić kod samodzielnego dokumentowania.

Przeciążenie

Operator + może być przeciążony, co oznacza, że klasa lub struktura może ponownie zdefiniować jego zachowanie, gdy operand ma typ tej klasy lub struktury. Jeśli kod używa tego operatora w takiej klasie lub strukturze, upewnij się, że rozumiesz jego ponownie zdefiniowane zachowanie. Aby uzyskać więcej informacji, zobacz Procedury operatorów.

Przykład

W poniższym przykładzie użyto operatora w celu dodania + liczb. Jeśli operandy są zarówno liczbowe, program Visual Basic oblicza wynik arytmetyczny. Wynik arytmetyczny reprezentuje sumę dwóch operandów.

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

Możesz również użyć + operatora do łączenia ciągów. Jeśli operandy są ciągami, program Visual Basic łączy je. Wynik łączenia reprezentuje pojedynczy ciąg składający się z zawartości dwóch operandów jeden po drugim.

Jeśli operandy mają mieszane typy, wynik zależy od ustawienia instrukcji Option Strict. Poniższy przykład ilustruje wynik , gdy Option Strict ma wartość 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. 

Poniższy przykład ilustruje wynik , gdy Option Strict ma wartość 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.

Aby wyeliminować niejednoznaczność, należy użyć & operatora zamiast + do łączenia.

Zobacz też