re: VB.NETで空の文字列

投稿日 : 2008年4月22日 13:29
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