为什么VS-intellisense有时会在页面顶部写using
,有时会像C#中的new namespace.class
一样内联添加?
例如
using Namespace;
Obj obj = new Obj();
和
obj = new Namespace.Obj();
答案 0 :(得分:1)
有时两个名称空间具有相同的类。因此,为避免歧义,将名称空间添加到类中。
实施例:
想象一下,你有Namespace1和Namespace2,它们都有类Employee
using Namespace1;
using Namespace2;
namespace MyNamespace
{
public class MyClass
{
private Employee emp1; // does it come from Namespace1 or Namespace2 ?
}
}
在这种情况下可以完成两个解决方案
一个是明确定义名称空间
using Namespace1;
using Namespace2;
namespace MyNamespace
{
public class MyClass
{
private Namespace1.Employee emp1;
}
}
另一个是您从一开始就定义您正在使用某个名称空间中的Employee,如下所示。
using Namespace1;
using Namespace2;
using Employee = Namespace1.Employee;
namespace MyNamespace
{
public class MyClass
{
private Employee emp1; //Notice the definition above
}
}
答案 1 :(得分:1)
Visual Studio 2015有一个错误,它可以做到这一点。
无论您是否在代码文件的顶部包含using
语句,该错误都会导致它在您的定义前添加命名空间。
I asked a similar question,并根据其他用户的建议,提交了相关github项目的问题。
我的问题几乎立即被关闭了一个相当狡猾的评论,基本上说"更新到Visual Studio 2017因为我们在那个版本修复了它#34;。