无法将System.DateTime类型隐式转换为System.DateTime?存在明确的转换。你错过了演员吗?

时间:2014-07-14 06:27:18

标签: c# datetime datepicker

关于这篇文章,我已经完成了一些问题(link1link2),但我仍然无法回答并解决问题。

private void done_Click(object sender, EventArgs e)
    {
        if (datePicker != null)
            Items.Over50Date = datePicker.Value;

        NavigationService.GoBack();
    }

datePicker是DatePicker Tool的名称。 Over50Date可能是,

public static DateTime Over50Date;

当我将datePicker.Value分配给Over50Date时,我收到错误,无法将System.DateTime类型转换为System.DateTime。我哪里做错了?

2 个答案:

答案 0 :(得分:1)

Systme.DateTime,而System.DateTime?是指一个可以为空的DateTime对象,当然,那两个不一样。

你应该将你的日期转换为null,(可能是DatePicker)到DateTime。

<强> [增订]:

注意:它假设datePicker.value是System.DateTime? 如果没有,DatePicker的哪个属性是你的日期存储?

请尝试以下代码:

private void done_Click(object sender, EventArgs e)
{
    if (datePicker != null)
    {
        if (datePicker.Value != null) 
        {
            Items.Over50Date = Convert.ToDateTime(datePicker.Value);
        }
    }

    NavigationService.GoBack();
}

答案 1 :(得分:1)

试试这个:

private void done_Click(object sender, EventArgs e)
{
    if (datePicker != null)
        Items.Over50Date = datePicker.Value != null ? datePicker.Value.Value : DateTime.Now;

    NavigationService.GoBack();
}