在 VB.NET 中,只是想知道是否有一种“this”关键字,可以通过它访问正在使用的对象 in With <obj>
...End With
块。例如:
With myObj
.thisMethod()
someFunction(<this>) ' Where "<this>" refers to myObj
.thatMethod()
End With
如果可能的话,它会很方便,在那些时候你想通过 myObj 而不离开 With 块。
在 VB.NET 中,只是想知道是否有一种“this”关键字,可以通过它访问正在使用的对象 in With <obj>
...End With
块。例如:
With myObj
.thisMethod()
someFunction(<this>) ' Where "<this>" refers to myObj
.thatMethod()
End With
如果可能的话,它会很方便,在那些时候你想通过 myObj 而不离开 With 块。
你不能直接这样做。我能想到的唯一方法是扩展您的对象以包含对自身的引用作为只读属性:
Public Class TextBoxExtended
Inherits TextBox
Public ReadOnly Property ObjRef As TextBox
Get
Return Me
End Get
End Property
End Class
然后,您可以在您的 with Block 中执行此操作:
With myObj
.thisMethod()
someFunction(.ObjRef)
.thatMethod()
End With
但是,我不得不质疑您为什么要这样做。
我不太关注你。为什么可以引用对象?
例如,如果那是一个文本字段。
With textbox1
.visible = true
.text = textbox1.text
End with
那仍然有效。
事实上,这也行得通。
.text = .text
也许不是最好的,因为你永远不会看到变化......
让我们再尝试一个相关的...
' The function to send to.
Function myfunction(thestring As String) As String
thestring += "moretext"
Return thestring
End Function
' The with statement
With Textbox1
.Text = myfunction(.Text)
End With
文本框文本将变为原始文本+“moretext”。