【发布时间】:2016-11-18 10:43:46
【问题描述】:
尝试解析命令行参数 ('MyNameSpace.MyEnumClassName.MyConstantName') 以获取常量。
在不提取 EnumClassName 的情况下这可能吗?我知道我可以得到常数
Type.GetType(...);
Enum.Parse(...)
但是有直接的方法吗?
背景: 这个论点可以用于不同的事情。可以有一个类的 fqn,一个常量,......我知道这不是一种“干净”,但这不是这个问题的一部分。
【问题讨论】:
-
我认为不可能,因为
Enum.Parse()需要解析枚举的类型。 -
你的意思是你想得到一个字符串
"MyConstantName"?arg.Split('.').Last()如果要枚举实例/数值,需要Enum.Parse() -
MyNameSpace.MyEnumClassName 上的 Type.GetType 以及 MyConstantName 上的 Enum.Parse 肯定会为您提供对象中的枚举值。这不是特别沉重。如果您希望它作为单个函数,则在某个实用程序类中编写一个静态函数。
-
是的,我想要 MyConstantName 但不是字符串,即 c# 中的常量对象。并且不想要字符串操作,因为这个参数应该可用于其他类/对象......常量只是一个选项。是的,它很丑,但至少在某些情况下它不应该因为必须拆分字符串而变得更丑:)
标签: c# parsing command-line enums command-line-arguments