这确实是一个学术问题,但是这个函数是在哪里定义的呢?在.NET 中,我习惯于以面向对象的方式工作。但是,如果我按如下方式定义 VB.NET 类:
Public Class foo
Public Sub showmessagebox()
Dim i As Integer
i = MsgBox("Message")
End Sub
End Class
MsgBox 是在类中定义的吗?我不需要引用静态类或从另一个类继承。我什至不需要导入 namespace 。我确实找到了这个link来自 msdn。但我的问题仍然是,它在哪里定义以及 CLR 如何加载函数?
最佳答案
如果您在 Visual Studio 中输入 MsgBox
并按 F12,您将看到它位于 Microsoft.VisualBasic
命名空间中的交互
模块。
事实上,此信息也可以在您引用的 MSDN 页面的底部找到(尽管有点隐藏):
Namespace: Microsoft.VisualBasic
Module: Interaction
Assembly: Visual Basic Runtime Library (in Microsoft.VisualBasic.dll)
如果您查看项目属性的 References
部分,您将看到 Microsoft.VisualBasic
命名空间已自动导入。由于 Interaction
是一个模块,因此您可以使用其方法而无需限定模块名称(与类的静态/共享方法相反)。
作为旁注:如果将对 Microsoft.VisualBasic.dll 的引用添加到 C# 项目,则可以在其中使用 Microsoft.VisualBasic.Interaction.MsgBox("Hello World");
好吧(尽管大多数 C# 用户更喜欢使用 MessageBox
类)。
关于vb.net - VB.NET的MsgBox函数在哪里定义的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10315926/