我创建了一个GUI,ValueBox.Text
是字符串“randomstring”。我想做的是:
如果ValueBox.Text
的数字仅 double valueLenght = Convert.ToDouble(ValueBox.Text);
,如果它有字符&&数字或只有字符,然后我认为从MSDN,Convert.ToDouble(字符串)将返回0.这不是这里的情况。代码转到:
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
然后从mscorlib
答案 0 :(得分:6)
Convert.ToDouble
无法将字符串转换为数字,则会引发异常。
您可能想尝试Double.TryParse
。如果转换成功,返回值将为true
,如果不成功,则返回false
。 out double
参数接收结果。
答案 1 :(得分:1)
转换假设您要转换的对象 能够转换。如果不是,则抛出异常。将tryParse()
与您想要的对象类型一起使用:
string text = "asdsad";
double d;
if (!double.TryParse(text, out d))
{
// Not a double
}
答案 2 :(得分:1)
我希望您正在调试并发现在Convert.ToDouble
异常之后,您的程序中唯一剩下的就是处理表单/资源。
正如其他人所建议的那样,您可能希望使用Double.TryParse
,因为现在您可以使用其布尔输出来确定文本框是否包含(成功解析的)数字:
double myDouble;
if (Double.TryParse(textBox.Text, out myDouble))
{
// Successful conversion
}
else
{
// Conversion failed
}
这比依赖Convert
例外要好。如果您使用try/catch
来确定某些事物的结果,那么它不仅会变慢,而且会被视为不良行为。