Jon Skeet wychowany ten problem raz na jego filmy (choć nie dostarczyła z odpowiedzią).ukrywanie właściwość z klasy pochodnej
Powiedzmy, że mamy klasę o nazwie Person i klasy osoba ma właściwość Nazwa
Następnie mamy kolejną klasę Szpiega. Oczywiście Szpieg to Osoba, więc wywodzimy się z klasy Osoba.
public class Person
{
public string Name { get; set; }
}
public class Spy : Person
{
}
Nie chcemy, aby ludzie wiedzieli nazwę Szpiega tak, że chcemy to dać błąd kompilacji:
static void ReportSpy(Spy spy) {
string name = spy.Name;
}
lub albo:
static void ReportSpy(Spy spy)
{
Person spyAsPerson = spy;
string name = spyAsPerson.Name;
}
jak możemy zapobiegać tego rodzaju wydarzeniom?
Możliwy duplikat [Jak mogę ukryć własność publiczną klasy podstawowej w klasie pochodnej] (http://stackoverflow.com/questions/1443886/how-can-can-i-hide-a-base-class-public- klasa własnościowa) –
Jeśli szpieg odmówi podania swojego nazwiska, mogłoby to prowadzić do podejrzeń, że jest szpiegiem, byłoby lepiej, gdyby szpieg podał fałszywe nazwisko, takie jak "Jan Kowalski". – user1620220
Usuń to: _wymagamy tego, aby dać błąd kompilacji_. W przeciwnym razie zaakceptowana odpowiedź nie odpowiada na pytanie. –