我写的程序中的一行:
string a = "abc";
string b = "abc";
Console.WriteLine("a == b is {0}",(a == b));输出:
a == b is True在下想问问:
书上说"=="是比较两个引用是不是指向同一个对象,但为什么本例子中好像不是这样的呢

解决方案 »

  1.   

    那就是书上说错了,String的==运算符重载过了
      

  2.   

    ==的默认实现(也就是在System.Object中)是引用比较,而.NET Framework中的大多数类型都重载了该操作符(当然也包括String)。具体可看看MSDN中的教程,个人觉得2.0的教程比1.1的好理解多了。还有另一个地方可以去看看,就是MSDN Magazine中的Jeffrey Richter的专栏文章,有很详细的讲述。当然如果看书的话,推荐去看Applied Microsoft .NET Framework Programming,其中有一章的内容专门讲了System.Object类。