返回枚举值的通用函数

发布于 2024-10-05 15:49:13 字数 792 浏览 2 评论 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,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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

情话难免假 2024-10-12 15:49:13

IMO 你滥用了枚举。您应该有一个 enum 和三个函数,其中

  • 切换
  • 三个函数从枚举到 int
  • 三个字典,用所需值的属性装饰枚举中的每个条目。

您当前的问题可以通过 Enum.Parse

IMO you're misusing enums. You should have one enum and either

  • three functions with a switch
  • three dictionaries from your enum to int
  • decorate each entry in the enum with attributes for the desired values.

Your immediate problem can be solved with Enum.Parse

感悟人生的甜 2024-10-12 15:49:13

你的问题极其不清楚。

您可能正在寻找

return Enum.Parse(enumType, valueName);

其中 enumType 是一个 Type 对象,而 valueName 是一个字符串。

Your question is extremely unclear.

You may be looking for

return Enum.Parse(enumType, valueName);

Where enumType is a Type object and valueName is a string.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文