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

Sai*_*udo 10 c# data-annotations

是否可以从继承的属性中删除属性?我认为通过使用关键字,我可以这样做......

 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; }
 }
Run Code Online (Sandbox Code Playgroud)

......但这根本不起作用.这让我感到惊讶,因为的特别是隐藏继承的成员.

Hen*_*man 8

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

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

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