我想知道当我在一个表单中实例化多个类时性能如何。
e.g
Public Class frmClass
Dim obja As New ClassA
Dim objb As New ClassB
Dim objc As New ClassC
'I'll use those classes' attribute in here
'
End Class
感谢您的帮助!
答案 0 :(得分:2)
嗯,这将取决于这些课程的成本。如果他们的构造者决定下载整个维基百科,那将会很昂贵......但一般来说,它应该不是问题。
创建您需要的类的实例,而不是其他类 - 您应该没问题。在.NET中创建对象通常非常便宜。我建议为了清楚起见,你只需要在需要时创建一个对象,而不是创建所有对象,然后再使用所有对象。
您还应该考虑是否真的希望这些是实例变量 - 它们是否在逻辑上都是表单状态的一部分?它们中的一些是局部变量会更有意义吗?具有大量状态的类可能需要重构。这更多是为了获得干净的代码而不是性能。
答案 1 :(得分:1)
对象创建通常非常便宜,即使是最基本的Form
实际上也会加载其他依赖项的堆。坦率地说:去吧。
除非您的对象实际上很大/有一些巨大的连接/等成本 - 在这种情况下可能考虑延迟加载。但一般(特别是托管代码)这不会成为问题。
有些事情你可能想要等待OnLoad
,纯粹是因为你需要hWnd - 但这些更为罕见。
答案 2 :(得分:0)
这实际上取决于这些类的设计方式以及调用构造函数时它们执行的操作。如果它们具有默认的空构造函数,则实例化三个新对象的性能损失将不明显。