我正在研究一个基本的Battleship game来帮助我的C#技能。现在我对枚举有点麻烦。我有:
enum game : int
{
a=1,
b=2,
c=3,
}
我希望播放器传递输入“C”,一些代码返回整数3
。我如何设置它以获取字符串var(string pick;
)并使用此枚举将其转换为正确的int?我正在阅读的这本书有点令人困惑
答案 0 :(得分:49)
只需解析字符串并转换为int。
var number = (int)((game) Enum.Parse(typeof(game), pick));
答案 1 :(得分:14)
// 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;
答案 2 :(得分:5)
只是进行类型转换?
int a = (int) game.a
答案 3 :(得分:4)
如果您不确定传入的字符串是否包含有效的枚举值,则可以使用Enum.TryParse()来尝试进行解析。如果它无效,则只返回false,而不是抛出异常。
JP
答案 4 :(得分:-1)
答案很好,但语法很混乱。
更整洁的东西是这样的:
public DataSet GetBasketAudit(enmAuditPeriod auditPeriod)
{
int auditParam =Convert.ToInt32(auditPeriod) ;