当前位置: 首页 > 编程语言 > C#

一个C#类可以共有多少个方法

时间:2023-04-10 22:15:59 C#

一个C#类可以有多少个方法?C#类可以拥有的属性数量是否有限制?我快速浏览了标准ECMA-334,但没有找到任何相关信息。在深入探讨为什么具有许多方法的类设计糟糕之前,我想更明确地说明其意图。当然,我不会手动编写一个包含大量方法的类。我之所以这样问是因为我需要通过代码生成大量的执行单元。我说的是具有单个方法的多个类或具有多个方法的一个大类。所以对于这个问题,我只是感兴趣,如果有限制,属性的数量,方法的限制是多少。每个方法每个程序集(不是排名)1670万。我不知道一个C#类可以有多少方法,但我知道你仔细想想,你一定做错了什么。如果有一个限制(我对此表示怀疑)那么高你就不会超过它。除非你有一个非常糟糕的课程设计。请参见反模式“GodObject”。更新:虽然我仍然不知道你想要实现什么,但我仍然认为你应该创建许多类,方法很少,原因如下:在当前的CLR实现中,正确答案是ushort.MaxValue-15。这可以进行如下测试:AppDomainappDomain=AppDomain.CurrentDomain;AssemblyNameaname=newAssemblyName("MyDynamicAssembly");AssemblyBuilderassemBuilder=appDomain.DefineDynamicAssembly(aname,AssemblyBuilderAccess.Run);ModuleBuildermodBuilder=assemBuilder.ModuleTypeDynamicModule";DynamicModule("tb=modBuilder.DefineType("Widget",TypeAttributes.Public);for(inti=0;i如果您使用Reflection.Emit创建类型化的DataContext以备份数据库(就像LINQPad一样)。使用足够的存储过程,您可以达到这个限制!Type.GetMethods方法返回一个必须由整数索引的数组,所以我会说每个类不能有超过int.MaxValue方法。看看这个:https://softwareengineering.stackexchange.com/questions/193295/implications-of-a-large-partial-class/193304?noredirect=1#193304实际上有人经历了尽可能多的方法来生成一个类痛苦比你想要的更多。是的……这叫做常识。尽量不要让一个类超载,它很可能违反单一职责原则,没有人能理解。毕竟,一个类“只是为了帮助开发人员,他们不能同时将超过7条信息放入他的短期记忆中”(是的,我知道这是一个危险的说法)我不这么认为.然而,要遵循和考虑的良好软件开发实践和准则自然应该限制有意义且绝对必要的类的属性和方法的数量。这些实践包括SOLID、KISS(保持简单)、DRY(不要重复自己)、组合、重构、继承等。我有一个自动代码生成工具,目前我正在达到~5K(工作)之间的限制和10K,失败并出现System.TypeLoadException:Type''fromassembly',Version=0.0.0.0,Culture=neutral,PublicKeyToken=null'包含的方法比当前实现允许的多。所以这与“无限”的说法相矛盾。以上就是C#学习教程的全部内容:C#类分享有多少种方式。如果对你有用,需要进一步了解C#学习教程,希望大家多多关注---本文收集自网络,不代表立场,如涉及侵权,请指正点击右侧联系管理员删除。如需转载请注明出处: