父类字段覆盖

编程有钱人了 2015-09-09 11:16:22

public abstract class BaseEntity
{

public virtual int Id { get; set; }

public override bool Equals(object obj)
{
return Equals(obj as BaseEntity);
}

public virtual bool Equals(BaseEntity other)
{
if (other == null || !(other is BaseEntity))
{
return false;
}
return (this == (BaseEntity)other);
}

public override int GetHashCode()
{
return Id.GetHashCode();
}

public static bool operator ==(BaseEntity x, BaseEntity y)
{
if ((object)x == null && (object)y == null)
{
return true;
}

if ((object)x == null || (object)y == null)
{
return false;
}

return x.Id == y.Id;
}

public static bool operator !=(BaseEntity x, BaseEntity y)
{
return !(x == y);
}
}



public class Child:BaseEntity
{
public Int32 F_Id { get; set; }
public String Name{ get; set; }
}

我想用F_id覆盖掉父类的Id
这个要怎么玩?


PS:我是菜鸟
...全文
189 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
於黾 2015-09-09
  • 打赏
  • 举报
回复
代码4楼5楼已经给了 4楼就是简单的永远相同 5楼就是先定义个同名变量override掉,再让FID和它相同
编程有钱人了 2015-09-09
  • 打赏
  • 举报
回复
引用 6 楼 Z65443344 的回复:
不明白你所谓的覆盖到底是什么含义 是说子类里定义了FID,那么父类里的ID就不可用了吗? 还是说,子类里FID的值,和父类里ID的值永远相同?
如果我想表达子类里定义了FID,那么父类里的ID就不可用了,改如何写? 目前我只要子类里FID的值和父类里ID的值永远相同就可以.
编程有钱人了 2015-09-09
  • 打赏
  • 举报
回复
引用 6 楼 Z65443344 的回复:
不明白你所谓的覆盖到底是什么含义 是说子类里定义了FID,那么父类里的ID就不可用了吗? 还是说,子类里FID的值,和父类里ID的值永远相同?
和父类里ID的值永远相同 结贴
於黾 2015-09-09
  • 打赏
  • 举报
回复
不明白你所谓的覆盖到底是什么含义 是说子类里定义了FID,那么父类里的ID就不可用了吗? 还是说,子类里FID的值,和父类里ID的值永远相同?
Poopaye 2015-09-09
  • 打赏
  • 举报
回复
或者
int _id;
public int F_Id { get { return _id; } set { _id = value; } }
public override int Id { get { return _id; } set { _id = value; } }
Poopaye 2015-09-09
  • 打赏
  • 举报
回复
只有相同名称才能叫做覆盖,你这个只能叫替换 你没法在子类里隐藏掉Id 所以如果你想让两个字段使用相同的功能可以这么写
public int F_Id;
public override int Id { get { return F_Id; } set { F_Id = value; } }
exception92 2015-09-09
  • 打赏
  • 举报
回复
引用 2 楼 wangjun8868 的回复:
[quote=引用 1 楼 duanzi_peng 的回复:] 声明一个相同的Id,使用new 关键字 隐藏父类Id
这个我知道,问题是我如果用F_Id这个名字 如何覆盖呢?[/quote] 在set 方法里 ,把父类的Id 重新赋值呗。类似:
base.Id = value;
编程有钱人了 2015-09-09
  • 打赏
  • 举报
回复
引用 1 楼 duanzi_peng 的回复:
声明一个相同的Id,使用new 关键字 隐藏父类Id
这个我知道,问题是我如果用F_Id这个名字 如何覆盖呢?
exception92 2015-09-09
  • 打赏
  • 举报
回复
声明一个相同的Id,使用new 关键字 隐藏父类Id

110,539

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧