Aquí está mi clase abstracta acortada:¿Cómo hacer una propiedad protegida E interna en C#?
abstract class Report {
protected internal abstract string[] Headers { get; protected set; }
}
Aquí es una clase derivada:
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;
}
}
La idea es que quieren ser capaces de poder llamar Report.Headers desde cualquier lugar del ensamblado, pero solo permite que sea configurado por clases derivadas. Intenté hacer que los encabezados fueran internos, pero protegidos no cuentan como más restrictivos que los internos. ¿Hay alguna manera de hacer que los Encabezados sean internos y que su acceso de acceso esté protegido Y sea interno?
Siento que estoy haciendo un uso indebido de los modificadores de acceso, por lo que cualquier ayuda de diseño sería muy apreciada.
El código compila bien para mí. – Noldorin
@Noldorin: protegido interno está protegido O interno. –
@Mehrdad: Sí, lo sabía. ¿Cuál es el punto de? – Noldorin