2011-07-26 56 views
3

是什麼下面的兩個語句之間(在內存管理方面)的區別:我原本是一個C#開發人員,如何做第二個有意義,甚至顯示錶單的下列方法之間有什麼區別?

Dim frm as New MyForm() 
frm.Show() 

VS

MyForm.Show() 

在VB.NET中編譯這個問題? (Show()不是Shared/Static方法)第二種情況發生了什麼?

+1

另請參閱:http://stackoverflow.com/questions/4698538/there-is-a-default-instance-of-form-in-vb-net-but-not-in-c-why – Brad

回答

5

出於兼容性的原因,MyForm.Show()是VB6和以前版本的一個暫停。在這些版本中,通常不會創建表單的多個實例,所以當使用MyForm.Show()時,它會自動創建表單的單例實例以供默認使用。您不應該使用該方法,創建實例和調用.Show()方法的首選方法是正確的方式,並且與c#和其他.net語言兼容。

+0

@Denis ,對於第二個例子,任何時候當你引用'MyForm'作爲一個對象時,你實際上正在調用一個類似於'If _MyForm Is Nothing Then _MyForm = New MyForm()''Return _MyForm'的函數。 –

相關問題