C#与C ++中的类定义和实现

时间:2010-12-15 17:15:35

标签: c# header-files

使用C ++,我可以在头文件中有一个类定义,并通过包含头文件来拥有多个实现文件。

使用C#,似乎没有这样的头文件,因为一个类应该包含定义/实现。

我想知道行数是否可以非常大,因为无法将类分成多个文件。我对么?我的意思是,在某些情况下,不能将类设计改为具有较小的类。在这种情况下,有没有办法解决这个问题?

4 个答案:

答案 0 :(得分:5)

您可以使用partial关键字

将类分成多个文件
public partial class ClassNameHere
{
}

答案 1 :(得分:3)

可以使用Partial关键字修饰符Link to msdn with the partial class

将类或结构的定义或界面分割为两个或多个源文件

答案 2 :(得分:1)

使用@sparks建议的分部类,或者分成几个类。这是一个很好的经验法则,如果你不能将一个类放在几页上,那就太复杂了,需要分开。

答案 3 :(得分:1)

部分课程只给你这么多。我知道,仍然没有办法将类定义与实现分开,这样每个定义都存在于一个单独的文件中。因此,如果您希望基于需要知道的范例进行开发,那么您就会陷入困境。基本上,开发人员可以在三个级别工作......

1)拥有所有代码,并且可以访问并维护所有代码。

希望使用一些有用的基类(可能构成框架的一部分),或者可能只是一个有用的类,带有一些虚拟方法等,并希望扩展或重新实现一些虚拟基类感兴趣的方法。现在,开发人员不需要去查看基类中的代码,以便在功能级别上理解事物。如果您了解函数的作用,它是输入和输出参数,则无需在源代码内部进行分析。如果您认为存在错误或需要优化,请参阅1)拥有并维护基本代码的开发人员。当然没有什么可以说1)和2)不能与同一个开发者联系在一起,在这种情况下我们没有问题。事实上,这比我怀疑的情况更多。尽管如此,根据您工作的水平保持良好分离仍然是一种很好的做法。

3)开发人员需要使用已经打包/密封的对象/组件dll,它暴露了相关的接口。

在c#,1)和3)的上下文中没有问题。 2)我相信没有办法绕过这个(除非你从暴露虚拟基本方法改为暴露接口方法,这些接口方法可以在拥有可能的基类的组件中重新实现)。如果我想查看一个类定义来浏览方法,脚手架函数等,我还要查看大量的源代码,这只会影响我想要关注的内容。

当然如果在我们通常的方式(在头文件和源文件中)有外部的类定义文档,那么我必须承认,在2)的上下文中,没有理由去查看类定义获取功能知识。

所以也许聪明的Tom提出了c#,决定将类定义与实现混合起来,以鼓励开发人员为他们的类定义和接口提供外部文档,这在大多数IT公司都非常缺乏。