9

在内存、性能等方面使用部分类是否有任何开销?

如果我们创建一个部分类,我们可以使用反射器识别该类是否是部分的

4

3 回答 3

16

不,它们被编译成相同的 IL,就好像它们不是部分的一样。这纯粹是编译时的事情——CLR 甚至不知道它们曾经是部分的。

请注意,在 C# 3 中引入部分方法后,该方法甚至不会在 IL 中发出,除非它在其中一个文件中实现。调用和声明都被编译器剥离。

当然,它可能会使编译器减慢几分之一毫秒的速度:)

于 2009-06-26T11:36:31.803 回答
3

不,所有类文件都将在编译时合并。

这是关于部分类型的msdn 文章。

每个源文件都包含一个类型或方法定义的部分,并且在编译应用程序时将所有部分组合在一起。

于 2009-06-26T11:36:29.680 回答
2

不,它们被编译成一个类。它纯粹是一种语言功能。

于 2009-06-26T11:36:34.407 回答