2010-12-02 173 views
0

我有三個不同的枚舉,並且所有三個具有相同的標識符但不同的值。我想根據某些條件訪問特定的枚舉。返回枚舉值的泛型函數

例如:

Public Enum Type1 
    Font = 10 
    Color = 11 
End Enum 

Public Enum Type2 
    Font = 20 
    Color = 21 
End Enum 

Public Enum Type3 
    Font = 30 
    Color = 31 
End Enum 

並依據一定的條件,我需要訪問特定的枚舉。例如,

if(somecondition = 1) 
    return Type1.Font 
else if (somecondition = 2) 
    return Type2.Font 
else if (somecondition = 3) 
    return Type3.Font 

我需要重複相同的邏輯來訪問其他枚舉標識符。有什麼辦法可以編寫返回枚舉值的泛型方法嗎?

例如,

public function GetEnumValue(enumtype, identifier) as integer 

    return enumtype.identifier 

end function 

有什麼辦法來寫上面泛型函數返回枚舉值?

更新時間:我要找像GetEnumValue(Type1和字體)是(對於type1.font在這種情況下,10)返回整數枚舉值法

+0

你的問題得到解決是_extremely_不清楚。 – SLaks 2010-12-02 18:33:42

回答

1

你提的問題是非常不清楚

你可能會尋找

return Enum.Parse(enumType, valueName); 

enumTypeType對象和valueName是一個字符串。

+0

我認爲這就是我需要的。我在Enum下找不到「GetValue」方法。該枚舉標識符是該方法中的第二個參數嗎? – shailesh 2010-12-02 18:47:07

3

IMO你濫用枚舉。你應該有一個enum,要麼

  • 三個功能帶開關從枚舉
  • 三本字典爲int
  • 裝飾與所需值的屬性在枚舉每個條目。

立即解決問題可以用Enum.Parse