前段时间我在Microsoft Visual C#2008 Express Edition中编写了一个小程序。其中包含一个名为“ProblemReport.cs”的文件,其中包含自己的表单和ProblemReport类。
我正在编写一个新程序,并希望重用此代码。 (仍在MS Vis C#2008快递中工作)
在我的新程序中,在C#Solution Explorer中,我右键单击了我的项目并选择了“Add existing item ...”然后我添加了ProblemReport.cs,ProblemReport.designer.cs和ProblemReport.resx。
我在这里错过了哪些步骤?当我回到我的新程序中的主窗体,并尝试实例化“ProblemReport”的新实例时,我收到错误消息:
“无法找到名称空间名称'ProblemReport'的类型(您是否缺少using指令或程序集引用?)”
显然 - 我应该做点其他事情让它发挥作用......只是不确定它是什么!
-Adeena
答案 0 :(得分:9)
确保所有CS文件都在同一名称空间内。听起来像是进口产品不适合您的新项目。
确保:
namespace MyProgram //same as the rest of your project
{
public class ProblemReport
{
}
}
同时在你的其他.cs文件....
namespace MyProgram
{
public class SomeClass
{
public void DoSomething()
{
ProblemReport. //you should get intellisense here.
}
}
}
答案 1 :(得分:4)
你可能最好将ProblemReport解压缩到它自己的类库(单独的dll)中,这样你就只有一个代码副本。
创建一个新的类库项目,将ProblemReport.cs,ProblemReport.designer.cs和ProblemReport.resx复制到该项目中,并根据需要更新名称空间。构建它并将dll置于中心位置。然后从两个程序中添加对此类库的引用。
答案 2 :(得分:2)
您必须在新项目中添加“使用”指令 -
using ProblemReport;
然后您应该能够访问ProblemReport类。当然,这取决于ProblemReport.cs文件的命名空间名称。
答案 3 :(得分:1)
创建它时,可能会使用不同的命名空间,因为默认情况下会从项目名称生成这些命名空间。
在.CS文件中,命名空间是否与项目其余部分匹配?