s &= "foo"
をフレームワークにステップイン実行して確かめてみました。
そしたらConcatの中に入って、IsNullOrEmptyを使ってちゃんと処理するようになってました。
これはC#でも同じなので、C#でもできました。
>VB.NET の場合、少し Nothing は特殊だと思います。
Nothingについては、以前、とりこびとさんがエントリされてました。
Stringは参照型なので、既定値はNothingなのですね。
http://blogs.wankuma.com/torikobito/archive/2007/10/10/101081.aspx
でも、Visual BasicとC#は、次の点では違うみたいです。
Visual Basic
Dim s As String = Nothing
Dim f As Boolean = (s = "") '→Trueになります。
C#
string s = null;
bool f = (s == ""); // →falseになります。
Visual Basicの場合は、
Microsoft.VisualBasic.CompilerServices.Operators
が呼ばれて、C#の場合は
String.Equals
が呼ばれてました。
やっぱりC#の方が好きですw
かたまりさんのブログのデザインも好きですw