Here is my shortened abstract class:
abstract class Report {
protected internal abstract string[] Headers { get; protected set; }
}
Here is a derived class:
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;
}
}
The idea is, I want to be able to call Report.Headers
from anywhere in the assembly, but only allow it to be set by derived classes. I tried making Headers
just internal, but protected does not count as more restrictive than internal. Is there a way to make Headers internal and its set accessor protected AND internal?
I feel like I'm grossly misusing access modifiers, so any design help would be greatly appreciate.
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…