Jon Skeet ha sollevato questo problema una volta nei suoi video (sebbene non fornisse una risposta).nascondere la proprietà dalla classe derivata
Diciamo che abbiamo una classe denominata persona e la classe persona ha Nome proprietà
Poi abbiamo un'altra classe, Spy. Ovviamente una Spia è una Persona quindi deriverà dalla classe Persona.
public class Person
{
public string Name { get; set; }
}
public class Spy : Person
{
}
Non vogliamo che la gente sappia il nome della spia in modo vorremmo questo per dare un errore di compilazione:
static void ReportSpy(Spy spy) {
string name = spy.Name;
}
o uno:
static void ReportSpy(Spy spy)
{
Person spyAsPerson = spy;
string name = spyAsPerson.Name;
}
Come potremmo impedire che questo tipo di cose accada?
Possibile duplicato di [Come nascondere una proprietà pubblica della classe base nella classe derivata] (http://stackoverflow.com/questions/1443886/how-can-i-hide-a-base-class-public- proprietà-nella-classe derivata) –
Se una spia rifiuta di dare il proprio nome, porterebbe al sospetto che siano una spia, sarebbe meglio se la spia avesse dato un nome falso, come "John Doe". – user1620220
Rimuovi questo: _ vorremmo dare un errore di compilazione_. Altrimenti, la risposta accettata non risponde alla domanda. –