| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1239 人关注过本帖
标题:equals 与 运算符==的区别
只看楼主 加入收藏
czg123698741
Rank: 2
等 级:论坛游民
帖 子:348
专家分:84
注 册:2009-3-4
结帖率:78.99%
收藏
已结贴  问题点数:0 回复次数:7 
equals 与 运算符==的区别
请问一下,我最近搞不懂 equals 与 运算符==的区别 我知道在C#中equals比较的是否指向同一对象,而运算符 == 则比较的是内容是否一致。

但是我曾经分别自定义两个类然后实例化它们,然后比较但是结果都是TRUE或者都是FALSE。

这是为什么啊??请帮帮忙~~~~~~~~
搜索更多相关主题的帖子: 运算符 equals 
2009-12-20 21:15
yangglemu
Rank: 7Rank: 7Rank: 7
等 级:黑侠
帖 子:273
专家分:521
注 册:2006-9-15
收藏
得分:0 
==用于值类型或者字符串

equals用于引用类型

试着挣个威望!
2009-12-21 01:04
czg123698741
Rank: 2
等 级:论坛游民
帖 子:348
专家分:84
注 册:2009-3-4
收藏
得分:0 
我也知道这个道理
但是能不能举一些事例来表述一下啊????
2009-12-21 20:19
IT浪子
Rank: 4
来 自:Nyist
等 级:贵宾
威 望:13
帖 子:402
专家分:20
注 册:2006-11-24
收藏
得分:0 
对于值类型,如果对象的值相等,则相等运算符 (==) 返回 true,否则返回 false。对于string 以外的引用类型,如果两个对象引用同一个对象,则 == 返回 true。对于 string 类型,== 比较字符串的值。
    ==操作比较的是两个变量的值是否相等。
    equals()方法比较的是两个对象的内容是否一致.equals也就是比较引用类型是否是对同一个对象的引用。
    对于值类型的比较,这里就不做描述了,下面讨论引用类型的比较:
首先我们看一段程序
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            string a = new string(new char[] { 'h', 'e', 'l', 'l', 'o' });
            string b = new string(new char[] { 'h', 'e', 'l', 'l', 'o' });
            Console.WriteLine(a == b);
            Console.WriteLine(a.Equals(b));

            object g = a;
            object h = b;
            Console.WriteLine(g == h);
            Console.WriteLine(g.Equals(h));

            Person p1 = new Person("jia");
            Person p2 = new Person("jia");
            Console.WriteLine(p1 == p2);
            Console.WriteLine(p1.Equals(p2));


            Person p3 = new Person("jia");
            Person p4 = p3;
            Console.WriteLine(p3 == p4);
            Console.WriteLine(p3.Equals(p4));

            Console.ReadLine();
        }
    }
}

你不能让所有人都满意,因为不是所有人都是人!
2009-12-21 20:49
zhoufeng1988
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:北京
等 级:贵宾
威 望:27
帖 子:1432
专家分:6329
注 册:2009-5-31
收藏
得分:0 
== 运算符是介于ReferenceEqual和Equal之间的。ReferenceEqual是比较引用类型,Equal是比较值类型。
这是我以前看高级编程上说的。记着哈。

我理解是这样的:
== 运算符可以用于引用类型比较,也可以用于值比较。所以高级编程上就说是介于那两个方法之间。
你说呢?

2009-12-21 23:40
xuexxp
Rank: 1
等 级:新手上路
帖 子:8
专家分:1
注 册:2008-11-4
收藏
得分:0 
学习了,新手
2009-12-22 14:43
K970053
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2009-12-23
收藏
得分:0 
这个要记下来,学习学习
2009-12-23 19:18
zhaoxili
Rank: 6Rank: 6
等 级:侠之大者
威 望:1
帖 子:327
专家分:479
注 册:2009-1-3
收藏
得分:0 
呵呵 楼主这个问题问的好  以前俺怎么没想过呢
2009-12-29 15:44
快速回复:equals 与 运算符==的区别
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.027319 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved