C#中关于String.Equals(object,object)和(object==object )的比较

今天碰到有人提问Equals()和==的问题,仔细研究了一下:

情况一
string s = "Test";
string t = string.Copy(s);
Console.WriteLine(s == t);
 Console.WriteLine((object)s == (object)t);
输出为true false

情况二
string s = "Test";
string t = s;
Console.WriteLine(s == t);
 Console.WriteLine((object)s == (object)t);
输出为true true

 情况三
string s = "Test";
string t = string.Copy(s);
Console.WriteLine(s.Equals(t)); //true
Console.WriteLine((object)s.Equals((object)t));//true

情况四
string s = "Test";
string t = s;
Console.WriteLine(s.Equals(t)); //true
Console.WriteLine((object)s.Equals((object)t));//true

            结论:
             String.Equals();方法(是String类从它的超类Object中继承的)被用来检测两个对象是否相等,即两个对象的内容是否相等。
            ==用于比较引用和比较基本数据类型时具有不同的功能:
            比较基本数据类型,如果两个值相同,则结果为true
            而在比较引用时,如果引用指向内存中的同一对象(即内存地址是一样的),结果为true.
这个有别人的知识在里面,我觉得总结的比较好也可能更接近正确答案。有不妥请指出。
来源: http://www.programbbs.com/bbs/editannounce.asp?BoardID=14&replyID=96205&id=15477&star=2

转载于:https://www.cnblogs.com/mishy/archive/2008/12/07/1349698.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值