zoukankan      html  css  js  c++  java
  • ==,equal,RefenceEqual区别

    对于值类型,==和Equal操作的作用是一样的,就是比较值类型的值是否相等。如果使用object.ReferenceEquals来比较值类型,输出永远都是FALSE,因为他们BOX之后在堆上的引用都不是同一个值。

    对于引用类型来说,==,Equal,ReferenceEqual都是对引用对象是否相等的比较,而不是他们的值,除非重写函数进行值比较。

     

    对于字符串这种特殊的值类型来说,==和Equal操作的作用是一样的,就是比较值类型的值是否相等。如果使用object.ReferenceEquals来比较值类型,就要看字符串是否是新实化的,否则字符串池的机制会使得对象的引用相等。

                string x =new String(new char[]{'a'});
                string y = "a";
                string z = "a";
                Console.WriteLine(x.Equals(y));//ture
                Console.WriteLine(object.ReferenceEquals(x,y));//false
                Console.WriteLine(object.ReferenceEquals(z, y));//true


     

  • 相关阅读:
    连接ESP32失败:等待包头 #226超时
    题王网
    高可用架构模式——CAP
    高性能负载均衡
    单服务器高性能模式
    虚拟支付
    高性能架构设计——数据库篇
    MySQL
    shell 命令: MD5
    HTTPS
  • 原文地址:https://www.cnblogs.com/leestar54/p/3013208.html
Copyright © 2011-2022 走看看