C# 胰蛋白酶法
我对下面的代码有疑问。我正在尝试使用C# 胰蛋白酶法,c#,visual-studio-2012,tryparse,C#,Visual Studio 2012,Tryparse,我对下面的代码有疑问。我正在尝试使用int.TryParse方法检查用户的输入(如果用户在文本框中输入“abc”,它将显示一个错误,告诉用户这是错误的输入,他们应该输入一个整数)。我想知道为什么我的代码不起作用。以下是我所拥有的: private void CalcStayChargesButton_Click(object sender, EventArgs e) { // Get the user input. NumberOfDays = int.Parse(DaysI
int.TryParse
方法检查用户的输入(如果用户在文本框中输入“abc”,它将显示一个错误,告诉用户这是错误的输入,他们应该输入一个整数)。我想知道为什么我的代码不起作用。以下是我所拥有的:
private void CalcStayChargesButton_Click(object sender, EventArgs e)
{
// Get the user input.
NumberOfDays = int.Parse(DaysInHospitalChargesTextBox.Text);
if (int.TryParse(DaysInHospitalChargesTextBox.Text, out NumberOfDays))
{
MessageBox.Show("Please enter a whole number.");
}
}
在代码视图中没有错误,但当我运行应用程序测试它时,它返回到第4行并高亮显示,但我无法理解。请记住,NumberOfDays整数已经设置在表单开头下方,因此我可以在整个应用程序中普遍使用它。有人能给我一些关于如何使它工作的提示吗?我可能忽略了什么。非常感谢。
int.TryParse
在无法解析时返回false,因此您必须输入代码>进入您的状态:
private void CalcStayChargesButton_Click(object sender, EventArgs e)
{
// Get the user input.
if (!int.TryParse(DaysInHospitalChargesTextBox.Text, out NumberOfDays))
{
MessageBox.Show("Please enter a whole number.");
}
}
为什么使用int.Parse
然后使用int.TryParse
?使用其中一个,而不是两个
您还必须有一个名为NumberOfDays
的变量,该变量必须是int
类型。如果类中没有此类变量,请在If
语句之前添加一个:
int NumberOfDays;
if(!int.TryParse(...))
我想这就是你想要的:
private void CalcStayChargesButton_Click(object sender, EventArgs e)
{
// Get the user input.
int NumberOfDays;
if (!int.TryParse(DaysInHospitalChargesTextBox.Text, out NumberOfDays))
{
MessageBox.Show("Please enter a whole number.");
}
}
如果int.Parse不是一个可解析的数字,那么第一次调用int.Parse将抛出一个异常——这就是TryParse的作用,如果不能解析该数字,它将返回false。另外,当消息是有效数字时,您的逻辑正在显示该消息,因此您需要如果无法解析数字,则在其中使用code>使语句解析为true
if (int.TryParse(DaysInHospitalChargesTextBox.Text, out NumberOfDays))
{
MessageBox.Show("Please enter a whole number.");
}
通过执行此操作,如果解析成功,则显示此消息,您应该执行此操作
if (!int.TryParse(DaysInHospitalChargesTextBox.Text, out NumberOfDays))
{
MessageBox.Show("Please enter a whole number.");
}
int.TryParse(Something,out value)尝试解析“Something”的值,并将值设置为out(如果这是正确的)。
如果正常,int.TryParse将返回true(如果不正常,则返回false)
因此,对于您的示例,您应该做的是:
private void CalcStayChargesButton_Click(object sender, EventArgs e)
{
int NumberOfDays; //Create the variable
//try to parse DaysInHosputalChargesTextBox.Text
if (!(int.TryParse(DaysInHospitalChargesTextBox.Text, out NumberOfDays)))
{
// "!" means the parsing was not ok. So the user should reenter the number
MessageBox.Show("Please enter a whole number.");
}
else
{
//some code to do if the parsing was successful.
}
}
有关更多信息,请参阅。请参阅如何使用
哦,好的。我完全忽略了我试图解析两次。对不起,各位。这太简单了。谢谢所有帮助我的人。这应该足够我完成我的申请了,再次感谢你。
private void CalcStayChargesButton_Click(object sender, EventArgs e)
{
int NumberOfDays;
if (!int.TryParse(DaysInHospitalChargesTextBox.Text, out NumberOfDays))
{
MessageBox.Show("Please enter a whole number.");
}
}