C#相等比较用法总结
来源:互联网 发布:有20个usb端口的电脑 编辑:程序博客网 时间:2024/06/04 00:36
C#中提供了4种相等比较的方法,现将这4种相等比较的用法总结如下。
public class Student{ private string name; public Student(string name) { this.name = name; } public void ShowName() { Console.WriteLine(this.name ); }}static void Main(string[] args){ string daShuai="DaShuai"; string baWang="DaShuai"; int daShuaiAge = 25; int baWangAge = 25; Student DaShuai, BaWang; DaShuai = new Student(daShuai); BaWang = new Student(baWang); //1.实例Equals()方法 bool b1 = daShuai.Equals(baWang); bool b2 = daShuaiAge.Equals(baWangAge); bool b3 = DaShuai.Equals(BaWang); Console.WriteLine("1.Equals"); Console.WriteLine("daShuai.Equals(baWang):{0}",b1); Console.WriteLine("daShuaiAge.Equals(baWangAge):{0}", b2); Console.WriteLine("DaShuai.Equals(BaWang):{0}", b3); Console.WriteLine("~~~~~~~~~~>_<~~~~~~~~~~"); //2.= = bool b4 = daShuai == baWang; bool b5 = daShuaiAge == baWangAge; bool b6 = DaShuai == BaWang; Console.WriteLine("2.=="); Console.WriteLine("daShuai == baWang:{0}", b4); Console.WriteLine("daShuaiAge == baWangAge:{0}", b5); Console.WriteLine("DaShuai == BaWang:{0}", b6); Console.WriteLine("~~~~~~~~~~>_<~~~~~~~~~~"); //3.ReferenceEquals()方法 bool b7 = ReferenceEquals(daShuai, baWang); bool b8 = ReferenceEquals(daShuaiAge, baWangAge); bool b9 = ReferenceEquals(DaShuai, BaWang); Console.WriteLine("3.ReferenceEquals"); Console.WriteLine("ReferenceEquals(daShuai, baWang):{0}", b7); Console.WriteLine("ReferenceEquals(daShuaiAge, baWangAge):{0}", b8); Console.WriteLine("ReferenceEquals(DaShuai, BaWang):{0}", b9); Console.WriteLine("~~~~~~~~~~>_<~~~~~~~~~~"); //4.静态的Equals()方法 bool b10 = Equals(daShuai, baWang); bool b11 = Equals(daShuaiAge, baWangAge); bool b12 = Equals(DaShuai, BaWang); Console.WriteLine("4.静态的Equals"); Console.WriteLine("Equals(daShuai, baWang):{0}", b10); Console.WriteLine("Equals(daShuaiAge, baWangAge):{0}", b11); Console.WriteLine("Equals(DaShuai, BaWang):{0}", b12);}
运行程序,结果如下:
结果分析:
实例中分别使用Equals()方法, = =运算符,ReferenceEquals()方法,静态的Equals()方法对字符串,整型数据,引用类型数据进行相等比较操作。
1.实例Equals()方法
对于字符串:
String.Equals 方法 (String),确定此实例是否与另一个指定的 String 对象具有相同的值。
很显然,按值比较,daShuai.Equals(baWang)为true,因为字符串daShuai及baWang均为"DaShuai"。
对于整型数据:
Int32.Equals 方法 (Int32)
返回一个值,该值指示此实例是否与指定的 Int32值相等。
很显然,按值比较,daShuaiAge.Equals(baWangAge)为true,因为字符串daShuaiAge及baWangAge均为25。
对于Object:
Object.Equals 方法 (Object)
确定指定的对象是否等于当前对象。
很显然,按引用比较,DaShuai.Equals(BaWang)为false,因为DaShuai及BaWang引用不可能相同。
这里,String.Equals 方法 (String),Int32.Equals 方法 (Int32)重写 Object.Equals(Object) 方法实现值相等性。而Object.Equals 方法 (Object)对引用进行对比。
2.= =
对于字符串:
比较字符串内容,所以daShuai == baWang为true。
对于整型数据:
比较值,所以daShuaiAge == baWangAge为true。
对于Object:
引用比较,很可能不相等,所以DaShuai == BaWang为false。
3.ReferenceEquals()方法
Object.ReferenceEquals 方法
确定指定的 Object实例是否是相同的实例。
ReferenceEquals(daShuai, baWang)值为true,因为两者指向同一块内存地址空间。
ReferenceEquals(daShuaiAge, baWangAge)值为false,因为daShuaiAge,baWangAge在转换成Object时。会进行装箱操作,那么两者会得到不同的引用。
ReferenceEquals(DaShuai, BaWang)很显然为false。
4.静态的Equals()方法
Object.Equals 方法 (Object, Object)
确定指定的对象实例是否被视为相等。
作用与“= =”相同,所以比较结果与“= =”一致。
总结至此,88.
- C#相等比较用法总结
- C# 基础:相等比较
- C#之相等比较
- C#相等性比较
- C#相等比较
- C#的相等性比较
- C#中的相等比较介绍
- c#比较两个字符串相等的方法。
- C#的对象相等比较问题
- C#中比较引用类型是否相等
- C#比较对象的相等性
- C# 比较字符串是否相等 0009
- C#中比较两个值型一维数组变量是否值相等
- C#中比较两个值型一维数组变量是否值相等
- 在C#中如何比较两个byte[]数组相等
- C#中比较两个值型一维数组变量是否值相等
- 在C#中如何比较两个byte[]数组相等
- C#高级编程--比较对象的相等性
- 敏捷 - 需求估算工具 - 故事点
- 排序算法之希尔排序
- Android 用Animation-list实现逐帧动画
- 取名字的艺术(草稿)
- 易语言零基础新手入门教程 第二课
- C#相等比较用法总结
- 想你的 夜
- 如何编程判别一个Revit族的主题对象是墙还是基于面?
- 函数返回 局部变量问题
- IntentService解析
- Ehlib 的 DBGridEh 控件导出到Excel的三种封装过程/函数
- [C# 基础知识系列]专题一:深入解析委托——C#中为什么要引入委托
- 减少文件特征码的一些方法与技巧
- 一种保护眼睛的好方法