-1

文字列を 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 値に解析できるようにしたいと考えています。これにより、番号 5001、5002 fe の代わりに xml ファイルの概要を簡単に確認できます。

辞書または配列を定義することで解決できると思いますが、余分なコードが残ります。

4

1 に答える 1

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ステートメントを作成する必要があります。

于 2012-05-02T11:25:26.547 に答える