c#

位置:IT落伍者 >> c# >> 浏览文章

对于C#比较运算符==的一点想法


发布日期:2020年04月07日
 
对于C#比较运算符==的一点想法

==运算符用于比较两个操作数是否相对对于基本数据类型就不用多说了没有太大问题

对于引用数据类型如类对象string可能就有一点疑惑

string s=test;

string s=py(s

ConsoleWriteLine(s==s

ConsoleWriteLine((object)s==(object)s

输出结果是

true

false

稍微修改一下

string s=test;

string s=s;

或string s=test;

则输出结果是

true

true

可能对于string类型常量是保存在堆栈中的然后string类型对象就引用同一个对象

而用py()方法会在堆栈中产生一个新的string对象

对于==操作符

如果两个基本数据类型的操作数它们的数值相等它们就被认为是相等的

如果两个object类型的表达式都指向相同的对象或者都是空它们被认为是相等的

如果字符串实例有相同的长度并且在每个字符的位置都相同或者都为空它们被认为是相等的

以上条是在某本书上看到的

上一篇:在C#中跨线程访问Winform控件

下一篇:C#中datatabel导出excel(三种方法)