这是我缩短的抽象类:
abstract class Report {
protected internal abstract string[] Headers { get; protected set; }
}
这是一个派生类:
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;
}
}
这个想法是,我希望能够Report.Headers
从程序集中的任何地方调用,但只允许它由派生类设置。我试着Headers
只做内部的,但受保护的并不比内部更具限制性。有没有办法让 Headers 成为内部的,并且它的 set 访问器受保护和内部的?
我觉得我严重滥用了访问修饰符,所以任何设计帮助都将不胜感激。