两个类是否相等

例如你有一个类如下:

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方法其实会是一个比较复杂的方法。使用时需要慎重。。特别是你的类里面本身还有很多复杂对象的时候。需要考虑完整。否则你的比较结果会是不准确的

posted on 2011-11-24 08:58  恒波  阅读(617)  评论(0编辑  收藏  举报

导航