zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    Select列表操作函数
    IBM职业之路—职业规划和技术发展(转自LU)听听前辈的意见
    C#上传下载文件ftp操作类FTPClient代码(转)
    C# FTP操作类
    UML基础
    DevExpress控件之XtraTreeList
    认识UML类图元素
    C#读写EXCEL
    C#正则表达式整理备忘
    面向对象程序可视化类图的逆向自动生成
  • 原文地址:https://www.cnblogs.com/mishy/p/1349698.html
Copyright © 2011-2022 走看看