返回枚举值的通用函数
我有三个不同的枚举,所有三个都有相同的标识符但不同的值。我想根据某些条件访问特定的枚举。
例如:
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,Font) 的方法,该方法返回整数枚举值(在本例中 type1.font 为 10)
I have three different Enum and all of three has same identifier but different values. I want to access particular enum based on some condition.
for example:
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
And based on certain condition i need to access particular enum. for example,
if(somecondition = 1)
return Type1.Font
else if (somecondition = 2)
return Type2.Font
else if (somecondition = 3)
return Type3.Font
I need to repeat same logic to access other enum identifier. Is there any way I can write generic method that return me enum value?
for example,
public function GetEnumValue(enumtype, identifier) as integer
return enumtype.identifier
end function
Is there any way to write above generic function to return enum value?
Updated: I am looking for method like GetEnumValue(Type1,Font) that returns enum value in integer (in this case 10 for type1.font)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
IMO 你滥用了枚举。您应该有一个
enum
和三个函数,其中您当前的问题可以通过
Enum.Parse
IMO you're misusing enums. You should have one
enum
and eitherYour immediate problem can be solved with
Enum.Parse
你的问题极其不清楚。
您可能正在寻找
其中
enumType
是一个Type
对象,而valueName
是一个字符串。Your question is extremely unclear.
You may be looking for
Where
enumType
is aType
object andvalueName
is a string.