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/

10-12 22:04