public abstract class ExeCommand
{
private static object commandHandler;
public static object CommandHandler
{
get { return commandHandler; }
set { commandHandler = value; }
}
}
class ServerCommand : ExeCommand
{
}
这就是它的基本内容。
我想允许
ExeCommand.CommandHandler = myCommandHandler
但不是
ServerCommand.CommandHandler = myCommandHandler
有什么办法可以强制执行吗?
最佳答案
目前尚不清楚您要在这里实现什么。
如Cory所指出的,您可以通过声明相同的属性但隐藏设置器来防止ServerCommand.CommandHandler
可写,但是为什么呢?调用方始终可以仅使用ExeCommand.CommandHandler
来分配值。 ServerCommand共享其基类中的静态成员。
也许可以解释一下您为实现更好的设计所要采取的措施。
关于c# - 如何防止对派生类中的静态属性进行设置访问?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2240335/