gpt4 book ai didi

c# - 类型 'X' 在类型 'Y.Z' 中不存在

转载 作者:太空狗 更新时间:2023-10-29 22:14:25 25 4
gpt4 key购买 nike

我们的团队最近从 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();
}
}
}

这在 VS2008 中工作得很好,但在 VS2010 中我收到以下错误消息:

The type name 'Main' does not exist in the type 'SomeLib.Some'

有趣的是,如果我点击“构建解决方案”,程序构建得很好,我什至可以毫无问题地执行它。只是 Visual Studio 似乎对这段代码有问题。

不幸的是,我正在处理一个大型遗留应用程序,我无法(轻松地)更改这些命名空间的名称。

我想知道如何修复这个错误,我也很好奇是什么原因导致的。

最佳答案

您只会让编辑感到困惑Some 既是命名空间又是接口(interface)名称,显然它不会按照声明的顺序检查/解析 using

如果您想明确表示您指的是命名空间而不是类型名称,只需将 global:: 添加到 using 声明(从 < em>root 命名空间),像这样:

using global::Some.Main;

更新
@alex 在评论中链接的 SO 上的非常好的帖子:Should 'using' statements be inside or outside the namespace?

关于c# - 类型 'X' 在类型 'Y.Z' 中不存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10894310/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com