![]() |
1
23
引入分部方法的原因与.NET2中使用分部类的原因类似。 分部类是可以跨多个文件拆分的类-编译器在运行时将它们全部构建到一个文件中。
最常见的例子是表单设计器。开发人员不希望在大多数情况下手动定位按钮、输入框等。
Net 3.5中引入了Linq。Linq有一个DBML设计器用于构建数据结构,并生成自动代码。 这里的额外部分是提供开发人员可能需要填写的方法所需的代码。
另一个问题是,这些方法大部分时间不会被调用,而调用空方法是浪费时间。 所以Linq生成空的部分方法。如果您不创建自己的分部代码来完成它们,C#编译器只会对它们进行优化。 所以它可以做到这一点,部分方法总是返回void。 如果您创建一个新的LINQDBML文件,它将自动生成一个分部类,如
然后在您自己的部分文件中,您可以扩展:
如果不扩展这些方法,它们会得到优化。
我前面提到的例子是一种可能性:
另一个潜在用途是,如果有一个大型复杂的类跨越多个文件,则可能需要在调用文件中使用部分引用。不过,我认为,在这种情况下,你应该考虑简化班级第一。 |
![]() |
2
10
|
![]() |
3
2
|
![]() |
4
2
|
![]() |
5
0
以下是C#.NET 3.0中部分类的最佳资源: http://msdn.microsoft.com/en-us/library/wa80x488(VS.85).aspx |