Visual Basic には2種類の連結演算子が用意されています。それは、+ 演算子と & 演算子です。この連結演算子は2種類あるからには、両方とも状況に応じて使い分けるべきなのでしょうか。それともどちらか片方のみ使用すべきなのでしょうか。
+ 演算子か & 演算子か
まず + 演算子がどういうものなのか調べてみたいと思います。+ 演算子のドキュメントを参照すると、次の内容が記載されています。
一般に、+ は可能であれば加算を行い、両方の式が文字列の場合にだけ連結を行います。
+ 演算子を使用すると、加算と文字列連結のどちらが行われるのか、事前にはわかりにくい場合があります。連結に & 演算子を使用することで、あいまいさがなくなり、プログラムの可読性が向上します。
あいまいさをなくすため、連結には + 演算子ではなく & 演算子を使うようにしてください。
どうやら、+ 演算子は数値の加算用の演算子として用意されていて、おまけとして文字列の連結もできますよ。といった感じのようです。そしてかなり強調されているのが、連結を行う場合には & 演算子を使用するということです。
次に & 演算子について調べてみたいと思います。
キッパリと連結を行います、と記載されています。また、この他にも
文字列型 (String) でなくても文字列型 (String) に拡大変換される場合は、文字列型 (String) に変換されます。
とも記載されています。つまり & 演算子は連結専用の演算子である、ということです。
連結には & 演算子
VB6 のころは「数値 + 数字」を行うと数字を数値として扱って計算が行われていたので、連結には & 演算子を使うようにしていました。しかし .NET は型を強く意識しているので + 演算子でもいいのでは? と思っていました。Option Strict を On にすれば確かに良さそうに見えるのですが、誰が見ても連結を行いたいとわかるように、連結をする時は & 演算子を使用したいと思います。