我收到错误:格式异常未处理,输入字符串格式不正确
这条线:
int right = System.Convert.ToInt32(rightAngleTB.Text);
rightAngleTB是TextBox,值Text为“25”(不带“”)。
我真的没有看到问题:(
答案 0 :(得分:9)
你真的应该使用int.TryParse
。转换起来要容易得多,你不会得到例外。
答案 1 :(得分:1)
我经常注意到用户有时在输入中有前导或尾随空格。使用.Trim()将摆脱前导和尾随空格。然后TryParse会给你一个int(如果修剪的Text是一个整数)而不抛出异常
使用以下内容:
int right = 0; //Or you may want to set it to some other default value
if(!int.TryParse(rightAngleTB.Text.Trim(), out right))
{
// Do some error handling here.. Maybe tell the user that data is invalid.
}
// do the rest of your coding..
如果上述TryParse失败,则右侧的值将是您在上面的声明中设置的值。 (在这种情况下为0 ......)
答案 2 :(得分:0)
尝试以下代码。
using System;
public class StringParsing
{
public static void Main()
{
// get rightAngleTB.Text here
TryToParse(rightAngleTB.Text);
}
private static void TryToParse(string value)
{
int number;
bool result = Int32.TryParse(value, out number);
if (result)
{
Console.WriteLine("Converted '{0}' to {1}.", value, number);
}
else
{
if (value == null) value = "";
Console.WriteLine("Attempted conversion of '{0}' failed.", value);
}
}