【问题标题】:the type or namespace could not be found c#找不到类型或命名空间c#
【发布时间】:2019-03-14 19:03:05
【问题描述】:

我对 c# 很陌生,这可能是一个非常 n00b 的错误。

对于这个项目,我已经收到了可以使用的现有代码。代码的结构是它有一个以模拟为支撑命名空间的主要解决方案。

我从要修改的模拟命名空间中复制了一个类 (Adt_12) 并将其重命名为 (Pb_cs2)。我复制的方式是,点击另存为..,然后将文件名更改为我想要的新名称。然后将公共类名(和构造函数)更改为这个新文件名。我已经重建“模拟”并且重建得很好。

但是当我尝试调用 Pb_cs2 时,它会抛出上面的“找不到名为 Pb_cs2 的类型或命名空间”。

我在main的可执行类中使用它的方式;是 公共静态 Pb_cs2 pb; (最初使用 Adt_12)。

但它仍然可以在解决方案和命名空间中找到 Adt_12。只是没有 Pb_cs2。我已经重建并构建了解决方案。

.NET框架的常见错误不相关。

任何想法为什么会发生这种情况以及如何解决这个问题?我真的不想修改原文件。

【问题讨论】:

  • 那些类名可能,嗯,...更好!
  • 这个类是否显示在您的解决方案资源管理器中?它是右上角的窗口。
  • 您使用“另存为”创建了一个新文件。您是否在解决方案中包含了该新文件?
  • 类名代表不同的机器零件号。但更好的名字肯定会有所帮助!

标签: c#


【解决方案1】:

看这里。 Visual Studio saying name doesn't exist in current context

您需要确保:

  1. 你的类名和命名空间不一样,比如Pb_cs2.Pb_cs2,这样会混淆编译器

  2. 您可以完全限定类的路径,即MyNamespace.MyNestedNameSpace.MyClass

  3. 您可以使用快捷方式,即using MyClass = MyNamespace.MyNestedNamespace.Class1

  4. 确保您的项目以相同的框架为目标,即 .NET 4.0 / .NET 4.0 Client Profile。

  5. 您的类与另一个类同名时可能会发生冲突,在这种情况下,请使用选项 2,或将您的类重命名为其他名称。

  6. 如果你的类名没有出现在智能感知中,那么它不知道去哪里寻找它。您可以右键单击课程并单击“解决”,这将为您提供一些关于如何使您的课程合格的选项。

...这就是我现在能想到的!...祝你好运!

编辑:

查找 C# 风格约定...那些类名很难看!!!

【讨论】:

  • 我无法完全限定课程的路径。主类在命名空间中找不到 Pb_cs2。我确实声明了这个类在命名空间中(即:命名空间模拟 { Pb_cs2 { ... } }),并且我在主类中使用了正确的(使用模拟)。是否需要将新类添加到解决方案中?您提到的其余几点都可以解决。
  • @GSam 您的班级使用了哪些访问修饰符?即公共,抽象等?
【解决方案2】:

添加对包含您正在调用的类的命名空间的引用。所以你可能有类似

namespace SomeNamespace
{
    public class Pb_cs2
    {
    ...
    }
}

所以你需要在试图调用你的类的文件顶部的声明中添加using SomeNamespace;。或者使用完全限定名调用类

SomeNamespace.Pb_cs2 pbcs2 = new SomeNamespace.Pb_cs2();

您还可以在引用命名空间时为命名空间创建别名

using NS = SomeNamespace;

那么上面的显式引用可以像这样调用

NS.Pb_cs2 pbcs2 = new NS.Pb_cs2();

我希望这会有所帮助。

【讨论】:

  • 使用完全限定名称调用类不起作用。我认为这个文件没有被添加为命名空间的一部分,即使结构是:命名空间 Simulation { public class Pb_cs2 { ... } } 并且在可执行文件中我确实有一个 : using Simulation。
  • 你能发布你正在使用的声明和类声明吗?此外,如何将类对象实例化也会有所帮助......一切顺利。
【解决方案3】:

这样做可以确保您的解决方案知道该类。 项目->添加类 如果现在还没有选择类,请选择它。 命名它,然后添加新类。 它应该出现在您的解决方案资源管理器中。 现在复制粘贴代码。重命名命名空间应该没问题的类。

你应该可以接受的。

【讨论】:

    猜你喜欢
    • 2013-03-25
    • 2011-06-28
    • 2021-08-19
    • 1970-01-01
    • 1970-01-01
    • 2019-07-17
    • 1970-01-01
    • 1970-01-01
    • 2011-02-24
    相关资源
    最近更新 更多