有没有办法从继承的属性中删除属性?

时间:2010-07-29 21:30:51

标签: c# data-annotations

是否可以从继承的属性中删除属性?我认为通过使用 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 专门用于隐藏继承的成员。

1 个答案:

答案 0 :(得分:8)

您的Employee类现在有2个FirstName属性,其中一个仍然是[必需] ...

直接回答:不,就我所知,你无法删除属性。这将违反替代原则。当Employee IS-A Person时,Person.FirstName的属性适用。

并且:new关键字用于禁止'X隐藏基类成员..'警告。它对代码的语义没有任何影响。