一,值类型中的比较,对于值类型,如果对象的值相等,则相等运算符 (==) 返回 true,否则返回 false。

            int ai = ;
int bi = ;
bool bi1 = ai.Equals(bi); //true
bool bi2 = ai == bi; //true

二,字符串中比较,

1,字符串中Equals和==的比较的区别,Equals是比较内容是否一样,==是比较内容存在的地址的

2,对于string 以外的引用类型,如果两个对象引用同一个对象,则 == 返回 true。对于 string 类型,== 比较字符串的值。

            //string是String的别名而已,string是c#中的类,String是Framework的类,C# string 映射为 Framework的 String。
//如果用string,编译器会把它编译成String,所以如果直接用String就可以让编译器少做一点点工作。
//如果使用C#,建议使用string,比较符合规范
String a = new String(new char[] { 'h', 'e', 'l', 'l', 'o' });
String b = new String(new char[] { 'h', 'e', 'l', 'l', 'o' });
bool c = a == b; //true
bool d = a.Equals(b); //true string str1 = "Hellow World";
string str2 = "Hellow World";
bool b1 = str1.Equals(str2); //true
bool b2 = str1 == str2; //true StringBuilder sb = new StringBuilder();
sb.Append("Hellow").Append(" World");
string str5 = sb.ToString();
bool b5 = str1.Equals(str5); //true
bool b6 = str1 == str5; //true object str3 = a;
object str4 = b;
bool b3 = str3.Equals(str4); //true 他们的内容是一样的
bool b4 = str3 == str4; //false 是比较内容存在的地址的不一样

三,什么是驻留池?

1, 什么是驻留池?CLR默默地维护了一个叫做驻留池(Intern Pool)的表。这个表记录了所有在代码中使用字面量声明的字符串实例的引用。
2,这说明使用字面量声明的字符串会进入驻留池,而其他方式声明的字符串并不会进入,也就不会自动享受到CLR防止字符串冗余的机制的好处了。

            string str1 = "Hellow World";
string str2 = "Hellow World";
bool b1 = str1.Equals(str2); //true
bool b2 = str1 == str2; //true

以上这两个同时返回true,也是存在驻留池的概念,因为在驻留池表中有这个字符,所以系统不会性开辟一块内存空间来储存,str1和str2都指向与同一块地址

C#中的==和Equals的区别的更多相关文章

  1. java中的==和equals的区别

    关于JAVA中的==和equals函数的区别 今天在研读Thinking in java 时注意到==和equals的区别,于是就通过查看JDK_API才读懂了他们的区别,于是将心得分享一下,望批评指 ...

  2. java中hashcode和equals的区别和联系

    HashSet和HashMap一直都是JDK中最常用的两个类,HashSet要求不能存储相同的对象,HashMap要求不能存储相同的键. 那么Java运行时环境是如何判断HashSet中相同对象.Ha ...

  3. java中等于和equals的区别

    面试的时候没答上,很受打击,特写在这里. ==是判断两个变量或实例是不是指向同一个内存空间equals是判断两个变量或实例所指向的内存空间的值是不是相同 除了String和封装器,equals()和“ ...

  4. Scala中==,eq与equals的区别

    根据官方API的定义: final def ==(arg0: Any): Boolean The expression x == that is equivalent to if (x eq null ...

  5. Java中的==和equals的区别详解

    1.基础知识 (1)String x = "hello"; (2)String x = new String ("hello"); 第1种方式的工作机制是,首先 ...

  6. JAVA中的==和equals()的区别

    一.先来说说Java的基本数据类型和引用类型 八大基本数据类型:Byte,short,int,long,double,folat,boolean,char,其中占一个字节的是byte,short和ch ...

  7. C#中ReferenceEquals和Equals的区别

    ReferenceEquals()判断两个字符串是否指向相同的内存地址:(判断引用) Equals,先判断两个字符串有相同的内存位置,是则两个字符串相等:否则逐字符比较两个字符串,判断是否相等(先判断 ...

  8. 浅谈==和equals的区别

    java中的==和equals的区别? 看上面的代码,输出的结果是: true false true true 1.为什么会有上面的区别呢?==和equals比较的到底是什么呢? 搞清楚两者的区别其实 ...

  9. JAVA中“==”与equals()方法区别

    equals 方法是 java.lang.Object 类的方法 有两种用法说明: ()对于字符串变量来说,使用"=="和"equals()"方法比较字符串时, ...

随机推荐

  1. 【宝藏】题解(五校联考3day1)

    分析 如果打爆搜的话可以拿60分. 首先知道期望是可以累加的,即i通过j去到k的期望,等于i去到j的期望加j去到k的期望. 所以令d[i]表示i的出度,F[i]表示从i到i的父亲的期望,G[i]表示i ...

  2. es6的...用法

    ...将一个数组转为用符号分隔的参数序列 1.console.log(1, ...[2, 3, 4], 5) // 1 2 3 4 5 2. var args = [0, 1, 2]; f.apply ...

  3. 微信小程序细节部分

    微信小程序和HTML区别: 1.开发工具不同,H5的开发工具+浏览器Device Mode预览,小程序的开发基于自己的开发者工具 2.开发语言不同,小程序自己开发了一套WXML标签语言和WXSS样式语 ...

  4. js 文件下载 兼容ie

    前置条件:后台接口返回二进制流文件 一.设置前端请求的的 responseType: 'blob' 二.接收请求数据并调用下载 var content = res.data // 接口返回的二进制流v ...

  5. nginx做反向代理时出现302错误(转载)

    现象:nginx在使用非80端口做反向代理时,浏览器访问发现返回302错误 详细现象如下: 浏览器请求登录页: 输入账号密码点击登录: 很明显登录后跳转的地址少了端口号. 原因:proxy.conf文 ...

  6. [CSP-S模拟测试]:寿司(暴力)

    题目描述 小$c$是一名$oier$.最近,他发现他的数据结构好像学傻了.因为他在刷题时碰到了一道傻逼数据结构题,强行使用了平衡树来解决,卡着时间$AC$.为此,他被狠狠地嘲讽了一番.于是,小$c$找 ...

  7. 后端PHP框架laravel学习踩的各种坑

    安装完laravel的ventor目录后出现“Whoops, looks like something went wrong.”这样的错误信息 打开config/app.php,打开debug为tru ...

  8. 接上SQL SERVER的锁机制(一)——概述(锁的种类与范围)

    二.完整的锁兼容性矩阵(见下图) 对上图的是代码说明:见下图. 三.下表列出了数据库引擎可以锁定的资源. 名称 资源 缩写 编码 呈现锁定时,描述该资源的方式 说明 数据行 RID RID 9 文件编 ...

  9. 史上最详细的XGBoost实战

    史上最详细的XGBoost实战 0. 环境介绍 Python 版 本: 3.6.2 操作系统 : Windows 集成开发环境: PyCharm 1. 安装Python环境 安装Python 首先,我 ...

  10. p5349 幂

    分析 https://www.cnblogs.com/cjyyb/p/10822490.html 代码 #include<bits/stdc++.h> using namespace st ...