1

在 VB.NET 中,只是想知道是否有一种“this”关键字,可以通过它访问正在使用的对象 in With <obj>...End With块。例如:

With myObj
  .thisMethod()
  someFunction(<this>) ' Where "<this>" refers to myObj
  .thatMethod()
End With

如果可能的话,它会很方便,在那些时候你想通过 myObj 而不离开 With 块。

4

2 回答 2

1

你不能直接这样做。我能想到的唯一方法是扩展您的对象以包含对自身的引用作为只读属性:

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

但是,我不得不质疑您为什么要这样做。

于 2013-04-23T09:39:58.910 回答
0

我不太关注你。为什么可以引用对象?

例如,如果那是一个文本字段。

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”。

于 2013-04-23T05:36:50.547 回答