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
+ 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.
+
operatör geri teper olabilir. Kötü sürprizler istemiyorsanız dizeleri birleştirmek için & kullanın. & operatör değil ise
&
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
+1. Kabul edilen cevap, sayısal dizgileri sayılara dönüştüren vbscriptten bahsetmiyor. – baacke
; Ö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.
* "+ işleci aşırı yüklendi" * - * ne şekilde? VB'de – Wolf
@wolf + operatörü, içeriğe bağlı olarak hem ekleme hem de birleştirme yapabilir. –
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