C# 中 ==和equals的区别

不想说太多,直接上代码,这两个就没什么联系,有自己独立的规则。比较其实不利于记忆。

下面是测试代码

private static void Main(string[] args) { Console.WriteLine("--equals和==的区别--"); Console.WriteLine("1、对于值类型的数据"); Console.WriteLine(); Console.WriteLine("1.1、类型和数学上的值都相同的数"); Console.WriteLine($"(int)1 == (int)1 的结果是:{(int)1 == (int)1}"); Console.WriteLine($"(int)1).Equals((int)1) 的结果是:{((int)1).Equals((int)1)}"); Console.WriteLine(); Console.WriteLine("1.2、对于类型不同但是数学上值相同的数"); Console.WriteLine($"(int)1 == (long)1 的结果是:{(int)1 == (long)1}"); Console.WriteLine($"((int)1).Equals((long)1 的结果是:{((int)1).Equals((long)1)}"); Console.WriteLine(); Console.WriteLine("2、对于引用类型的数据"); Console.WriteLine(); Console.WriteLine("2.1、在1.1的基础上转化为object再比较"); Console.WriteLine($"(object)(int)1 == (object)(int)1 的结果是:{(object)(int)1 == (object)(int)1}"); Console.WriteLine($"((object)(int)1).Equals((object)(int)1 的结果是:{((object)(int)1).Equals((object)(int)1)}"); Console.WriteLine(); Console.WriteLine("2.2、在1.2的基础上转化为object再比较"); Console.WriteLine($"(object)(int)1 == (object)(long)1 的结果是:{(object)(int)1 == (object)(long)1}"); Console.WriteLine($"((object)(int)1).Equals((object)(long)1 的结果是:{((object)(int)1).Equals((object)(long)1)}"); Console.WriteLine(); Console.ReadKey(); }

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wssfpj.html