equals方法的重写
向一个没有重复对象的集合中添加元素时,集合中存放的往往是对象,判断方法list<T>.Contains(T),判断是否存在已有对象,这是需要重写equals方法;例如在一个类中,代码:
View Code
public class AccountPermission { #region 构造 public AccountPermission() { } public AccountPermission(int permissionId, string permissionName) { this.f_permissionid = permissionId; this.f_permissionname = permissionName; } #endregion #region 属性 private int f_permissionid; private string f_permissionname; private string f_fullname; private string f_description; private bool f_enabled; private DateTime f_createtime; /// <summary> /// 权限Id /// </summary> /// <remark></remark> public int Id { set { this.f_permissionid = value; } get { return this.f_permissionid; } } /// <summary> /// 权限名称 /// </summary> /// <remark></remark> public string Name { set { this.f_permissionname = value; } get { return this.f_permissionname; } } /// <summary> /// 权限中文名--全名 /// </summary> /// <remark></remark> public string FullName { set { this.f_fullname = value; } get { return this.f_fullname; } } /// <summary> /// 描述 /// </summary> /// <remark></remark> public string Description { set { this.f_description = value; } get { return this.f_description; } } /// <summary> /// 是否可用 /// </summary> /// <remark></remark> public bool Enabled { set { this.f_enabled = value; } get { return this.f_enabled; } } /// <summary> /// 创建时间 /// </summary> /// <remark></remark> public DateTime CreateTime { set { this.f_createtime = value; } get { return this.f_createtime; } } #endregion public override bool Equals(object obj) { if (obj != null && obj is AccountPermission) { AccountPermission permission = (AccountPermission)obj; if (this.Id == permission.Id) { return true; } } return false; }