http://www.sufeinet.com/plugin.php?id=keke_group

苏飞论坛

 找回密码
 马上注册

QQ登录

只需一步,快速开始

分布式系统框架(V2.0) 轻松承载百亿数据,千万流量!讨论专区 - 源码下载 - 官方教程

HttpHelper爬虫框架(V2.7-含.netcore) HttpHelper官方出品,爬虫框架讨论区 - 源码下载 - 在线测试和代码生成

HttpHelper爬虫类(V2.0) 开源的爬虫类,支持多种模式和属性 源码 - 代码生成器 - 讨论区 - 教程- 例子

查看: 3802|回复: 4

[C#语言基础] C#中==与equal方法

[复制链接]
发表于 2013-1-21 14:44:26 | 显示全部楼层 |阅读模式
                                    equal与==的区别
对于值类型,如果对象的值相等,则相等运算符 (==) 返回 true,否则返回 false。
对于string 以外的引用类型,如果两个对象引用同一个对象,则 == 返回 true。
对于 string 类型,== 比较字符串的值。==操作比较的是两个变量的值是否相等。
equals()方法比较的是两个对象的内容是否一致.
==也就是比较引用类型是否是对同一个对象的引用。例子:

[code=csharp]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();
        }
    }
}[/code]
  1. 输出
  2. true,true,false,true,false,false,true,true。
复制代码
[code=csharp]IPAddress ip1 = IPAddress.Parse("192.168.0.1");
IPAddress ip2 = IPAddress.Parse("192.168.0.1");
Console.WriteLine("ip1 == ip2: " + (ip1 == ip2).ToString());
Console.WriteLine("ip1.Equals(ip2): " + ip1.Equals(ip2).ToString());

输出:
ip1 == ip2: False
ip1.Equals(ip2): True [/code]

equals:比较字符串的内容是否相同,字符串为null时不能调用该方法进行比较
==:父类object中默认是比较对象的地址是否相同,在string中被重写,重新实现为比较字符串的内容是否相同,若字符串为null,也可使用==比较        

对于值类型,如果对象的值相等,则相等运算符 (==) 返回 true,否则返回 false。对于string 以外的引用类型,如果两个对象引用同一个对象,则 == 返回 true。对于 string 类型,== 比较字符串的值。
==操作比较的是两个变量的值是否相等。
equals()方法比较的是两个对象的内容是否一致.==也就是比较引用类型是否是对同一个对象的引用。


1. 开通SVIP会员,免费下载本站所有源码,不限次数据,不限时间
2. 加官方QQ群,加官方微信群获取更多资源和帮助
3. 找站长苏飞做网站、商城、CRM、小程序、App、爬虫相关、项目外包等点这里
发表于 2013-1-21 16:20:04 | 显示全部楼层
不错,支持一下。
发表于 2013-1-21 19:46:07 | 显示全部楼层
已阅,顶一下
发表于 2013-1-22 08:47:17 | 显示全部楼层
我一直使用 = 号. 后来听 同事说  equals 使用的资源较小 耗时少.
后来又在网上看  = 号 比 equals 好
我现在已经处于迷茫期   = =#
发表于 2013-3-26 11:57:41 | 显示全部楼层
幻雪丶逆时光 发表于 2013-1-22 08:47
我一直使用 = 号. 后来听 同事说  equals 使用的资源较小 耗时少.
后来又在网上看  = 号 比 equals 好
我 ...

那哪个好?
您需要登录后才可以回帖 登录 | 马上注册

本版积分规则

QQ|手机版|小黑屋|手机版|联系我们|关于我们|广告合作|苏飞论坛 ( 豫ICP备18043678号-2)

GMT+8, 2024-5-17 19:32

© 2014-2021

快速回复 返回顶部 返回列表