namespace Program
{
class Test
{
public Test() { }
public class InsideClass
{
public InsideClass() { }
public void Call() { }
}
}
}
是否可以将Program::Test::InsideClass:: Call
的正文写入同一测试以外的其他文件中。
就像在c ++中一样,在.h
文件中声明了函数,在.cpp
中声明了函数的主体。
答案 0 :(得分:10)
与C ++不同,C#不会将声明与实现分开。没有与.h
文件可比的文件。主要原因是.NET DLL文件中的元数据包含C ++头文件中的信息。通过引用C#项目中的DLL替换了C ++ #include
。另外,您可以使用using
语句有选择地导入名称空间。但是名称空间没有物理影响。它们只是组织代码和避免命名冲突的一种方式。
但是您可以在C#中创建部分类。这使您可以将私有帮助器方法移至另一个文件。在Test.cs
中写
public partial class Test
{
public Test() { }
public partial class InsideClass
{
public InsideClass() { }
public void PublicMethod() => PrivateHelper();
}
}
您在Test.Implementation.cs
中写
public partial class Test
{
public partial class InsideClass
{
private void PrivateHelper() { }
}
}
WinForms设计器使用局部类将设计器生成的代码(myForm.designer.cs
)与您的背后代码(myForm.cs
)分开。
即使使用嵌套类,也可以执行此操作。请注意,即使周围的类不是嵌套类,它也可以是局部的。 (但是然后它们显然不能放在不同的文件中。)
在Visual Studio中,您还可以使用类视图来显示代码的逻辑结构,而不是像解决方案资源管理器那样显示物理结构。对象浏览器是另一个有用的视图。
另请参阅:
答案 1 :(得分:-1)
我建议您创建局部类以完成您想要的工作。
第一个文件:
['*']
第二个文件:
public partial class Employee
{
public void DoWork()
{
}
}