C#中“==”和equals()的区别

如以下代码:

1
2
3
4
5
6
7
8
9
int age = 25;
 
short newAge = 25;
 
Console.WriteLine(age == newAge);  //true
 
Console.WriteLine(newAge.Equals(age)); //false
 
Console.ReadLine();

age==newAge返回true,newAge.Equals(age)却返回false,为什么呢?

用==时,编译器位把short隐式转换为int后,比较两者的值。

而用equals()时,newAge.Equals(age),因为newAge是short类型的,equals()方法会是short.equals(short),但int无法隐式转换为short,所以返回false,但用age.equals(newage)就是正确的

上一篇:[redis] 分布式 Redis 的 CRUD 实现


下一篇:上产使用MQ的三点注意