string="hello";
string b="h";
//追加的内容到b中
b+="ello";
Console.WriteLine(a==b);//将输出true
Console.WriteLine((object)a==(object)b);//将输出flase 为什么这里是flase
string b="h";
//追加的内容到b中
b+="ello";
Console.WriteLine(a==b);//将输出true
Console.WriteLine((object)a==(object)b);//将输出flase 为什么这里是flase
(object)a==(object)b 而这里把字符串强转为object,就变成引用比较,所以为false.
但是字符串重载了比较操作符==,重载后的比较操作符==被改写成比较串的值,而没有经过重载的原始的object的比较操作符==比较的是两个实例的地址。
而强制转换成object,调用的是没有经过重载的比较操作符==