出现的情况是,人们希望某些选项可以公开获得,而其他选项只能分别在集会或类别内部或私人提供。
这样做最优雅的方式是什么?
以下是完美的,但是不可能:
public enum EActions
{
internal Shutdown,
Read,
Write,
Update
}
...
public void DoSomething(EActions action, int param2, int param3)
{
// act
}
...
public:
DoSomething(Read/Write/Update);
答案 0 :(得分:2)
您可以使用Extensible枚举并根据需要控制辅助功能。
答案 1 :(得分:1)
当您使用设计模式标记此问题时,我建议您使用抽象基类替换此枚举,并将项替换为派生类。然后在基类中为每个子类创建静态实例。
public abstract class EAction
{
public abstract void DoYourDeal();
internal static readonly ShutDownEAction Shutdown = new ShutDownEAction() ;
public static readonly ReadEAction Read = new ReadEAction() ;
//...
}
public class ReadEAction : EAction {...}
public class WriteEAction : EAction {...}
public class UpdateEAction : EAction {...}
internal class ShutDownEAction : EAction {...}
public void DoSomething(EAction action)
{
action.DoYourDeal();
}