object 和 string类型都是引用类型,为什么object a,b;
a=1;b=1;
Console.WriteLine(a==b);
string c,d;
c='hh";d="hh";
Consoe.WriteLine(c==d);显示:
false
true
还有object t=3;
object s=t;
t=6;
Consoe.WriteLine(t==s);
显示
false
为什么 s和t的值不一起变
a=1;b=1;
Console.WriteLine(a==b);
string c,d;
c='hh";d="hh";
Consoe.WriteLine(c==d);显示:
false
true
还有object t=3;
object s=t;
t=6;
Consoe.WriteLine(t==s);
显示
false
为什么 s和t的值不一起变
a=1;b=1;
Console.WriteLine(a==b);
string c,d;
c='hh";d="hh";
Consoe.WriteLine(c==d);显示:
false
true因为object判等比较的是2个对象在内存中的地址,所以两个不相等。而string对象重写了ojbect
中的方法Equs方法,自己提供了比较两个对象的方法所以是相等的,我们自己写的类一般都需要重写Equs方法
——-----------------------------------------------------
object t=3;
object s=t;
t=6;
Consoe.WriteLine(t==s);
显示
false
为什么 s和t的值不一起变和第一题的解释是一样的因为object的==比较是调用其Equs方法,该方法是比较2个对象在堆上的内存地址。