我想知道是否有可能将字符串解析为uint的定义值。与http://msdn.microsoft.com/en-us/library/essfb559.aspx类似的东西。所以,如果我有以下声明:
public const uint COMPONENT1 = START_OF_COMPONENT_RANGE + 1;
public const uint COMPONENT2 = START_OF_COMPONENT_RANGE + 2;
public const uint COMPONENT3 = START_OF_COMPONENT_RANGE + 3;
并按以下方式定义xml文件:
<node name="node1" port="12345">
<component>COMPONENT1</component>
<component>COMPONENT2</component>
</node>
我希望能够将字符串COMPONENT1解析为COMPONENT1的uint值。这样可以更容易地概述xml文件而不是数字5001,5002 f.e。
我认为定义一个字典或数组可以解决它,但是会留下额外的代码。
答案 0 :(得分:1)
如果您不需要常量,可以使用enum
- 与ToString
和Parse
方法一起输入。
public enum Compontents
{
COMPONENT1 = 1,
COMPONENT2 = 2
}
public static class ComponentsHelper
{
public static Compontents GetComponent(this string compString)
{
return (Compontents)Enum.Parse(typeof(Compontents), compString);
}
public static uint ToValue(this Compontents comp)
{
return (uint)comp;
}
public static uint GetComponentValue(this string compString)
{
return compString.GetComponent().ToValue();
}
}
如果你真的需要常量,那么你必须写一个大的switch
语句。