.net framework 3.5的分部方法

本文介绍了.NET Framework 3.5中分部方法的使用方法及特点。分部方法允许将一个类的方法分散在多个源文件中定义,提高了代码的可读性和可维护性。文章还探讨了分部方法的应用场景及其在软件开发流程中的价值。

早上看.net framework 3.5的分部方法这个特性。例子如下,第一个类为定义类,第二、第三个类为实现类。

None.gifpublicpartialclassAI
ExpandedBlockStart.gifContractedBlock.gif
dot.gif{
InBlock.gif
publicvoidActive()
ExpandedSubBlockStart.gifContractedSubBlock.gif
dot.gif{
InBlock.gif
this.Run();
InBlock.gif
this.Jump();
ExpandedSubBlockEnd.gif}

InBlock.gif
InBlock.gifpartial
voidRun();
InBlock.gif
InBlock.gifpartial
voidJump();
ExpandedBlockEnd.gif}

None.gif
None.gif
publicpartialclassAI
ExpandedBlockStart.gifContractedBlock.gif
dot.gif{
InBlock.gifpartial
voidRun()
ExpandedSubBlockStart.gifContractedSubBlock.gif
dot.gif{
InBlock.gifConsole.WriteLine(
"我在跑");
ExpandedSubBlockEnd.gif}

ExpandedBlockEnd.gif}

None.gif
None.gif
publicpartialclassAI
ExpandedBlockStart.gifContractedBlock.gif
dot.gif{
InBlock.gifpartial
voidJump()
ExpandedSubBlockStart.gifContractedSubBlock.gif
dot.gif{
InBlock.gifConsole.WriteLine(
"我在跳");
ExpandedSubBlockEnd.gif}

ExpandedBlockEnd.gif}

None.gif

它可以:

1.以上三个类可以不放在相同的CS文件里

2.后两个分部类如果不写,编译能顺利通过,在IL里产生有方法体的Run和Jump,但是空实现。

它不可以:

1. 分部方法不能是公开类型,必须是私有。

2. 实现类不能和定义类分别存在不同的程序集里。

它有价值的地方:

1. 更细化分工过程。以前系统分析到对象级,现在可以细到方法级别。从例子里看,对象框架维护人定义了Active方法,而Run和Jump可能被分派到其他人实现。

这样的分工模式和更大规模的集成开发趋势是紧密关联的。简单的看,这只是一个新的语言特性;仔细思考,这其实是软件朝工业化方向发展的一个信号。以后的软件开发过程势必是基于更多特性(或者说是开发工艺),在生产线上完成的。一个人就是一个螺丝钉,让你实现Run就Run,让你Jump就Jump,如果你想发挥自己的聪明才智,好,就在这个范围内尽情的发挥吧!

2. 代码可以写的更优雅,如果本例中的Run和Jump的内部实现异常复杂(AI机器人行为嘛),一个CS文件搞个几千上万行,别人读的时候时会吐血的。如果再碰到一个写代码不地道的,把方法堆砌起来了事,那是连肝都要吐出来的。有了分部方法,就可以把问题压到局部,不想看的地方我就可以看不见。

3.代码优雅只是一个表象,如果是牺牲了性能换取的,我宁愿不要这个特性。事实上恰恰相反,分部方法的效率是非常OK的。具体就去写个例子,观察IL吧。哈哈!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值