0

我需要一些帮助来转换。我想将字符串转换为双精度,所以我首先这样做了。

double meterStartvalue = double.Parse(startMeterReading.Text);

只要您在文本框中输入内容就可以了。这并不好。所以我试着这样做:

double.TryParse(startMeterReading.Text, out meterStartvalue);

执行TryParse时出现此错误:

参数 2:无法从 'out meterStartvalue' 转换为 'out double'

'double.TryParse(string, out double)' 的最佳重载方法匹配有一些无效参数

由于我在代码中的某些地方使用了它,所以还会出现错误,即meterStartvelue 上下文不存在。

4

2 回答 2

9

您需要meterStartValue在调用方法之前声明,否则编译器不知道您在说什么:

double meterStartValue;
if (double.TryParse(startMeterReading.Text, out meterStartvalue))
{
    // Yes, we managed to parse the text.
}
else
{
    // Failed to parse it
}

请注意,您不必给它一个初始值;当方法返回时,它肯定会被分配(如果解析失败,则值为 0)。

不幸的是,没有办法在单个语句中声明变量并调用方法(使用变量作为参数)。

于 2013-06-07T14:18:08.387 回答
0

闻起来就像您meterStartValue在代码中使用变量之前忘记声明变量一样。

试试这样;

double meterStartValue;

if (double.TryParse(startMeterReading.Text, out meterStartvalue))
{
    // Success
}

由于Double.TryParse返回boolean,您可以使用 if 语句检查对话是否成功。

Return Value
Type: System.Boolean
true if string was converted successfully; otherwise, false.
于 2013-06-07T14:19:05.023 回答