两个类是否相等

it2022-05-09  32

例如你有一个类如下:

public class Class1  {  private int m;  private string n; public int M { set { m = value; } get { return m; } } public string N { set { n = value; } get { return n; } }  public override bool Equals(object obj)  { Class1 anotherClass = obj as Class1;  if (anotherClass != null) return  ( this.m == anotherClass.m && this.n.Equals(anotherClass.n));  else return false;  } public override int GetHashCode()  { return base.GetHashCode(); } public Class1() { } }

 如果你要比较两个类是否相等,需要在类里面override Equal方法,就如上面的例子那样。。 override Equal方法的同时需要override GetHashCode方法。 这样,你就可以比较这个类的两个对象是否相等了。 例如 Class1 class1 = new Class1(); class1.M = 1; class1.N = "a"; Class1 class2 = new Class1(); class2.M = 1; class2.N = "a"; bool isEqual = class1.Equals(class2); 这个时侯isEqual就会返回true 当然这是你的自定义类。如果你只是比较.net的类对象,那就是Equal方法就可以了。。 override Equal方法其实会是一个比较复杂的方法。使用时需要慎重。。特别是你的类里面本身还有很多复杂对象的时候。需要考虑完整。否则你的比较结果会是不准确的

转载于:https://www.cnblogs.com/hengbo/archive/2011/11/24/2261143.html

相关资源:数据结构—成绩单生成器

最新回复(0)