有時在 C# 中隱藏繼承的基類的屬性很有用,例如當您想要更改類型時。但是,一旦我隱藏了繼承的屬性,我不知道如何讀取或寫入隱藏屬性的值。這是一個使用動物和狗的小例子:public enum DogBreed { Corgi, Pug}public class Animal { public string Breed { get; set; }}public class Dog : Animal { public new DogBreed? Breed { get { // Not working since "Breed" now refers to Dog.Breed not Animal.Breed if (Breed == "Corgi") return DogBreed.Corgi; if (Breed == "Pug") return DogBreed.Pug; return null; } set { // Also Not working for same reason as above if (value == DogBreed.Corgi) Breed = "Corgi"; else if (value == DogBreed.Pug) Breed = "Pug"; else Breed = null; } }}如何訪問隱藏的屬性?(動物.品種)
1 回答

胡子哥哥
TA貢獻1825條經驗 獲得超6個贊
您正在尋找base關鍵字:
public class Dog : Animal {
public new DogBreed? Breed {
get {
// base.Breed refers to the hidden property
if (base.Breed == "Corgi") return DogBreed.Corgi;
if (base.Breed == "Pug") return DogBreed.Pug;
return null;
}
set {
if (value == DogBreed.Corgi) base.Breed = "Corgi";
else if (value == DogBreed.Pug) base.Breed = "Pug";
else base.Breed = null;
}
}
}
- 1 回答
- 0 關注
- 101 瀏覽
添加回答
舉報
0/150
提交
取消