2013-12-15 27 views
0
Public Class Form1 

    Public Sub _A() 
    B._B() ' Why i could not do taht 
    End Sub 
End Class 

Public Class B 

    Public Sub _B() 
    Form1._A() ' Why i could do that 
    End Sub 
End Class 

我現在可以使用共享 - 公共共享Sub _B() - ,,, 在此先感謝。VB.NET類和方法

+0

寫這種方式,你不能做... –

+0

'_B()'是一個**實例**方法 - 意思是一個對象的實例。你還沒有實例。與第二行代碼相同的東西 - 您需要一個Form1實例來執行Form1._A()。 – Tim

+0

我測試Form1._A()它工作正常,你不必打它的實例? –

回答

1

如果你通過像Jetbrain的dotPeek反編譯器,你會發現在B小號_B梅索德下面的代碼看看編譯器生成的代碼:

public void _B() 
{ 
    MyProject.Forms.Form1._A(); 
} 

MyProject類會自動由vb.net編譯器生成並可以輕鬆訪問您的表單。在這個助手類中,有一個對你的實際Form1對象的引用。

正如Hans Passant在評論中所說,這對於VB.NET程序員理解差異並沒有什麼幫助,所以你最好避免使用它。