zoukankan      html  css  js  c++  java
  • C# 中==与Equals方法比较

    描述

    对于比较值类型、string类型 2者无区别。

    引用类型,Equals比较的是二者指向内容是否一致;

      ==比较二者的地址是否是同一个地址。

    详细

    1. 对于值类型,==和Equals()等价,都是比较存储信息的内容(即比较两个对象的值是否相同);

    2. 对于除string之外的引用类型,==比较的是栈的内容是否相同(即是否指向同一个堆中地址),Equals()判断是否对同一个对象的引用(即堆中的内容是否相同);

    3. string是一种特殊的引用类型,在C#语言中,重载了Object对象的很多方法(包括equals()方法),使string对象用起来就像是值类型一样

       下图为string类中重载的Equals方法描述:

        

    4. 对于一些自定义类,我们看看是否有重载Equals方法,如果没有则默认为基类的Equals方法(如果基类没有重载Equals方法则为Object类Equals方法),Object类中Equals方法比较也是栈中的地址,而不是堆中的内容。

         下图为Object类中Equals方法描述:

        

  • 相关阅读:
    攻防世界-web进阶-Web_php_include
    攻防世界-web进阶-php_rce
    Buuctf-misc-穿越时空的思念
    Buuctf-misc-[BJDCTF 2nd]EasyBaBa (kinovea)
    Buuctf-misc-菜刀666
    Buuctf-misc-[BJDCTF 2nd]圣火昭昭-y1ng(outguess)
    Access数据库简介
    VC与VB
    VB的使用
    工作总结2
  • 原文地址:https://www.cnblogs.com/blogs2014/p/10416871.html
Copyright © 2011-2022 走看看