jqn*_*qno 5 .net c# compiler-errors .net-4.0
我们的团队最近已从Visual Studio 2008/.NET3.5迁移到Visual Studio 2010/.NET4.0.现在,VS2010给了我一个奇怪的错误信息.它可以通过以下程序重现:
using System;
namespace Some.Main
{
}
namespace SomeLib
{
interface Some
{
}
}
namespace ConsoleApplication1
{
using Some.Main;
using SomeLib;
class Program
{
static void Main(string[] args)
{
Console.Write("Press enter to continue");
Console.ReadLine();
}
}
}
Run Code Online (Sandbox Code Playgroud)
这在VS2008中运行得很好,但在VS2010中我收到以下错误消息:
"SomeLib.Some"类型中不存在类型名称"Main"
有趣的是,如果我点击"构建解决方案",该程序构建得很好,我甚至可以毫无问题地执行它.它只是Visual Studio,似乎有这个代码的问题.
不幸的是,我正在研究一个大型遗留应用程序,我不能(轻松地)更改这些名称空间的名称.
我想知道如何解决这个错误,我也很好奇是什么导致它.
你只是让编辑器感到困惑.Some既是名称空间又是接口名称,显然它不会using按照它们声明的顺序检查/解析s.
如果你想明确指出你是指代名称空间而不是类型名称,只需添加global::到using声明(从根名称空间开始),如下所示:
using global::Some.Main;
Run Code Online (Sandbox Code Playgroud)
更新
非常好的帖子在这里由@alex链接在评论中:'使用'语句应该在命名空间内部还是外部?
| 归档时间: |
|
| 查看次数: |
5422 次 |
| 最近记录: |