从枚举中获取整数值

发布于 2024-08-16 06:35:27 字数 332 浏览 1 评论 0原文

我正在开发一个基本的战舰游戏来提高我的 C# 技能。现在我在枚举方面遇到了一些麻烦。我有:

enum game : int
{
    a=1,
    b=2,
    c=3,
}

我希望玩家传递输入“C”并且某些代码返回整数3。我如何设置它以获取字符串 var (string pick;) 并使用此枚举将其转换为正确的 int ?我正在读的这本书有点令人困惑

I am working on a basic Battleship game to help my C# skills. Right now I am having a little trouble with enum. I have:

enum game : int
{
    a=1,
    b=2,
    c=3,
}

I would like the player to pass the input "C" and some code return the integer 3. How would I set it up for it to take a string var (string pick;) and convert it to the correct int using this enum? The book I am reading on this is bit confusing

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

债姬 2024-08-23 06:35:27

只需解析字符串并转换为 int 即可。

var number = (int)((game) Enum.Parse(typeof(game), pick));

Just parse the string and cast to int.

var number = (int)((game) Enum.Parse(typeof(game), pick));
残龙傲雪 2024-08-23 06:35:27
// 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; 
// 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; 
荒岛晴空 2024-08-23 06:35:27

只是打字?

int a = (int) game.a

just typecasting?

int a = (int) game.a
尹雨沫 2024-08-23 06:35:27

如果您不确定传入的字符串是否包含有效的枚举值,您可以使用 Enum.TryParse() 尝试进行解析。如果它无效,则只会返回 false,而不是抛出异常。

日本人

If you're not sure that the incoming string would contain a valid enum value, you can use Enum.TryParse() to try to do the parsing. If it's not valid, this will just return false, instead of throwing an exception.

jp

心凉怎暖 2024-08-23 06:35:27

答案很好,但语法很混乱。

更整洁的是这样的:

    public DataSet GetBasketAudit(enmAuditPeriod auditPeriod)
    {
        int auditParam =Convert.ToInt32(auditPeriod) ;

The answer is fine but the syntax is messy.

Much neater is something like this:

    public DataSet GetBasketAudit(enmAuditPeriod auditPeriod)
    {
        int auditParam =Convert.ToInt32(auditPeriod) ;
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文