【问题标题】:Visual Studio won't find class in separate .cs fileVisual Studio 不会在单独的 .cs 文件中找到类
【发布时间】:2013-03-30 21:11:50
【问题描述】:

在我正在处理的项目中,我在不同的文件中有两个类。 Windows 窗体类专门。当我尝试使用 .cs 文件中的一个类时,Visual Studio 找不到它。它强调代码行并询问我是否缺少指令或程序集引用。我不知道为什么它没有看到另一个类,因为两个 .cs 文件都在同一个目录中。有没有人知道为什么会发生这种情况以及如何解决它?

另外,其中一个 .cs 文件是从一个单独的项目中复制的,所以我不知道这是否会导致某种问题。

【问题讨论】:

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

标签: c# visual-studio-2010 class reference .net-assembly


【解决方案1】:

另外,其中一个 .cs 文件是从一个单独的项目中复制的,所以我不知道这是否会导致某种问题。

您应该检查所涉及的命名空间。我的猜测是来自另一个项目的那个位于不同的命名空间中。所以,如果你有:

namespace FirstNamespace
{
    class Foo
    {
        private Bar bar = null;
    }
}

namespace SecondNamespace
{
    class Bar 
    {
    }
}

那么你需要的第一堂课:

using SecondNamespace;

让您可以无条件使用Bar

或者 - 可能更好 - 您可以更改它们,使它们都在同一个命名空间中。

更好的是,您可以避免从其他项目复制任何内容,而是使用类库进行代码共享。

【讨论】:

  • 非常感谢!就是这样,单独的命名空间。移动命名空间部分后,我完全忘记了重命名它。再次感谢。 :)
【解决方案2】:

在我的例子中,命名空间是固定的,但 Visual Studio 仍然无法识别类。 我通过右键单击类文件并单击“包含在项目中”来解决它。

【讨论】:

  • 我在使用 VSCode 时遇到了这个问题......就像我的 .cs 文件意外位于父目录(到 .csproj 文件)中一样简单。 linter 没有捕捉到这一点,但我仍然能够很好地编译。在 VSCode 中,有时很难用默认的目录树菜单视觉来识别目录。
【解决方案3】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-08-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-10
    • 2018-07-31
    • 2022-08-06
    相关资源
    最近更新 更多