据我所知,Equals()确定指定的对象是否等于当前对象.
所以如果我有这个Player类:
public class Player
{
int score;
public object Clone()
{
return this.MemberwiseClone();
}
public void SetScore(int i)
{
this.score = i;
}
public int GetScore()
{
return this.score;
}
}
Run Code Online (Sandbox Code Playgroud)
Ant然后我像这样实例化两个玩家:
Player p1 = new Player();
p1.SetScore(7);
Player p2 = (Player)p1.Clone();
Run Code Online (Sandbox Code Playgroud)
为什么Equals()在使用时会返回false:
Console.WriteLine(p1.Equals(p2)); // prints "False" to console
Run Code Online (Sandbox Code Playgroud)
他们怎么不平等?
Jon*_*art 10
因为除非您重写Equals函数,否则它会比较引用以查看它们是否是同一个对象.
请参阅实现等于方法.
在某些情况下,您可能会获得一些参考,并希望查看它是否是某个对象.说:
Player myFavorite = new Player();
//do stuff...
Player fastest = GetFastestPlayer();
if (myFavorite == fastest)
// I'm happy
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
118 次 |
| 最近记录: |