我不确定这是一个错误还是别的。VS2010显示隐式变量的类型是'var'而不是实际的类型
我在VS2010中创建了一个新的Web应用程序项目。在项目中,我创建了一个新的类(1类),其内容如下:
public void Test()
{
var s = "Hello";
Console.WriteLine(s);
}
当我将鼠标悬停我的鼠标悬停在Console.WriteLine命令(或多个)线s
,则会弹出显示(local variable) string s
。太棒了,就像我期望的一样。
现在,我添加一个App_Code
文件夹到项目中。在它里面,我再次创建一个新的类(Class2),其内容完全相同(类名除外)。现在,当我翱翔s
时,它显示(local variable) var s
。
为什么显示的string
代替var
?这是一个错误?你能重现这种行为吗?
它更糟。如果将Class2.cs从App_Code文件夹移到项目的根目录,VS2010仍然不显示类型。即使在重新启动VS2010并重新打开项目后,VS2010也会在Class1中显示正确的类型,但不会显示在Class2中。我也尝试删除.suo
和.csproj.user
文件,但仍然没有区别。很明显,VS2010将这些信息缓存在某处。
这些文件还有其他区别吗? Usings?别的东西?如果您复制粘贴其中一个,然后重命名该类,会发生什么? –
好吧,如果这些文件没有差异,那么您的定义有冲突;即它不编译。它向任何*任何文件显示任何内容的事实都是惊人的。 – Mehrdad
这就是为什么不喜欢使用隐式类型。错误与否,如果明确使用类型,我发现它更容易阅读。 – Bernard