我有枚舉問題在接口/基類中的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