我想知道为什么“部分类”概念甚至存在于C#/ VB.NET中。我正在开发一个应用程序,我们正在读一本(实际上非常好)与我们在工作中实现的开发平台有关的书。在这本书中,作者提供了围绕平台API的大型代码库/包装器,并解释了他在教授有关平台开发的不同主题时如何开发它。
总之,长话短说-他在各处使用局部类作为伪造C#(IMO)多重继承的方法。为什么他不只是将这些类分成多个类并使用合成,这超出了我的范围。他将拥有3个“部分类”文件来构成他的基类,每个文件带有3-500行代码……并在他的API中多次执行此操作。
您认为这是合理的吗?如果是我,我将遵循SRP并创建多个类来处理所需的不同行为,然后创建一个将这些类的实例作为成员的基类(例如,composition)。为什么MS甚至将部分类放入框架中?他们删除了在C#的每个作用域级别扩展/折叠所有代码的能力(C ++允许这样做),因为显然这只是在允许不良习惯-局部类是IMO。我想我的问题是:您能否向我解释何时有合法理由使用局部类?
编辑:我知道对于Web / WinForms没有其他选择。但是除此之外呢?MS为什么不只是将一些不同的关键字用于将代码生成的类粘合在一起?还是真的有一个值得考虑的合法设计方案?
我的意思不是说这是一条咆哮/战争的话题。老实说,我希望在这里学习一些东西。什么时候应该在代码设计中使用局部类?简单的问题,无需关闭
谢谢