ما هو الفرق بين + فبسكريبت ووالمشغل؟
-
05-07-2019 - |
سؤال
في كل المواقع التي تتحدث عن فبسكريبت، يتم سرد المشغل &
"كمشغل سلسلة سلسلة. ومع ذلك، في بعض رمز بأنني ورثت مؤخرا، وأرى أن المشغل +
"تستخدم وأنا لا أرى أية أخطاء نتيجة لذلك. هذا هو بديل مقبول؟
المحلول
وطاقتها و+ المشغل، في حين أن والمشغل ليست كذلك. & عامل التشغيل يفعل سلسلة سلسلة فقط. في بعض الدوائر يستخدم المشغل وباعتباره أفضل الممارسات لأنها لا لبس فيه، وبالتالي لا يمكن أن يكون لها أي آثار غير مقصودة نتيجة لالحمولة الزائدة.
نصائح أخرى
والمشغل &
يفعل سلسلة سلسلة، وهذا هو، تجبر المعاملات يمكن تحويلها إلى سلاسل (مثل الدعوة CStr
عليها أولا). +
، بدورها، يجبر بالإضافة إذا كان أحد التعبيرات غير الرقمية. على سبيل المثال:
1 & 2
ويمنحك 12
، في حين
1 + 2
"1" + 2
1 + "2"
وتعطيك 3
.
وهكذا، فمن المستحسن استخدام &
لسلسلة سلسلة لأنه يزيل الغموض.
ومشغل +
قد تأتي بنتائج عكسية عندما يمكن تفسير السلاسل والأرقام. إذا كنت لا تريد مفاجآت سيئة استخدام ولسلسلة السلاسل.
في بعض الحالات فإن + بطرح استثناء. على سبيل المثال ما يلي:
Sub SimpleObject_FloatPropertyChanging(fvalue, cancel)
'fvalue is a floating point number
MsgBox "Received Event: " + fvalue
End Sub
وسوف تحصل استثناء عندما يطلق المصدر كائن COM الحدث - يجب عليك القيام بأي مما يلي:
MsgBox "Received Event: " & fvalue
أو
MsgBox "Received Event: " + CStr(fvalue)
وربما يكون الأفضل في كلتا الحالتين لاستخدام CStr(value)
. ولكن باستخدام وفي التعليقات الواردة أعلاه لسلسلة سلسلة يكاد يكون دائما أفضل الممارسات.