Is there any difference between & and + operators while concatenating string? if yes, then what is difference? And if No, then why below code generating exception?
&
is only used for string concatenation. +
is overloaded to do both string concatenation and arithmetic addition.The double purpose of +
leads to confusion, exactly like that in your question. Especially when Option Strict
is Off
, because the compiler will add implicit casts on your strings and integers to try to make sense of your code.
My recommendations
Option Strict On
, then the compiler will force you to add explicit casts where it thinks they are necessary. +
for concatenation because of the ambiguity with arithmetic addition. Both these recommendations are also in the Microsoft Press book Practical Guidelines And Best Practises for VB and C# (sections 1.16, 21.2)
You can write '&' to add string and integer :
processDetails=objProcess.ProcessId & ":" & objProcess.name
message = msgbox(processDetails,16,"Details")
output will be:
5577:wscript.exe