为什么命名空间在Visual Studio 2010中起作用?

Dog*_*uca 8 namespaces visual-studio-2010

我刚刚将一个项目转换为VS 2010,而且名称空间正在发生一些奇怪的事情.让我举一个例子,下面的代码用于在VS2008中工作:

namespace MySystem.Core.Object
{
    using MySystem.Core.OtherObject;
    ...
}
Run Code Online (Sandbox Code Playgroud)

但是现在它没有,它要么将整个事物放在命名空间之外,如下所示:

using MySystem.Core.OtherObject;

namespace MySystem.Core.Object
{
    ...
}
Run Code Online (Sandbox Code Playgroud)

或者像以下一样重写:

namespace MySystem.Core.Object
{
    using OtherObject;
    ...
}
Run Code Online (Sandbox Code Playgroud)

我理解为什么这样做可能是处理这个问题的正确方法,但现在我们必须改变数千行代码!哪个不酷.

有没有想过规避这个要求?

soh*_*970 1

这可能是因为您从 VB.NET 转换为 C#。VB.NET 中的“使用”与 C# 中的“导入”相同。因此,当进行转换/升级时,它认为您打算使用 using(){} 语句并将其放置在命名空间内。将您的包含重写为“导入”,它应该可以工作。