我有一个看起来像这样的枚举:
enum myEnum
{
field1 = 11,
field2 = 12,
field3 = 33
};
Run Code Online (Sandbox Code Playgroud)
在我的代码中,我需要说field1是1,field2是2,field3是3,根据我的变量.这个变量是1或2或3; 这是一个int.我可以写一行吗?像下面的东西,但更短......
if(myVar == 1)
SomeMethod(myEnum.field1)
...
Run Code Online (Sandbox Code Playgroud)
谢谢 :-)
(myEnum) Enum.Parse(typeof(myEnum), "field" + myVar);
Run Code Online (Sandbox Code Playgroud)
编辑:想想看,你可能想把它包装在一个try/catch (ArgumentException)公开的枚举中myVar,除非你能保证永远不会发生这种情况.
另一个编辑:想一想,如果只有三个值,你可以这样做:
myVar == 1 ? myEnum.field1 : myVar == 2 ? myEnum.field2 : myEnum.field3;
Run Code Online (Sandbox Code Playgroud)
但是,这会将除1或2之外的任何值视为3,但如果这是保证的,那么它应该不是问题.
| 归档时间: |
|
| 查看次数: |
911 次 |
| 最近记录: |