假设我有两个枚举如下:
namespace A
{
public enum AE
{
AE_0,
AE_1
}
}
namespace B
{
public enum BE
{
BE_0,
BE_1
}
}
Run Code Online (Sandbox Code Playgroud)
我想使用这两个看起来像一个的枚举,这样,在一个函数中,我们可以同时使用 F(AE) 和 F(BE) 而无需定义两个函数。
据我所知,我们可以为两个不同的类创建一个接口,这样如果我们将接口指定为参数,则可以使用这两个类。
我可以对枚举做同样的事情吗?
谢谢。
编辑:我提出这个问题是因为我在命名空间 A 中已经有枚举 A。现在我想在命名空间 B 中添加枚举 B,而不接触命名空间 A 中的任何内容。但是,在命名空间 A 中,我已经有一个函数 F,其中枚举 A 为范围。现在我想在命名空间 B 中使用函数 F 和枚举 B。我收到错误,因为枚举 A 和枚举 B 无法相互转换。谢谢。
不,你不能,因为 aenum继承自System.Enum,仅此而已。
此外,尽管外观很明显,但将接口应用于枚举不会产生所需的结果,因为枚举成员是作为static值实现的,并且interface不能指定static值。
最后,如果您确实应该接受两种参数enum,请考虑它们是否应该是两个单独的enum参数,或者是enum带有[Flags]的单个参数。