http://d.hatena.ne.jp/crimsonwoods/20061129/1164783396
string.Emptyと文字列リテラル""について参照比較をした場合の挙動が、
.NET Framework 1.1と2.0で異なることについて。
MSDNを引っ掻き回してみると、
string.Internに.NET Framework 1.1と2.0では
インターンの仕様が変わったよと書いてある。
.NETでもこの手の罠はあるのね・・・。
Pythonでもおもしろい例が。
>>> a = 256 >>> a == 256 True >>> a is 256 True >>> a = 257 >>> a == 257 True >>> a is 257 False >>>
ただし、Pythonでは同値が==で、同一がisになっている。==が同一となっているJavaやC#よりは罠にかかりにくいと思う。