2016-08-05 17 views
0

首先,我是一個C#的開始。我試着編寫一些遊戲。我不知道如何以字符串形式返回枚舉值。如何將枚舉值的名稱返回給C#中的屬性

在這裏我的代碼。

public class CARDS { 

    public CARDS(int id, int atk, ClassType ctype, string name) { 
     this.CARD_ID = id; 
     this.C_TYPE = ctype; 
     this.ATK = atk; 
     this.NAME_EN = name; 
    } 
    public CARDS() { 
      this.CARD_ID = -1; 
    } 

    public int CARD_ID { get; set; } 
    public ClassType C_TYPE { get; set; } 
    public int ATK { get; set; } 
    public string NAME_EN { get; set; } 

    public enum ClassType { 
      Warrior, 
      Mage, 
      Archer, 
      Thief, 
      Bishop, 
      Monk, 
      Guardian, 
      Destroyer, 
      Chaser, 
      Hermit, 
      Alchemy 
    } 
} 

....... 這裏我試着去做。

public class CardCollection : MonoBehaviour { 
    private List<CARDS> dbase = new List<CARDS>(); 
    private JsonData cardsdata; 
    private JsonData card; 

    void Start() { 
      cardsdata = JsonMapper.ToObject(File.ReadAllText(Application.dataPath + "/Json/card.json")); 
      ConstructCardData(); 
      Debug.Log(dbase[1].NAME_EN + " " + dbase[23].NAME_EN); 
    } 
    void ConstructCardData() { 
      card = cardsdata["CARDS"]; 
      for (int i = 0; i < card.Count; i++) { 
       dbase.Add(new CARDS((int)card[i]["CARD_ID"], (int)card[i]["ATK"], card[i]["C_TYPE"].ToString(), card[i]["NAME_EN"].ToString())); 
      } 
    } 
} 

//卡[I] [ 「C_TYPE」]的ToString() 它說不能從字符串轉換成CARDS.ClassType

+0

我看到2個構造函數,一些屬性和枚舉。我沒有看到你試圖'將枚舉值作爲字符串'返回。你能展示你想要做什麼嗎? – Jonesopolis

+0

T_T _______ T_T –

回答

0

什麼:

public class CARDS 
{ 
    public CARDS(int id, int atk, ClassType ctype, string name) 
    { 
     this.CARD_ID = id; 
     this.C_TYPE = Enum.GetName(ctype.GetType(), ctype); //Use Enum.GetName to get string 
     this.ATK = atk; 
     this.NAME_EN = name; 
    } 
    public CARDS() 
    { 
     this.CARD_ID = -1; 
    } 

    public int CARD_ID { get; set; } 
    public string C_TYPE { get; set; } //change type to string 
    public int ATK { get; set; } 
    public string NAME_EN { get; set; } 

    public enum ClassType 
    { 
     Warrior, 
     Mage, 
     Archer, 
     Thief, 
     Bishop, 
     Monk, 
     Guardian, 
     Destroyer, 
     Chaser, 
     Hermit, 
     Alchemy 
    } 
} 
0

的ToString ()枚舉值返回枚舉的字符串值。自定義字符串值,也可以返回枚舉值,檢查這些鏈接,link1link2

例子:

ClassType.Warrior.ToString(); 

ctype.ToString();