【问题标题】:Where is VB.NET's MsgBox function defined?VB.NET 的 MsgBox 函数在哪里定义?
【发布时间】:2012-04-25 12:46:06
【问题描述】:

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

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

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

【问题讨论】:

    标签: vb.net clr


    【解决方案1】:

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

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

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

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

    附带说明:如果您在 C# 项目中添加对 Microsoft.VisualBasic.dll 的引用,您也可以在那里使用 Microsoft.VisualBasic.Interaction.MsgBox("Hello World");(尽管大多数 C# 用户更喜欢使用 MessageBox 类)。

    【讨论】:

    • 谢谢 Heinzi,模块是这里的关键词。显然我在 C# 和 VB.NET 之外的时间太长了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-13
    • 2022-01-03
    • 1970-01-01
    • 1970-01-01
    • 2014-10-29
    • 1970-01-01
    相关资源
    最近更新 更多