我对c#很新,这可能是一个非常错误的错误。
对于这个项目,我已经交了现有的代码。代码的结构是它有一个主要的解决方案,模拟作为支持命名空间。
我从模拟命名空间复制了一个类(Adt_12),我想修改它并重命名它(Pb_cs2)。我复制的方式是,点击另存为..然后将文件名更改为我想要的新名称。然后将公共类名(和构造函数)更改为此新文件名。我重建'模拟',它重建得很好。
但是当我尝试调用Pb_cs2时,它会抛出上面的“无法找到名为Pb_cs2的类型或命名空间”。
我在main中的可执行类中使用它的方式;是 public static Pb_cs2 pb; (最初使用的是Adt_12)。
但它仍然可以在解决方案和命名空间中找到Adt_12。没有Pb_cs2。我重建并构建了解决方案。
.NET框架的常见错误无关紧要。
为什么会发生这种情况以及如何解决这个问题?我真的不想修改原始文件。
答案 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
您需要确保:
您的类名和命名空间不一样,如Pb_cs2.Pb_cs2
,因为这会混淆编译器
您可以完全限定班级的路径,即MyNamespace.MyNestedNameSpace.MyClass
您可以使用快捷方式,即using MyClass = MyNamespace.MyNestedNamespace.Class1
确保您的项目针对相同的框架,即.NET 4.0 / .NET 4.0客户端配置文件。
您的类可能与另一个类具有相同的名称,在这种情况下,请使用选项2,或将您的类重命名为其他类。
如果您的班级名称没有出现在intellisense中,那么它就不知道在哪里寻找它。您可以右键单击该课程并单击“解决”,这将为您提供有关如何使您的课程合格的选项。
......这就是我现在所能想到的一切!......祝你好运!
修改强>
查找C#样式约定......那些类名很丑!!!