当前位置:  开发笔记 > 编程语言 > 正文

C#中的部分类

如何解决《C#中的部分类》经验,为你挑选了4个好方法。

在webforms/winforms生成的代码场景之外是否有很好的使用部分类?或者这个功能基本上是支持吗?



1> yfeldblum..:

它部分用于支持将生成的代码与程序员代码混合的场景(WebForms,WinForms,LINQ-to-SQL等).

有更多理由使用它.例如,如果您在大型,笨拙的文件中有大类,但类具有逻辑相关方法组,则可以选择部分类来使文件大小更易于管理.


"如果你在庞大,笨拙的文件中有大班"那么你真的需要重新考虑你的设计.
@Roger:我不同意.如果您的类具有完全有效封装原因的嵌套类型,则会创建大且难以处理的文件,这些文件保证使用部分但不表示需要重新设计.

2> Micah..:

代码生成是部分类的驱动力.需要的是拥有一个不断变化的代码生成类,但允许开发人员提供自定义代码作为类的一部分,每次进行更改时都不会覆盖这些代码以强制重新生成类.

以WinForms或Typed-DataSet为例(或任何设计师).每次对设计器进行更改时,它都会将相应的代码序列化为文件.假设您需要提供一些生成器不知道的其他方法.如果将其添加到生成的文件中,则更改将在下次生成时丢失.

我目前正在处理的项目使用所有DAL,BLL和业务实体的代码生成.但是,生成器只能获得75%的信息.其余部分必须手动编码(例如,自定义业务逻辑).我可以假设每个BLL类都有一个SelectAll方法,因此很容易生成.但是我的客户BLL还需要一个SelectAllByLocation方法.我不能把它放在我的生成器中,因为它不是所有BLL类的通用.因此,我将所有类生成为部分类,然后在单独的文件中定义自定义方法.现在,当我的结构发生变化时,或者由于某种原因我需要重新生成BLL时,我的自定义代码将不会被删除.



3> MagicKat..:

我使用部分类作为分离我编写的自定义控件的不同子元素的手段.此外,当与实体创建软件一起使用时,它允许LLBLGen等产品创建类的生成版本,以及自定义的用户编辑版本,如果需要重新生成实体,则不会替换它们.



4> Jeff Yates..:

我经常使用partial类为每个嵌套类赋予自己的文件.我已经开发了一些架构,其中大多数实现只需要一个类,因此我们将这些类嵌套在一个类中.通过使用部分类能力并将每个文件拆分为自己的文件,使文件更易于维护是有意义的.

我们还使用它们来分组股票覆盖或隐藏一组股票.像这样的东西.这是一种在库存变化中混合的便捷方式(只需复制文件并将部分类名称更改为目标类 - 当然,只要目标类也是部分的).

推荐阅读
围脖上的博博_771
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有