父类字段覆盖,该如何解决

父类字段覆盖

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:我是菜鸟
------解决思路----------------------
声明一个相同的Id,使用new 关键字  隐藏父类Id
------解决思路----------------------
引用:
Quote: 引用:

声明一个相同的Id,使用new 关键字  隐藏父类Id

这个我知道,问题是我如果用F_Id这个名字  如何覆盖呢?

在set  方法里 ,把父类的Id 重新赋值呗。类似:

base.Id = value;

------解决思路----------------------
只有相同名称才能叫做覆盖,你这个只能叫替换
你没法在子类里隐藏掉Id
所以如果你想让两个字段使用相同的功能可以这么写
public int F_Id;
public override int Id { get { return F_Id; } set { F_Id = value; } }

------解决思路----------------------
或者
int _id;
public int F_Id { get { return _id; } set { _id = value; } }
public override int Id { get { return _id; } set { _id = value; } }

------解决思路----------------------
不明白你所谓的覆盖到底是什么含义
是说子类里定义了FID,那么父类里的ID就不可用了吗?
还是说,子类里FID的值,和父类里ID的值永远相同?
------解决思路----------------------
代码4楼5楼已经给了
4楼就是简单的永远相同
5楼就是先定义个同名变量override掉,再让FID和它相同