无法找到类型或命名空间c#

时间:2012-08-28 07:50:31

标签: c#

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

对于这个项目,我已经交了现有的代码。代码的结构是它有一个主要的解决方案,模拟作为支持命名空间。

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

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

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

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

.NET框架的常见错误无关紧要。

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

3 个答案:

答案 0 :(得分:1)

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

这样的东西
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();

我希望这会有所帮助。

答案 1 :(得分:1)

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

你应该对此感到满意。

答案 2 :(得分:0)

看看这里。 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客户端配置文件。

  5. 您的类可能与另一个类具有相同的名称,在这种情况下,请使用选项2,或将您的类重命名为其他类。

  6. 如果您的班级名称没有出现在intellisense中,那么它就不知道在哪里寻找它。您可以右键单击该课程并单击“解决”,这将为您提供有关如何使您的课程合格的选项。

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

    修改

    查找C#样式约定......那些类名很丑!!!