c#vb:我们真的需要System.Lazy吗?

Pac*_*ier 1 .net static-classes

我们真的需要System.Lazy吗?假设我的类库有100个静态类,每个静态类使用平均100个静态System.Lazys = 10000 System.Lazys,当使用我的类库的程序启动时必须启动它们?

我的意思是我们通常不只使用1个类库,比如我们导入15个.dll每个都有大量的静态System.Lazys ..我很确定它会花很长时间启动所有那些System.Lazys,更不用说它也会囤积大量内存(因为每个内存都有自己的System.Func让我们把它放在每个50字节=内存500kb)

所以我想知道..最好是以"旧"的方式做到这一点(比如使用布尔来跟踪是否有东西被启动)

dah*_*byk 7

你应该只使用Lazy1)很有可能不需要实例,2)旋转实例的成本足以证明开销的合理性.

如果一个类中有100个静态惰性成员,那么你几乎肯定做错了.