Qui è la mia classe astratta accorciato:Come rendere protetta una proprietà E interna in C#?
abstract class Report {
protected internal abstract string[] Headers { get; protected set; }
}
Ecco una classe derivata:
class OnlineStatusReport : Report {
static string[] headers = new string[] {
"Time",
"Message"
}
protected internal override string[] Headers {
get { return headers; }
protected set { headers = value; }
}
internal OnlineStatusReport() {
Headers = headers;
}
}
L'idea è, voglio essere in grado di essere in grado di chiamare Report.Headers da qualsiasi parte del assembly, ma consente solo di essere impostato da classi derivate. Ho provato a creare intestazioni interne, ma la protezione non è più restrittiva che interna. C'è un modo per rendere le intestazioni interne e il suo set accessor protetto E interno?
Mi sento come se stessi abusando grossolanamente di modificatori di accesso, quindi qualsiasi aiuto di progettazione sarebbe molto apprezzato.
Il codice compila bene per me. – Noldorin
@Noldorin: interno protetto è protetto O interno. –
@ Mehrdad: Sì, lo sapevo. Qual e il punto? – Noldorin