C# や Visual Basic で表現する空文字列「""」と「String.Empty」。.NET Framework 1.x では同一のインスタンスだったが、.NET Framework 2.0 以降は別物になってしまった。 Console.WriteLine(ReferenceEquals("", String.Empty));結果(.NET Framework 1.x) True結果(.NET Framework 2.0) False 当然、文字列インターンプール絡みの問題だ。 基本的に、リテラル文字列は「全て」文字列インターンプールに置かれると考えて良いはずだ。"" も String.Empty もリテラル文字列なので、本来なら ReferenceEquals の結果は True になる。何故、.NET Framework 2.0 では "" と String.Empty は同