C# 从分钟转换为毫秒,然后转换为整数

C# 从分钟转换为毫秒,然后转换为整数,c#,.net,C#,.net,我正在尝试运行以下转换,这将导致无效的强制转换异常 指定的强制转换无效 这是在尝试以下内容: string comboSelectedValue = ActionTimerComboBox.SelectedValue; double selectedVal =0.0; if(double.TryParse(comboSelectedValue, out selectedVal)){ settings.ActionTimer = (int)TimeSpan.FromMinutes(sele

我正在尝试运行以下转换,这将导致无效的强制转换异常

指定的强制转换无效

这是在尝试以下内容:

string comboSelectedValue = ActionTimerComboBox.SelectedValue;
double selectedVal =0.0;
if(double.TryParse(comboSelectedValue, out selectedVal)){
    settings.ActionTimer = (int)TimeSpan.FromMinutes(selectedVal).TotalMilliseconds;
    Console.WriteLine(TimeSpan.FromMinutes(selectedVal).TotalMilliseconds);
}
else
{
    Console.WriteLine("Error in conversion");
}
获取ActionTimerComboBox.SelectedValue的值,在本例中为13,并将其从object转换为double,以便对其应用TimeSpan.FromMinutes。 将13分钟转换为毫秒。 将int settings.ActionTimer更新为毫秒转换值,该值应为780000。
如何完成此操作?

ActionTimerComboBox.SelectedValue返回字符串,不能将其转换为double, 您应该尝试使用这里使用的double.Parse、double.TryParse或Convert类。
-抱歉,无法对ActionTimerComboBox进行评论。SelectedValue返回字符串,您不能将其转换为double, 您应该尝试使用这里使用的double.Parse、double.TryParse或Convert类。
-抱歉,无法发表评论

除了从ActionTimerComboBox.SelectedValue转换为double之外,其他一切看起来都很好。这就是错误信息也在说。您必须使用以下内容:

string comboSelectedValue = ActionTimerComboBox.SelectedValue;
double selectedVal =0.0;
if(double.TryParse(comboSelectedValue, out selectedVal)){
    settings.ActionTimer = (int)TimeSpan.FromMinutes(selectedVal).TotalMilliseconds;
    Console.WriteLine(TimeSpan.FromMinutes(selectedVal).TotalMilliseconds);
}
else
{
    Console.WriteLine("Error in conversion");
}

工作示例。这可能有助于您了解有关类型转换的更多信息

除了从ActionTimerComboBox.SelectedValue转换为double之外,其他一切看起来都很好。这就是错误信息也在说。您必须使用以下内容:

string comboSelectedValue = ActionTimerComboBox.SelectedValue;
double selectedVal =0.0;
if(double.TryParse(comboSelectedValue, out selectedVal)){
    settings.ActionTimer = (int)TimeSpan.FromMinutes(selectedVal).TotalMilliseconds;
    Console.WriteLine(TimeSpan.FromMinutes(selectedVal).TotalMilliseconds);
}
else
{
    Console.WriteLine("Error in conversion");
}

工作示例。这可能有助于您了解有关类型转换的更多信息

此异常来自以下语句:

((double)ActionTimerComboBox.SelectedValue)
对象到双精度转换正在引发无效的强制转换异常。 首先将此对象转换为字符串,然后将其转换为双精度

((double)ActionTimerComboBox.SelectedValue.toString());
或者,您也可以使用以下代码:

var val = ActionTimerComboBox.SelectedValue;
if (val is IConvertible)
{
 double d = ((IConvertible)val).ToDouble(null);
}

此例外情况来自此声明:

((double)ActionTimerComboBox.SelectedValue)
对象到双精度转换正在引发无效的强制转换异常。 首先将此对象转换为字符串,然后将其转换为双精度

((double)ActionTimerComboBox.SelectedValue.toString());
或者,您也可以使用以下代码:

var val = ActionTimerComboBox.SelectedValue;
if (val is IConvertible)
{
 double d = ((IConvertible)val).ToDouble(null);
}