Иногда в 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;
}
}
}
Как получить доступ к скрытому свойству? (Animal.Breed)