1

私は次のコードを持っています -

public static int GetViewLevel(string viewLevelDesc)
{
    try
    {
        switch (viewLevelDesc)
        {
            case "All":
                return 0;

            case "Office":
                return 10;

            case "Manager":
                return 50;

            default:
                throw new Exception("Invalid View Level Description");
        }
    }
    catch (Exception eX)
    {
        throw new Exception("Action: GetViewLevel()" + Environment.NewLine + eX.Message);
    }
}

public static string GetViewLevelDescription(int viewLevel)
{
    try
    {
        switch (viewLevel)
        {
            case 0:
                return "All";

            case 10:
                return "Office";

            case 50:
                return "Manager";

            default:
                throw new Exception("Invalid View Level Description");
        }
    }
    catch (Exception eX)
    {
        throw new Exception("Action: GetViewLevelDescription()" + Environment.NewLine + eX.Message);
    }
}

2 つの静的メソッドを使用すると、文字列 ViewLevelDesc から int ViewLevel を取得したり、その逆を行うことができます。私がこれを行った方法は、必要以上に面倒であると確信しており、同じ目的をより簡潔に達成するためのアドバイスを探しています。int / string ペアのリストが大幅に増加します。上記のコードのものは、私が使用するつもりの最初の 3 つです。

4

2 に答える 2

4

列挙を使用できます。

public enum Level
{
    All = 0,
    Office = 50,
    Manager = 100
}

そして、この方法で列挙型から整数値と文字列値を取得できます。

Level level = Level.Manager;

int intLevel = (int)level;
string strLevel = level.ToString();

そして逆に

Level l1 = (Level)intLevel;
Level l2 = (Level)Enum.Parse(typeof(Level), strLevel);

列挙型を便利に使用して値を渡し、外部インターフェイスを処理するときに整数または文字列にのみ変換できます。

于 2013-10-29T09:47:20.343 に答える