将字符串解析为const uint定义

时间:2012-05-02 11:18:43

标签: c# string parsing

我想知道是否有可能将字符串解析为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。

我认为定义一个字典或数组可以解决它,但是会留下额外的代码。

1 个答案:

答案 0 :(得分:1)

如果您不需要常量,可以使用enum - 与ToStringParse方法一起输入。

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语句。