2012-04-25 20 views
2

これは本当に学問的な疑問ですが、この関数はどこに定義されていますか? .NET内では、私はオブジェクト指向の方法で作業することに慣れています。しかし、VB.NETクラスを次のように定義すると、VB.NETのMsgBox関数はどこに定義されていますか?

Public Class foo 
    Public Sub showmessagebox() 
     Dim i As Integer 
     i = MsgBox("Message") 
    End Sub 
End Class 

クラスにMsgBoxが定義されていますか?静的クラスを参照する必要はありません。別のクラスから継承する必要はありません。私は名前空間をインポートする必要はありません。私はこのlinkをmsdnから見つけました。しかし、私の質問は残っています。これはどこで定義されていますか?また、CLRはどのように関数をロードするだけですか?

答えて

3

は、Visual StudioにMsgBoxを入力してF12をヒットした場合、あなたはそれがInteractionモジュールで、Microsoft.VisualBasic名前空間にあることがわかります。あなたは、参照MSDNのページの下部にある(ビットが隠されている)

は実際には、この情報も提供されています:

名前空間:Microsoft.VisualBasic
モジュール:インタラクション
アセンブリ:Visual Basicランタイムライブラリ(Microsoft.VisualBasic.dll)

プロジェクトプロパティのReferencesセクションを調べると、Microsoft.VisualBasic名前空間が自動的にインポートされることがわかります。 Interactionはモジュールなので、(クラスの静的/共有メソッドではなく)モジュール名を修飾することなく、そのメソッドを使用できます。

補足:Microsoft.VisualBasic.dllへの参照をC#プロジェクトに追加する場合は、Microsoft.VisualBasic.Interaction.MsgBox("Hello World");も使用できます(ほとんどのC#ユーザーはMessageBoxクラスを使用することをお勧めします)。

+0

ありがとうHeinzi、ここではモジュールがキーワードです。どうやら私はC言語で、またVB.NETからあまりにも長い時間を過ごしてきました。 – LJM

関連する問題