C# 抓取输入文本并推送到整数

本文关键字:整数 抓取 输入 文本 | 更新日期: 2023-09-27 18:37:09

我正在尝试让这段代码在 C# 中工作,我想做的是如果更新文本字段以验证其整数(HP 是一个整数)。

因此,通过尝试将输入转换为整数,

我要么得到一个新整数,并为其设置值,要么如果失败,它会获取先前的验证值并推送回文本字段(几乎忽略输入,更新它,它现在是一个经过验证的输入)。

在我的脑海里,这都是逻辑和工作,实际上它不是。请帮忙。

private void Input_HP_TextChanged(object sender, EventArgs e)
{
    Try
    {
        HP = Convert.ToInt32(Input_HP.Text);
    }
    catch(Exception e)
    {
        Input_HP.Text = HP;
    }
}

C# 抓取输入文本并推送到整数

您可以使用try.parse,但需要将其设置为临时变量。 在您的情况下,使用 HP 将覆盖您要保存的变量。

int tempInt;
if(Int32.TryParse(Input_HP.Text, out tempint))
{
    HP = tempInt;
}
else
{
    Input_HP.Text = HP.ToString();
}

Int.TryParse 可能是您要查找的:

int HP;
if (int.TryParse(Input_HP.Text, out HP))
{
  // the number is an integer at this point
}

如果 HP 是整数,则不能直接将其分配给 Text 属性,因为它的类型为 String 。这应该是一个编译时错误,对于这部分代码,您应该使用 .ToString() 函数...

Input_HP.Text = HP.ToString();

当然,无论如何,您都应该为此转换使用TryParse。我想你想要的是这样的东西...

private void Input_HP_TextChanged(object sender, EventArgs e)
{
    int i = 0;
    if(int.TryParse(Input_HP.Text, out i))
    {
       HP = i;
    }
    else
    {
       Input_HP.Text = i.ToString();
    }
}