C#学习中,我会一直把学习中的问题写出来,以留后来把基本知识学问了看。
今天看到这样的理论:
- 如果两个int类型的表达式代表了相同的整数据,它们被认为是相等的。
- 如果两个object类型的表达式都指向相同的对象或者都是空的,它们被认为是相等的。
- 如果字符串实例有相同的长度并且在每个字符的位置都相同,或者都为空,这两个字符串类型的表达式就被认为是相等的。
后面有相对应的代码:
运行结果:
True
False
Test
因为第一个比较符比较两个string类型的表达式,而第二个比较符比较两个object类型的表达式。
我不明白,为什么第一个和第二个输出结果不相同,当然我也知道结果应该是不相同的,只是不知道其原因,后面输出t的值是我自己加上去的。
static void Main(string[] args)
{
string s = "Test";
string t = string.Copy(s);
Console.WriteLine(s == t);
Console.WriteLine((object)s == (object)t);
Console.WriteLine(t);
}