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)
......但这根本不起作用.这让我感到惊讶,因为新的特别是隐藏继承的成员.
您的Employee类现在有2个FirstName属性,其中一个仍然是[必需] ...
直接回答:不,就我所知,你不能删除属性.这将违反替代原则.当Employee IS-A Person时,Person.FirstName的属性适用.
并且:new此处的关键字仅用于抑制'X隐藏基类成员..'警告.它对代码的语义没有任何影响.