社区
C#
帖子详情
问在C#中Equals与==的区别?
_西瓜皮_
2006-10-08 09:44:25
如题.
...全文
6515
30
打赏
收藏
问在C#中Equals与==的区别?
如题.
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
30 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Jacky_Sunx
2010-06-02
打赏
举报
回复
mark
Richard_Hong
2006-10-10
打赏
举报
回复
关注
tomtom123
2006-10-09
打赏
举报
回复
MARK
jiechifeiniao
2006-10-09
打赏
举报
回复
如果 是== 来 判断两个引用类型的值
那么,系统会怎么处理呢
亮灯了
2006-10-09
打赏
举报
回复
不错,学习中。
yixianggao
2006-10-09
打赏
举报
回复
自己查查 MSDN 就都明白了!
不会自学的人居然还敢冒充程序员?!
wangjiafeng2008
2006-10-09
打赏
举报
回复
string str1 = "abcd";
string str2 = str1;
str2 = "efgh";// str1 is still "abcd" here
why is still "abcd" over there
_______
原因是因为
在c#中string 虽然是引用类型
但在所有的字符串操作 都会先开辟一段缓存,然后把操作的结果写入缓存,最后把引用添加到这段缓存上,所以str2指向的是新的内存空间
哥们你验证么?????
DreamerX2004
2006-10-09
打赏
举报
回复
区别于Java,C#中两者相同。
Fanny
2006-10-09
打赏
举报
回复
jiechifeiniao(飛鳥) ( ) 信誉:100 Blog
如果 是== 来 判断两个引用类型的值
那么,系统会怎么处理呢
========================
如果用==来判断两个对象一样只比较两个对象的值,但这种比较没有Equals比较的更准确
所以推荐用Equals。
BreakCode
2006-10-09
打赏
举报
回复
你可以在即使窗口看一下对该对象的分析..... .....
cancerser
2006-10-08
打赏
举报
回复
string str1 = "abcd";
string str2 = str1;
str2 = "efgh";// str1 is still "abcd" here
why is still "abcd" over there
_______
原因是因为
在c#中string 虽然是引用类型
但在所有的字符串操作 都会先开辟一段缓存,然后把操作的结果写入缓存,最后把引用添加到这段缓存上,所以str2指向的是新的内存空间
ilove8
2006-10-08
打赏
举报
回复
string str1 = "abcd";
string str2 = str1;
str2 = "efgh";// str1 is still "abcd" here
why is still "abcd" over there
_西瓜皮_
2006-10-08
打赏
举报
回复
谢了各位大人.
junsir
2006-10-08
打赏
举报
回复
不懂 帮顶 顺便接分
lingbo_wx
2006-10-08
打赏
举报
回复
up
tyh76er
2006-10-08
打赏
举报
回复
== 运算符 C# 运算符
对于预定义的值类型,如果操作数的值相等,则相等运算符 (==) 返回真,否则,返回假。对于除 string 类型以外的引用类型,如果两个操作数引用相同的对象,则 == 返回真。对于 string 类型,== 将比较字符串的值。
-------------------------------
Object.Equals 方法 [C#]
确定两个 Object 实例是否相等。
---------------------------------------
fancystyle
2006-10-08
打赏
举报
回复
帮顶
真相重于对错
2006-10-08
打赏
举报
回复
==
对于预定义的值类型,如果操作数的值相等,则相等运算符 (==) 返回真,否则,返回假。对于除 string 类型以外的引用类型,如果两个操作数引用相同的对象,则 == 返回真。对于 string 类型,== 将比较字符串的值。
确定两个 Object 实例是否相等。
Equals
确定两个 Object 实例是否相等。
另外,主要看类如何override 这个函数和如何重载运算符
pol000
2006-10-08
打赏
举报
回复
帮楼主顶~
cancerser
2006-10-08
打赏
举报
回复
楼长一定问的是字符串比较
在c#中 两者的作用是完全一样的这点与java不同
因为一使用== 就会调用Equals,
(要是直接用Equals 不就少了个调用,快点是点)
在字符串比较中 尽量使用Equals因为其平均效率要高于其他的比较方法 ,特别高于compare
因为Equals会先比较散列码(不用明白是啥,只有内置对象才有),其速度是compare100倍以上
不包含内置对象的比较也要稍微快点
加载更多回复(10)
C#
中
的 == 和
equals
()
区别
浅析
主要介绍了
C#
中
的 == 和
equals
()的
区别
,对不同点进行了阐述,感兴趣的小伙伴们可以参考一下
C#
基础:
Equals
()与运算符==的
区别
分析
本篇文章是对
c#
中
的
Equals
()与运算符==的
区别
进行了详细的分析介绍,需要的朋友参考下
C#
值类型、引用类型
中
的
Equals
和==的
区别
浅析
主要介绍了
C#
值类型、引用类型
中
的
Equals
和==的
区别
浅析,本文分别对
C#
值类型和引用类型
中
的
Equals
和==做了讲解和给出了实例,需要的朋友可以参考下
==和
equals
的比较
接触
c#
一年了,一直没搞懂“==”和
equals
之间的具体
区别
,今天特意研究了一番,终于豁然开朗了,高兴
中
!给大家分享
浅析
C#
中
的等号“==”和
Equals
1.“==”和
Equals
两个真的有关联吗? 对于“==”和
Equals
大多数网友都是这样总结的: “==” 是比较两个变量的值相等。
Equals
是比较两个变量是否指向同一个对象。 public class Person { public Person(string name) { this.Name = name; } public string Name { get; set; } } static void Main(string[] args) { string a = new string(new
C#
110,539
社区成员
642,577
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章