Joe*_*orn 14
我能看到的唯一潜在缺点是构造函数调用顺序缺乏确定性,但在许多情况下,部件的顺序无关紧要.如果是这样,你总是可以避免部分构造函数.
这部分对你的问题比看起来更重要.
如果您真的想了解C#语言是如何组合在一起的,那么您可以做的一件事就是关注Eric Lippert的博客.他从事Microsoft的C#语言工作,并且在选择资源有限的功能方面进行了大量讨论.阅读他的博客一段时间后,您将开始了解功能如何融入语言.
他在一些场合提到的一个因素是,对于该功能将要解决的问题是否已经有一个微不足道的解决方法.因此,回到问题的引用部分,您会提出两个要点:
把它们放在一起,这不是一个成功的功能.
Hea*_*her 10
我会投赞成票,我会举一个具体的例子.
许多使用生成器(例如Linq To SQL)发出代码的技术将/必须发出默认构造函数.但是,我经常也想在构造函数中执行某些操作,例如连接到其中一个数据事件.
没有部分构造函数我不能这样做,因为默认构造函数已经被生成的代码绑定了,我显然不想改变生成的代码来添加我的逻辑.
那么,partial类和接口是另一个故事.这个概念可与partial方法相媲美.他们实际上什么都不做,只是告诉编译器这个方法可以存在于某个地方,如果它不删除方法调用.它不允许引入重复方法.
由于构造函数永远不会直接调用,因此拥有这样的概念没有任何意义.我相信当前的初始化模式在大多数情况下都能很好地工作.引入另一部分内容将不必要地使语言更复杂而不会带来显着的好处.