110,536
社区成员
发帖
与我相关
我的任务
分享
class Entire
{
public string Name
{
get {return _name;}
set { _name =value ;}
}private string _name = "";
public List<Part> Parts
{
get { return _Parts; }
set { _Parts = value; }
}private List<Part> _Parts = null;
public override int GetHashCode()
{
//这个HashCode应该怎么写? }
public override bool Equals(object obj)
{
if ( ( obj as Entire ) == null)
return false;
return this.GetHashCode== obj.GetHashCode();
}
}
class Car
{
public string carname = "";
public string cartype = "";
//重写Equals方法
public override bool Equals(object obj)
{
//判断this不能为null
if (obj == null)
return false;
//类型不样 也是不能相等的
if (this.GetType() != obj.GetType())
{
return false;
}
//前面已经判断这个对象是相等的 所以他们不会编译报错的
Car car = (Car)obj;
//对其引用类型字段比较
if (!Object.Equals(this, car))
{
return false;
}
return true;
//return base.Equals(obj);
}
}
static void Main(string[] args)
{
Car car1 = new Car();
car1.carname = "a";
car1.cartype = "b";
Car car2 = new Car();
car2.carname = "c";
car2.cartype = "d";
bool isequal = car1.Equals(car2);
isequal = object.Equals(car1, car2);
}