在With <obj> / End With块中,是否有直接访问<obj>的关键字?</obj> </obj>

时间:2013-04-23 05:31:26

标签: vb.net with-statement

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

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

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

2 个答案:

答案 0 :(得分:1)

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

Public Class TextBoxExtended
    Inherits TextBox
    Public ReadOnly Property ObjRef As TextBox
        Get
            Return Me
        End Get
    End Property
End Class

然后您可以使用Block:

执行此操作
With myObj
  .thisMethod()
  someFunction(.ObjRef)
  .thatMethod()
End With

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

答案 1 :(得分: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”。