问在C#中Equals与==的区别?

_西瓜皮_ 2006-10-08 09:44:25
如题.
...全文
6515 30 打赏 收藏 转发到动态 举报
写回复
用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)

110,539

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧