C# 错误消息(再次)

C# 错误消息(再次),c#,asp.net,C#,Asp.net,可能重复: 嗨,程序员。我不明白为什么上面这条线不起作用。上面这一行给了我一个运行时错误,它说:输入字符串的格式不正确。正如我在另一个问题中发布的一样,请尝试使用int.tryParse(),如果出现问题,它只返回0而不是该异常 像这样: int a; int b; int.TryParse("a",out a); int.TryParse("5",out b); int totalValue = a * b; Console.WriteLine(totalValue.

可能重复:


嗨,程序员。我不明白为什么上面这条线不起作用。上面这一行给了我一个运行时错误,它说:输入字符串的格式不正确。

正如我在另一个问题中发布的一样,请尝试使用
int.tryParse()
,如果出现问题,它只返回0而不是该异常

像这样:

  int a;
  int b;
  int.TryParse("a",out a);
  int.TryParse("5",out b);
  int totalValue = a * b;
  Console.WriteLine(totalValue.ToString());
此代码将向控制台写入“0”,因为它无法将“a”解析为字符串

  int a;
  int b;
  int.TryParse("5",out a);
  int.TryParse("5",out b);
  int totalValue = a * b;
  Console.WriteLine(totalValue.ToString());

此代码将“25”写入控制台,因为它可以将“5”解析为整数

这意味着一个或两个输入字符串的解析格式无效

检查
Label9
Label6
中包含的值,确保其格式和范围正确

或者,将其作为转换过程的一部分进行检查:

string str = "xyzzy";
int num;
bool ok = int.TryParse (str, out num);
if (!ok) {
    // Generate error and return.
}

// Use num for whatever.
对于您的特定代码,您可以使用以下内容(包括表单上的错误指示器):


您应该尝试解析这些值,如果不可能,则显示一个错误,如我在下面演示的

int totalValue = 0;
int firstValue, secondValue;
if (!int.TryParse(Label9.Text, out firstValue))
  throw new Exception("Text of label 9 wasn't a number);
if (!int.TryParse(Label6.Text, out secondValue))
  throw new Exception("Text of label 6 wasn't a number);

totalValue = firstValue * secondValue;
Label8.Text = totalValue.ToString();

Label9.Text
Label6.Text
(可能两者)没有正确的数字格式。这意味着其中一个文本值不是数字(如“1234”)。可能是“数字”太大,无法放入int值,例如“1245678987654321”,或者是十进制格式,例如“1234.0”,或者它根本不是数字,例如“1234s”。标签9.Text和标签6.Text的内容是什么?您当前的文化是什么?谢谢:)它非常有效!
int num1, num2, prod = 0;
LabelErr.Text = "";
if (int.TryParse (Label9.Text, out num1) && int.TryParse (Label6.Text, out num2))
    prod = num1 * num2;
else
    LabelErr.Text = "One or both input values are invalid";
Label8.Text = prod.ToString();
int totalValue = 0;
int firstValue, secondValue;
if (!int.TryParse(Label9.Text, out firstValue))
  throw new Exception("Text of label 9 wasn't a number);
if (!int.TryParse(Label6.Text, out secondValue))
  throw new Exception("Text of label 6 wasn't a number);

totalValue = firstValue * secondValue;
Label8.Text = totalValue.ToString();