Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Visual Studio 2012无法识别可为空的类型_C#_Visual Studio 2012_Intellisense - Fatal编程技术网

C# Visual Studio 2012无法识别可为空的类型

C# Visual Studio 2012无法识别可为空的类型,c#,visual-studio-2012,intellisense,C#,Visual Studio 2012,Intellisense,我有2个可为空的日期时间,所以减去它们将得到一个可为空的时间跨度。我想就此调用.Value 但是,“自动完成”下拉列表认为括号内的类型是正常的时间跨度.Value不在列表中,当我使用任何建议时,它都不会编译。当我手动键入.Value时,它会编译 如果只有一个日期时间可为空,则会发生相同的问题。如果将TimeSpan?添加到DateTime?中,则会产生DateTime?。Intellisense认为这是一个DateTime 这是VisualStudio的intellisense的问题吗?我在更

我有2个可为空的日期时间,所以减去它们将得到一个可为空的时间跨度。我想就此调用
.Value

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

如果只有一个日期时间可为空,则会发生相同的问题。如果将
TimeSpan?
添加到
DateTime?
中,则会产生
DateTime?
。Intellisense认为这是一个
DateTime

这是VisualStudio的intellisense的问题吗?我在更新3,我没有重新竖琴。在另一台计算机上出现同样的问题


编辑:我想问一个问题,为什么intellisense建议使用错误的类型。我知道要编写什么来编译代码。

同意,IS错误地推断出减法的结果是可空的,它推断出时间跨度。你可以这样写,把它打到头上:

var span = date1 - date2;
span.
现在,如果is没有正确推断span变量的类型,您将在自动完成窗口中看到HasValue。否则,这在运行时一点也不慢,所以这是一个合理的解决方法


对于原始oops,您或我们无能为力,但您可以在connect.microsoft.com上提交反馈报告。发布一个链接,这样我们就可以投票了。

奇怪的是,当你投Timespan的时候会发生什么事,即
(Timespan)(date1-date2)。
?@JMK投最后一个,所以同样的行为。你的意思是把整件事放在括号里吗<代码>((TimeSpan?)(date1-date2))。值工作正常。主要是出于好奇而询问,将有兴趣知道结果是什么:)是否有人有任何较旧版本的Visual Studio可用于测试此功能?已确认VS 2008上存在类似行为:谢谢,开始吧