• 怎么判断两个对象是不是相等

  • 本文关于 c#
  • CodeGo.net > 怎么判断两个对象是不是相等
  •  

    怎么判断两个对象是不是相等



    c#
    class Node
    {
    Node node;
    date date;
    }
    main()
    {
    Node a=new Node();
    ...
    Node b=new Node();
    ...
    if(a==b)
    {
    ...
    }
    }
    if(a==b)这一句判断的是什么东西,是两个对象的地址,还是内容?
    本文地址 :CodeGo.net/1482712/
    -------------------------------------------------------------------------------------------------------------------------
    1.对象名.equals(对象);
    或者自己写一个类咯  引用 属于一种数据类型 与它对应的还有一个是值类型  ,引用类型访问时候,传入的不是值,而是值所在的地址  地址是内存中存储数据的单元。
    2. 如果不重写 Equals()
    那么
    Node a = new Node();
    Node b = new Node();
    a == b 必然不成立 另外,如果你打算重写 Equals() 遵守以下约定:
    (1)保证如果 a == b,那么 b == a,如果 a != b CodeGo.net,那么 b != a (2)保证永远 a == a
    (3)保证如果 a == b, b == c,那么永远 a == c
    (4)保证如果 a == b,那么 a.GetHashCode() == b.GetHashCode()
    3. 判断的是什么东西完全取决于Node是否重载==号,未必跟重载Equal方法有关系...
    只有在没有重载==号的情况下,引用类型实例用==号比较才是比较“引用”——注意是“引用”——“引用”跟“地址”是两码事...
    本文标题 :怎么判断两个对象是不是相等
    本文地址 :CodeGo.net/1482712/
    1. 如何声明,它返回的“东西”的泛型集合的方法(C#)
    2. (1-2/15)^3.5的 3.5次方 怎么写
    3. MVC在c#中取胜。申请表格
    4. 文章沉,关于C# tcp服务器不稳定报错,详细错误信息和图片都有帮助
    5. C#中:发送从非活动窗口输入
    6. sql:where gno in (@gno) 提示:输入字符串的格式不正确
    7. C#源代码搜索
    8. 类或方法的提示说明
    9. 在执行一个新的进程的静态方法
    10. 我用时间作为一个配置文件的文件名格式是:

     
    

    Copyright © 2017 CodeGo.net
    http://codego.net/xinwen/ 足球比分网 足球比分 医药招商网 邵阳县新闻