10


0

継承されたプロパティから属性を削除する方法はありますか?

継承されたプロパティから属性を削除することは可能ですか? * 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; }
 }
  1. しかし、これはまったく機能しません。 * new *は 具体的には、継承されたメンバーを非表示にします。

1 Answer


8


Employeeクラスには2つのFirstNameプロパティがあり、そのうちの1つはまだです [Required] …​

直接的な答え:いいえ、私の知る限り属性を削除することはできません。 それは代替原則に違反するでしょう。 従業員がIS-A Personである場合、Person.FirstNameのプロパティが適用されます。

そして:ここでのʻonly`キーワードは、_Xが 'Xが基本クラスメンバーを隠している’という警告を抑制するのに役立ちます。 コードのセマンティクスにはまったく影響しません。