我正在使用基本的Battleship game來幫助我的C#技能。現在我在枚舉中遇到了一些麻煩。我有:從枚舉中獲取整數值
enum game : int
{
a=1,
b=2,
c=3,
}
我想玩家通過輸入「C」和一些代碼返回整3
。我如何設置它爲它採取一個字符串變種(string pick;
)並使用此枚舉將其轉換爲正確的int?我在讀這本書是有點混淆
我正在使用基本的Battleship game來幫助我的C#技能。現在我在枚舉中遇到了一些麻煩。我有:從枚舉中獲取整數值
enum game : int
{
a=1,
b=2,
c=3,
}
我想玩家通過輸入「C」和一些代碼返回整3
。我如何設置它爲它採取一個字符串變種(string pick;
)並使用此枚舉將其轉換爲正確的int?我在讀這本書是有點混淆
只解析字符串並轉換爲int。
var number = (int)((game) Enum.Parse(typeof(game), pick));
非常感謝 – Anthony 2009-12-26 18:42:57
我看到了類似的效果(int)(遊戲)選擇表達式 – 2012-08-25 17:29:03
什麼是「挑」在這裏? – gdmanandamohon 2017-07-21 10:52:37
// convert string to enum, invalid cast will throw an exception
game myenum =(game) Enum.Parse(typeof(game), mystring);
// convert an enum to an int
int val = (int) myenum;
// convert an enum to an int
int n = (int) game.a;
如果你不知道傳入的字符串將包含一個有效的枚舉值,你可以使用Enum.TryParse()嘗試做解析。如果它無效,這隻會返回false,而不是拋出異常。
jp
答案很好,但語法很混亂。
更整潔是這樣的:
public DataSet GetBasketAudit(enmAuditPeriod auditPeriod)
{
int auditParam =Convert.ToInt32(auditPeriod) ;
這是不好的做法,用枚舉比'int'其他和'int'是默認的,所以你不需要讓它明確的底層類型。只是說。 – 2009-12-26 18:38:37
不是你的問題「從字符串中獲取枚舉值」? – knoopx 2009-12-26 18:40:52