访问类上的对象

时间:2015-03-26 12:57:06

标签: vb.net

在阅读我的一个旧项目时,我发现了一些可疑的地方,我不明白为什么这部分有效:

Public Shared Sub getXMLforProject(QueryString As String)
    Dim linkStart As String = "http://example.org"
    Dim linkEnd As String = "&tempMax=2000"
    Dim target As String = linkStart & QueryString & linkEnd

    'replaces parts that need encoding,
    'groups(1) is the sign e.g. <= and groups(2) is the text that needs encoding
    'groups(0) is the text of the full match (sign and encoding text)
    target = rx.Replace(target, Function(m As Match) encodeURLString(m.Groups(1).Value) + encodeURLString(m.Groups(2).Value))

    GUI.WebBrowser.Navigate(target)
    Return True
End Sub

对我来说可疑的相应路径是行

GUI.WebBrowser.Navigate(target)

有一个名为GUI的类可以实现用户界面,但在文件上下文中没有可用的名为“GUI”的对象,因此必须使用该类进行访问。这怎么可能有效?是否存在将调用从GUI类重定向到GUI对象的隐式机制?

1 个答案:

答案 0 :(得分:2)

您正在使用VB.NET,它模拟早期Visual Basic版本中Form类的行为,其中使用类型名称是一种合法的方式来引用实例班级。有点必须给程序员一个转换他们的VB6项目的战斗机会。底层管道是My.Forms object

因此,99.9%的可能性是GUI类派生自System.Windows.Forms.Form。特别是它有一个WebBrowser成员。表单是浏览器的主机窗口。