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;
}
}
您可以使用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();
}
}