zoukankan      html  css  js  c++  java
  • C# "=="、Equals()、ReferenceEquals()区别

    对于值类型

    int age1 = 30;
    byte age2 = 30;

        

          1、== 比较的是值内容

          2、age2.Equals(age1) = false; Equals比较前需要转换成同类型,age1(int型)需显示转换成byte型

          3、age1.ReferenceEquals(age2) = false; ReferenceEquals比较(判断两个对象的引用是否相等,对于值类型,因为每次判断前都必须进行装箱操作,

            也就是每次都生成了一个临时的object,因而永远返回false。)

    String类型:字符串是特殊的引用类型(CLR可以通过一个string对象共享多个完全一致的string内容)

           string name1 = "Jack";
                string name2 = "Jack";
    
                object o1 = name1;
                object o2 = name2;

         

    其他引用类型

           string name1 = new string(new char[] { 'J', 'a', 'c', 'k' });
                string name2 = new string(new char[] { 'J', 'a', 'c', 'k' });
           object o1 = name1;
                object o2 = name2;

        

        对于引用类型:

          1、== 比较的是类型对象指针

          2、Equals()比较的是托管堆上存储的内容

          3、ReferenceEquals()比较的也是对象本身

      

  • 相关阅读:
    get 方式获取ajax
    javascript 面试题目
    原生js 制作选项卡切换效果
    js 回到顶部效果
    php mysql
    浏览器高度 clientHeight 与scrollHeight offsetHeight
    js dom中删除子节点removeChild
    Javascript综合笔记
    Ka贪心大暴走
    Openjudge NOI题库 ch0111/t1794 集合加法
  • 原文地址:https://www.cnblogs.com/WebApp-DotNet/p/6211284.html
Copyright © 2011-2022 走看看