【发布时间】:2010-05-07 14:33:50
【问题描述】:
即使您没有在顶部包含必要的 using 声明,Visual Studio/intellisense 如何知道如何处理声明为 var 的变量?
例如,我在不同的命名空间中定义了类 MyDomainObject
如果我不在文件中声明using TheOtherNameSpace;,以下代码将无法编译:
private void Foo()
{
MyDomainObject myObj = new MyDomainObject();
// Doesn't know what this class is
}
但是如果我使用var
var myObj = new MyDomainObject();
这将编译,并且智能感知确切地知道我可以用它做什么。
那么它怎么知道没有using 的类型是什么?
(顺便说一句,如果它知道没有using,我们为什么还需要usings?!)
【问题讨论】:
-
你能在这两种情况下发布你程序中的实际代码吗?我怀疑您是否真的有一个名为 Foo 的方法和一个名为 MyDomainObject 的类,也许真实的代码可以对此有所了解。
-
对不起,对我不起作用...无论如何它都无法编译
-
查看 Jon Skeet 对我在真实代码中遇到的情况的回答