zoukankan      html  css  js  c++  java
  • 对象的同一性与相等性

    对象的相等性很好理解,就是两个对象完全一样,但是对象的同一性可能就不是很好理解了。不多说废话,直接上代码

    static void Main(string[] args)
            {
                Person p1 = new Person();
                Person p2 = new Person();
                Person p3 = p1;
                Console.WriteLine($"p1 == p2: {p1 == p2}");
                Console.WriteLine($"p1 == p3: {p1 == p3}");
                Console.WriteLine($"p1.Equals(p3): {p1.Equals(p3)}");
    
                Console.Read();
            }

    结果:

    从上面的打印结果看出,p1与p2是不相等的,p1与p3是相等的,且“==”的作用与Equals是一样的。

    个人分析,p1和p2是new出来的两个对象,都未进行赋值,那么他们各属性(通常讲是自定义的)的值应该是一样的,而内存地址不相同,所以他们不相等;而p3是直接引用的p1对象,结果上是相等的。

    像p1和p2的这种情况称为同一性,p1和p3称为对象的相等性。

  • 相关阅读:
    阅读笔记06
    阅读笔记05
    学习进度03
    四则运算03
    阅读笔记04
    求最大子数组值(有环版)
    合作项目02
    新的小组信息以及项目名称与介绍
    第六周进度条
    软件工程个人作业4(课堂练习&&课堂作业)
  • 原文地址:https://www.cnblogs.com/xuanyishare/p/9373222.html
Copyright © 2011-2022 走看看