2

我需要在几个类中定义枚举来表示每个类的可用操作。. 现在我想知道解决这个问题的最佳方法是什么?

1)创建单独的枚举

public enum Foo {Insert, Update, Delete , Select };
public enum Bar {Insert, Select };

enum2)或对所有这些都使用一般

public enum FooBar {Insert, Update, Delete , Select};

编辑:我想在类方法参数中使用这个枚举

public void MethodOne(Foo action){ ...}
4

2 回答 2

0

答案应该来自你的领域——无处不在的语言

但是,我认为如果你为每个类实现一个新的枚举,你会遇到麻烦,这种方法很容易出错,并且会让你的开发人员感到困惑。现在想象一下将来必须维护您的代码的可怜人......

如果您坚持使用枚举,我认为最好创建一个名为:的单个枚举Actions并在您的应用程序中一致地使用它

如果您想要更优雅的解决方案,我建议您考虑状态模式

于 2012-09-29T09:26:13.753 回答
0

您可以使用继承来定义您的枚举 - 至少在某种程度上。

试试这个:

public class Bar
{
    public static readonly int Insert = 1;
    public static readonly int Select = 2;
}

public class Foo : Bar
{
    public static readonly int Update = 3;
    public static readonly int Delete = 4;
}

您仍然可以使用 enumBar.InsertFoo.Selector之类的代码Foo.Delete

这有帮助吗?

于 2012-09-29T09:44:51.690 回答