在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
using System; namespace EqualsTest { class EqualsTest { static void Main(string[] args) { //值类型 int x = 1; int y = 1; Console.WriteLine(x == y);//True Console.WriteLine(x.Equals(y));//True //引用类型 A a = new A(); B b = new B(); //Console.WriteLine(a==b);//报错 Console.WriteLine(a.Equals(b));//False //字符串(最像值类型的引用类型) string m = "1"; string n = "1"; Console.WriteLine(m==n);//True Console.WriteLine(m.Equals(n));//True //结构体(最像引用类型的值类型) T t = new T(); V v = new V(); //Console.WriteLine(t == v);//报错 Console.WriteLine(t.Equals(v));//True Console.Read(); } } class A { public int X = 1; } class B { public int X = 1; } struct T { int X; } struct V { int X; } } 总结: ①两个“相同”的对象进行比较,不管是equals()还是==,值类型都返回True,引用类型都返回False。 ②上面的①并不完全正确,因为有两个特例:结构体(最像引用类型的值类型);字符串(最像值类型的引用类型)。 ③引用类型(除去字符串),以及结构体,根本不能用==去对比,编译就会报错。
|
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论