"DateTime"之间的区别?和"DateTime".(试图从datepicker获取价值)

Ms.*_*ody 2 c# wpf datetime visual-studio-2010 datetimepicker

我对WPFC#都很陌生,所以不要责怪我这可能是个愚蠢的问题.

我的WPF应用程序有两个日期选择器.我希望在更改时将DateTime从它们中取出,并将其用作应用程序中其他一些内容的变量.所以我为他们每个人都有这样的东西(方法是由VS自动生成的):

private void datePicker1_SelectedDateChanged(object sender, SelectionChangedEventArgs e)
        {
            date1 = datePicker1.SelectedDate;
        }
Run Code Online (Sandbox Code Playgroud)

但问题是,datepicker中的日期是格式DateTime?不是DateTime,我真的不知道那个问号是什么意思,为什么它存在.我尝试了一些研究,但没有找到任何可以帮助我的东西.如果你看到一些更好的方式从该datepicker获取日期,你也可以帮助我.我只是需要它在我的xaml.cs代码中而不是在xaml中我并没有真正使用绑定因为我不确定它是否适用于我在这种情况下的需要.

谢谢你的回答.

编辑:我想添加它向我显示此错误的信息:

无法隐式转换类型'System.DateTime?' 到'System.DateTime'.存在显式转换(您是否错过了演员?)

Hab*_*bib 14

DateTime with ?Nullable DateTime,它可以保存空值.对于您的情况,您可以这样做:

private void datePicker1_SelectedDateChanged(object sender, SelectionChangedEventArgs e)
{
    if(datePicker1.SelectedDate.HasValue)
         date1 = datePicker1.SelectedDate.Value;
}
Run Code Online (Sandbox Code Playgroud)

Nullable<T> C#

在C#和Visual Basic中,使用?将值类型标记为可为空?值类型后的表示法.例如,int?在C#或整数?在Visual Basic中声明一个可以指定为null的整数值类型.