关于判断C#的两个string是否相等的问题?

2025-03-24 01:28:12
推荐回答(2个)
回答1:

"=="对于值类型来说是值比较,string是被微软处理过,所以微软把string当成值类型来看,
所以第一个为true

第三个也好解释,就是当你把a1和a2进行了Object装箱,
这个时候的b1和b2是引用类型使用"=="比较的是内存地址
两个object当然不会是同一个内存地址就的False

回答2:

a1,a2 是 String 变量 ,C# 重载了运算符 "==" 和方法Equals ,系统解析的时候会直接比较String 的内容。

b1 和 b2 系统会认为是 Object ,虽然实际的类型是String,但系统仍会按Object 处理

“==” 判定的是 是否指向同一个Object 的实例。
“Equals” 判定的是两个Object 是否是同一种类型。