TLDR 摘要:(a)我是否应该在可能在运行时产生多个对象的类中包含(冗长的)方法代码,(b)这样做会导致内存使用膨胀,(c)如果是这样,我应该将代码“外包”给一个类只加载一次并让类方法调用它,或者(d)代码是否只加载一次对象定义而我什么都不担心?
...........
我不知道是否有一个好的答案,但如果有的话,我还没有通过在通常的地方搜索找到它。
在我的 VB.Net(2010 如果重要的话)WinForms 项目中,我在对象模型中有大约十几个类对象。其中一些非常简单,只是充当数据存储库。然而,在对象模型之上的那些方法的数量越来越多。尽管确切的数量将取决于运行时,但可能有大量更高级别的对象在使用中,所以我不能比这更精确。
当我为顶级方法之一编写方法代码时,我注意到它开始变得相当冗长。
考虑到现在普通 PC 有多少内存,内存优化是一种失传的艺术,但我不想让我的应用程序占用资源。因此,对于比我更了解 .Net 的任何人(其中会有很多),我的问题是:
代码是否与所创建的类的每个实例一起加载到内存中?
或者,它是否只与类的定义一起加载一次,并且所有派生对象都只引用该定义?(我不太确定这是怎么可能的,例如,事件处理程序可以动态分配,但没有害处。)
如果对第一个问题的回答是肯定的,那么将代码编写在只加载一次并从真实类的方法调用的“实用程序”对象中会更有效吗?
任何想法表示赞赏。