我有枚举问题在接口/基类中的C#枚举?
我需要做的基类或接口(但空单)
class Base
{
public enum Test;
// ???
}
一个枚举和之后的某些父类使不同势枚举
class Parent1
{
public enum Test {A, B, C};
}
class Parent2
{
public enum Test {J, H, K};
}
和现在我有方法的下一个类,当我必须使用枚举
class Test<T>
{
public void Foo(Test enum)
{
int value = (int) enum;
// ...
}
}
有没有办法做到这样的事情?
如果不是我在每类中使用静态整数...
class Parent1
{
public static int A = 0;
public static int B = 5;
public static int C = 7;
}
class Parent2
{
public static int J = 1;
public static int H = 3;
public static int K = 6;
}
class Test<T>
{
public void Foo(int enum)
{
int value = enum;
// ...
}
}
I'T很糟糕的代码......在某些类我必须使用〜20个+变量
也许这是一个好主意,重新检查你的假设 - 你为什么需要这个?试着重新解释这个问题,以包括你实际尝试完成的事情,而不是专注于你接近问题的方式。 :) – Rytmis 2009-06-23 09:55:13
什么是你想用它,真的吗?具有相同枚举的不同实现似乎与枚举的目的是相反的...... – Guffa 2009-06-23 09:57:07
@Groo:不,它将值添加到枚举中,这是一个具有对象特定值的抽象枚举,但实现一个一致的界面,所以它的成员可以被传递。马克的回答是我见过的最好的答案。 – 2011-09-13 03:03:35