zoukankan      html  css  js  c++  java
  • C#判断是否相等

    判断对象是否相等,因为平时用的一般都是int、bool、string类型的数据是否相等。

    同时也是只判断它们的“值”是否相等。于是都是用“==”或是Equal()方法来判断。

    但这并不能判断出是否为同一对象。

    下面是代码分析:

    有图可知,Equal()方法是判断指定对象是否具有相同的值。

    由于两个string是直接赋值,就涉及到字符串池的技术。

    由下图可知a1和a2的地址也是一样。从结果和各项对比中也可以知道:

    string 通过new赋值是会产生不同对象的,只是字符串的值的一致的。

    object.ReferenceQuals()才能真正的判断两个对象是否相等。

    附加:

    下面是通过不同的方式声明了两个值一样的字符串。

    由它们的地址可知,一个char占一个字节,所以a、b、c之间地址才会相差一个byte的大小。

    同时按顺序,c与aa之间的地址相差5个byte,e4到44,这个原因是由于字符串的不可变性。

    所以在执行a+b时,系统为它们相加的值给了一个地址存储,这里的两个字节,

    再把a+b得到的值与c相加,这里是3个字节。所以一共是5个字节。

    所以这也导致了aa与bb为不同的对象。

  • 相关阅读:
    NLP概览(一)
    java正则表达式实例
    notepad++
    Mybatis点滴
    (转)GNU Make学习总结(二)
    (转)GNU Make学习总结(一)
    分页查询
    第三方插件
    单例模式读取数据库配置文件和JNDI连接数据源
    过滤器与监听器
  • 原文地址:https://www.cnblogs.com/xiaoai123/p/6935028.html
Copyright © 2011-2022 走看看