刚才在妖精那看到关于String的相等比较,提出一些关于字符串相等比较的问题。
第一题就不说了,那是string的运算符重载和对Equals方法覆写(override)的的原因。
我们来谈谈第二题.
static void Main()
{
object s = "Test";
object t = "Test";
Console.WriteLine(s == t);
}
这个为什么相等呢?
String在.net当中是个比较特殊的对象,他是唯一具备字面值(literal value)的引用类型。他还具备不变性(immutable)。而且在.net当中他还有一些特殊的待遇。有兴趣的可以看看我的文章Literal String的特性 。
这篇文章解释了刚才我们提到的问题。