2

今、私は持っています

    public enum EnumSize { Miniscule, Tiny, Small, Medium, Large, Huge, Giant }

文字列値を返したいので、文字列値を返すようにswitchステートメントを作成しました

    public string getSize()
    {
        string temp = "";
        switch (pSize)
        {
            case EnumSize.Miniscule: temp = "Miniscule"; break;
            case EnumSize.Tiny: temp = "Tiny"; break;
            case EnumSize.Small: temp = "Small"; break;
            case EnumSize.Medium: temp = "Medium"; break;
            case EnumSize.Large: temp = "Large"; break;
            case EnumSize.Huge: temp = "Huge"; break;
            case EnumSize.Giant: temp = "Giant"; break;
        }
        return temp;
    }

いずれかの方法でそれを行うことの欠点は何ですか?より良い方法はありますか?ありがとう!

4

2 に答える 2

2

必要な文字列の値が列挙値と同じToString()である場合は、メソッドで十分です。

String temp = pSize.ToString();

ただし、 enum 値に別の名前(ローカライズされた名前など)を割り当てたい場合は、拡張メソッドを使用できます。

public static class EnumSizeExtensions {
  public static String ToName(this EnumSize value) {
    switch (value) {
      case EnumSize.Miniscule: 
        return "My Miniscule size";
      case EnumSize.Tiny: 
        return "My Tiny size";
      case EnumSize.Small: 
        return "My Small size";
      case EnumSize.Medium:  
        return "My Medium size";
      case EnumSize.Large: 
        return "My Large size"; 
      case EnumSize.Huge: 
        return "My Huge size";
      case EnumSize.Giant: 
        return "My Giant size";
      default:
        return "Unknown size";
    }
  }
}

...

String temp = pSize.ToName();
于 2013-08-29T06:13:38.587 に答える