VB.NET的MsgBox函数定义在哪里?

时间:2012-04-25 12:46:06

标签: vb.net clr

这实际上更像是一个学术问题,但这个函数定义在哪里?在.NET中,我习惯于以面向对象的方式工作。但是,如果我按如下方式定义VB.NET类:

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

MsgBox是否在类中定义?我不需要引用静态类或从其他类继承。我甚至不需要导入命名空间。我确实从msdn找到了这个link。但我的问题仍然存在,这个定义在哪里以及CLR如何加载函数?

1 个答案:

答案 0 :(得分:3)

如果您在Visual Studio中输入MsgBox并点击 F12 ,您将看到它位于Microsoft.VisualBasic模块中的Interaction命名空间中。

事实上,您引用的MSDN页面底部也提供了这些信息(虽然有点隐藏):

  

命名空间:Microsoft.VisualBasic
  模块:互动
  程序集:Visual Basic运行时库(在Microsoft.VisualBasic.dll中)

如果查看项目属性的References部分,您会看到自动导入Microsoft.VisualBasic命名空间。由于Interaction是一个模块,因此您可以使用其方法而无需限定模块名称(而不是类的静态/共享方法)。

作为旁注:如果您将对Microsoft.VisualBasic.dll的引用添加到C#项目,那么您也可以使用Microsoft.VisualBasic.Interaction.MsgBox("Hello World");(尽管大多数C#用户更喜欢使用MessageBox类)。