我有兩個枚舉器和一個採用枚舉器的方法。它們被稱爲ABC和DEF,並且該方法被稱爲TestMethod(Enum myEnum)。代碼如下:確定枚舉類型
public enum ABC
{
Zero,
One,
Two
};
public enum DEF
{
Zero,
One,
Two
};
public void TestEnum(Enum myEnum)
{
...
}
函數TestEnum接受任何枚舉器。我如何測試兩個參數中的哪一個屬於?我可以盲目地開始用try/catch鑄造測試它,但是看起來醜陋。任何更乾淨的方法呢?預先感謝您的任何幫助。
耶穌喬恩,我甚至不能接受你的答案再過12分鐘。在我發佈之前,你是否讀過我的想法並寫出來?大聲笑。我會盡快給你一個複選標記,謝謝你的閃電般的快速反應,以及爲這樣一個愚蠢的小問題編寫小程序。< – Lukas
@Lukas你也可以讓你的方法成爲通用的。這就像這樣:'public void TestEnum(TEnum myEnum)其中TEnum:struct {/ *方法體在這裏* /}'。這避免了拳擊。例如,您可以使用'typeof(TEnum)'來獲得類型。與此問題是,C#語言目前不允許您將類型參數「TEnum」限制爲...枚舉。 –
@JeppeStigNielsen:我會添加該選項。 (我認爲方法簽名是固定的。)你可能也想看看我的Unconstrained Melody庫:) https://code.google.com/p/unconstrained-melody/ –