是否可以从继承的属性中删除属性?我认为通过使用 new 关键字,我可以这样做......
public class Person
{
[Required]
public string FirstName { get; set; }
[Required]
public string LastName { get; set; }
}
public class Employee : Person
{
[Required]
public string JobTitle { get; set; }
public new string FirstName { get; set; }
}
......但这根本不起作用。这让我感到惊讶,因为 new 专门用于隐藏继承的成员。
答案 0 :(得分:8)
您的Employee类现在有2个FirstName属性,其中一个仍然是[必需] ...
直接回答:不,就我所知,你无法删除属性。这将违反替代原则。当Employee IS-A Person时,Person.FirstName的属性适用。
并且:new
关键字仅用于禁止'X隐藏基类成员..'警告。它对代码的语义没有任何影响。