Visual Studio找不到单独的.cs文件中的类

5
我正在处理一个项目,其中有两个单独的文件,是Windows窗体类。当我尝试从.cs文件中使用一个类时,Visual Studio找不到它。它会在代码行下划线并询问是否缺少指示或程序集引用。由于这两个.cs文件位于同一目录中,我不知道为什么它无法访问其他类。请问有什么解决方法吗?
此外,这些.cs文件中的一个是从另一个项目复制过来的,我不知道是否会出现问题。

具体的错误信息是什么?文件是否包含在项目中?作为链接包含? - Peter Ritchie
是的,该文件已包含在项目中。它被复制到顶级目录。错误: 错误4:找不到类型或命名空间名称“AddUpdateDialog”(是否缺少使用指令或程序集引用?)E:\ CIS350 \ Ch14Prb3 \ Ch14Prb3Form.cs 92 39 Ch14Prb3 - grantmcconnaughey
3个回答

8
另外,其中一个.cs文件是从一个单独的项目中复制过来的,因此我不知道是否会出现问题。您应该检查所涉及的命名空间。我猜想来自另一个项目的命名空间可能与当前项目不同。因此,如果您有以下内容:
namespace FirstNamespace
{
    class Foo
    {
        private Bar bar = null;
    }
}

并且

namespace SecondNamespace
{
    class Bar 
    {
    }
}

首先,在第一类中,您需要:

using SecondNamespace;

为了让您在使用Bar时不需要任何资格限制。

或者-更好的方法是-您可以将它们放在同一个命名空间中。

更好的方法是,避免从其他项目复制任何内容,而是使用类库来共享代码。


非常感谢!就是这个问题,命名空间需要分开。我在移动后完全忘记重命名命名空间部分了。再次感谢。 :) - grantmcconnaughey

2

在我的情况下,命名空间是固定的,但是Visual Studio仍然无法识别类。 我通过右键单击类文件并点击“包括在项目中”来解决了这个问题。


我在使用VSCode时遇到了这个问题...原来是我的.cs文件不小心放在了父目录中(与.csproj文件不在同一级目录下)。虽然linter没有发现这个问题,但我仍然能够正常编译。在VSCode中,使用默认的目录树菜单视觉效果有时很难区分目录。 - spencer741

0

如果你从另一个项目中复制了第二个文件,那么它包含的类可能在不同的命名空间中。
在另一个文件的开头添加using <namespace>...


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接