无法覆盖基类的属性

时间:2019-06-07 09:55:09

标签: c# asp.net-mvc

我试图在一个类上创建一个新的类,并且我想重写基类中的属性以删除[Required]。但是,它没有覆盖,而是创建了一个具有相同名称的新属性。那么怎么了,以及如何解决。

namespace admin.models
{
    public class BaseClass
    {
        [Required]
        public string id { get; set; }
        [Required]
        public string name { get; set; }
    }

    public class NewClass : BaseClass
    {
        public new string name { get; set; }
    }
}

enter image description here

1 个答案:

答案 0 :(得分:1)

如果要使其可以覆盖,则需要将方法/属性标记为virtual。请查看this link了解更多信息。然后使用override为该属性提供新的实现。

namespace admin.models
{
    public class BaseClass
    {
        [Required]
        public string id { get; set; }
        [Required]
        public virtual string name { get; set; }
    }

    public class NewClass : BaseClass
    {
        public override string name { get; set; }
    }
}