Visual Studio 2012无法识别可空类型

Tom*_*Tom 6 c# intellisense visual-studio-2012

我有2个可以为空的DateTimes,因此减去它们将导致可以为空的TimeSpan.我想打电话.Value来.

但是,自动完成下拉列表认为括号内的类型是正常的TimeSpan..Value不在列表中,当我使用任何建议时,它不会编译.它在我手动输入时编译.Value.

如果只有一个DateTimes可以为空,则会出现同样的问题.如果我将a添加TimeSpan?DateTime?结果中,也会发生这种情况DateTime?.Intellisense认为它是一个DateTime.

这是Visual Studio智能感知的问题吗?我在更新3,我没有ReSharper.另一台电脑上的问题相同.

编辑:要清楚,我问一个关于为什么intellisense建议错误类型的问题.我知道要编写什么来编译代码.

Han*_*ant 5

同意,IS得到这个错误,并没有正确地推断减法的结果是a Nullable<TimeSpan>,它推断TimeSpan.你可以通过这样写它来改变它:

var span = date1 - date2;
span.
Run Code Online (Sandbox Code Playgroud)

现在确实正确推断了span变量的类型,你会在自动完成窗口中看到HasValue.否则在运行时根本不会慢,所以它是一个合理的解决方法.

您或我们无法对原始oops做任何事情,但您可以在connect.microsoft.com上提交反馈报告.发布链接,以便我们投票.