2 つの列挙型と、列挙型をパラメーターとして受け取るメソッドがあります。それらは ABC および DEF と呼ばれ、メソッドは TestMethod(Enum myEnum) と呼ばれます。コードは以下のとおりです。
public enum ABC
{
Zero = 0,
One = 1,
Two = 2
};
public enum DEF
{
Three = 3,
Four = 4,
Five = 5
};
public int TestEnum(Enum myEnum)
{
int returnValue = ??? // How do I get the value out of this enum that can be either ABC or DEF?
bool randomTestBool = returnValue > 3;
return returnValue
}
public void CallerFunction()
{
int whatsMyInt = TestEnum(DEF.Four);
}
CallerFunction() から TestEnum() 関数を呼び出し、2 つのうちの 1 つ (理想的にはそれ以上) の列挙を渡します。関数内で比較できるように、整数形式で値を取得する方法を見つける必要があります。ここで、これが単一の列挙型である場合、つまり関数が TestEnum(DEF myDefEnum) の場合、これは簡単ですが、関数は複数の列挙型を処理する必要があります。以前の回答のおかげで、列挙型の型を取得するには、次の 2 つのいずれかを実行できることがわかりました。
1) bool isThisDef = myEnum は DEF です。しかし、列挙型ごとにシナリオを作成するよりも普遍的な方法があるかどうかに興味があります。おそらくこのようなもの
2) myEnumType = myEnum.GetType(); と入力します。しかし、今これをどうするかわかりません。どんな助けでも大歓迎です。=) ちなみに、文字列 testString = myEnum.toString(); エラーが発生します:\