2009-07-30 16 views
24

VBScript hakkında konuştuğu her sitede, '&' operatörü, dizgi birleştirme işleci olarak listelenir. Ancak, geçtiğimiz günlerde devraldığım bazı kodlarda, kullanılmakta olan '+' operatörünü görüyorum ve bunun sonucunda herhangi bir hata göremiyorum. Bu kabul edilen bir alternatif mi? dizeleri sayı olarak yorumlanabilir zamanVBScript'in + ve & operatörü arasındaki fark nedir?

cevap

37

+ operatörü aşırı. & operatörü yalnızca dizgi birleştirme yapar. Bazı çevrelerde & operatörü en iyi uygulama olarak kullanılır, çünkü açık değildir ve bu nedenle aşırı yüklenme sonucunda istenmeyen etkilere sahip olamaz.

+0

* "+ işleci aşırı yüklendi" * - * ne şekilde? VB'de – Wolf

+3

@wolf + operatörü, içeriğe bağlı olarak hem ekleme hem de birleştirme yapabilir. –

+1

Eh, bunu zaten okudum. * Aşırı yüklenen * kelimesini kendi istediğim aşırı yükledim, cevabı bu noktada biraz daha hassas olabilirdi. Dize numarası + numarası belirtmek için – Wolf

6

+ operatör geri teper olabilir. Kötü sürprizler istemiyorsanız dizeleri birleştirmek için & kullanın. & operatör değil ise

27

& işleci, dizgecik birleştirme işlemini gerçekleştirir, yani işlenenleri dizelere dönüştürülmeye zorlar (ilk olarak CStr'u çağırmak gibi). +, sırayla, ifadelerden biri sayısal ise ekleme zorlar. Örneğin:

1 + 2 
"1" + 2 
1 + "2" 

size 3 vermek oysa

1 & 2 

, size 12 verir.

Yani, Belirsizliğe ortadan kaldırır çünkü dize Ulama için & kullanılması önerilir. + Bir istisna durumu Bazı durumlarda

+3

+1. Kabul edilen cevap, sayısal dizgileri sayılara dönüştüren vbscriptten bahsetmiyor. – baacke

0

; Örneğin aşağıdaki: - COM nesnesi kaynak olayı harekete bir özel durumu alacak

Sub SimpleObject_FloatPropertyChanging(fvalue, cancel) 
    'fvalue is a floating point number 
    MsgBox "Received Event: " + fvalue 
End Sub 

aşağıdakilerden birini yapmanız gerekir:

MsgBox "Received Event: " & fvalue 

veya

MsgBox "Received Event: " + CStr(fvalue) 

O her iki durumda da CStr(value); ancak dize birleştirme için yapılan yorumların başına & kullanılması neredeyse her zaman en iyi uygulamadır.

İlgili konular