C# 验证字符串预防不起作用?
我正在尝试转换用户输入的数字,TryParse方法不起作用,我希望如果decimelPlacetxtBox文本中也没有数字,它不会崩溃。从逻辑上讲,它不应该崩溃,因为代码是正确的,但它仍然会崩溃,有人能帮我吗。也许这是我的脑子,但我就是搞不懂C# 验证字符串预防不起作用?,c#,string,validation,C#,String,Validation,我正在尝试转换用户输入的数字,TryParse方法不起作用,我希望如果decimelPlacetxtBox文本中也没有数字,它不会崩溃。从逻辑上讲,它不应该崩溃,因为代码是正确的,但它仍然会崩溃,有人能帮我吗。也许这是我的脑子,但我就是搞不懂 private void btnConvert_Click(object sender, EventArgs e) { int decimalPlace = int.Parse(decimelPlacetxtBox.Text);
private void btnConvert_Click(object sender, EventArgs e)
{
int decimalPlace = int.Parse(decimelPlacetxtBox.Text);
if (!double.TryParse(txtboxAmount.Text, out double amount) || !int.TryParse(decimelPlacetxtBox.Text, out int decimalPlaces)) return; // Prevents empty string, validation errorerror
{
double userInput = Convert.ToDouble(txtboxAmount.Text);
// Killogram convertion
if (comboBoxFrom.SelectedItem.ToString() == "KG" && comboBoxTo.SelectedItem.ToString() == "LB")
{
double conver = userInput * 2.20462262185;
txtBoxResult.Text = "Converted Amount : " + conver.ToString("N" + decimalPlace);
}
if (comboBoxFrom.SelectedItem.ToString() == "LB" && comboBoxTo.SelectedItem.ToString() == "KG")
{
double conver = userInput / 2.2046;
txtBoxResult.Text = "Converted Amount : " + conver.ToString("N" + decimalPlace);
}
if (comboBoxFrom.SelectedItem.ToString() == "ST" && comboBoxTo.SelectedItem.ToString() == "KG")
{
double conver = userInput * 6.35;
txtBoxResult.Text = "Converted Amount : " + conver.ToString("N" + decimalPlace);
}
// Pound convertion
if (comboBoxFrom.SelectedItem.ToString() == "LB" && comboBoxTo.SelectedItem.ToString() == "ST")
{
double conver = userInput / 14;
txtBoxResult.Text = "Converted Amount : " + conver.ToString("N" + decimalPlace);
}
if (comboBoxFrom.SelectedItem.ToString() == "ST" && comboBoxTo.SelectedItem.ToString() == "LB")
{
double conver = userInput / 14;
txtBoxResult.Text = "Converted Amount : " + conver.ToString("N" + decimalPlace);
}
if (comboBoxFrom.SelectedItem.ToString() == "LB" && comboBoxTo.SelectedItem.ToString() == "KG")
{
double conver = userInput / 2.205;
txtBoxResult.Text = "Converted Amount : " + conver.ToString("N" + decimalPlace);
}
{
comboBoxFrom.SelectedItem = -1;
}
// Stone convertion
if (comboBoxFrom.SelectedItem.ToString() == "ST" && comboBoxTo.SelectedItem.ToString() == "LB")
{
double conver = userInput * 14;
txtBoxResult.Text = "Converted Amount : " + conver.ToString("N" + decimalPlace);
}
if (comboBoxFrom.SelectedItem.ToString() == "LB" && comboBoxTo.SelectedItem.ToString() == "ST")
{
double conver = userInput / 14;
txtBoxResult.Text = "Converted Amount : " + conver.ToString("N" + decimalPlace);
}
if (comboBoxFrom.SelectedItem.ToString() == "LB" && comboBoxTo.SelectedItem.ToString() == "KG")
{
double conver = userInput / 2.205;
txtBoxResult.Text = "Converted Amount : " + conver.ToString("N" + decimalPlace);
}
}
}
当它崩溃时,是否出现任何错误消息?如果是这样,他们会怎么说?没关系,我修复了它,我移动了int-decimalPlace=int.Parse(decimelPlacetxtBox.Text);在if语句中插入一行