有没有办法将对象的实例设置为其自己的类中的当前实例化对象?

时间:2009-08-26 21:56:39

标签: asp.net object variable-assignment

我不确定如何提出这个问题。希望我的解释会澄清:

我在一个类中有一个公共方法,比如说Widget,它会获取一个Widgets列表并对它们进行更改。但是,有时,调用该方法的Widget位于该列表中。有没有办法将当前对象设置为列表中的项目之一?

例如,这就是我要做的事情:

Public Class Widget()
    '...other stuff'
    Public Sub Update()
        'do some stuff...'
        For Each w As Widget In List(Of Widget)
           'update widgets'
           If w.ID = ID Then
              Me = w '<----- here is what I am trying to do, but it wont let me'
           End If
        Next
    End Sub
End Class

4 个答案:

答案 0 :(得分:3)

不,但 可以做的是让你的对象触发引用(父)对象侦听的事件,并适当地替换该对象。

Public Class Widget
    Public Event Replace As ReplaceReferenceEventHandler

    Public Sub Update()
        'do stuff
        For Each w As Widget In List(Of Widget)
           'update widgets'
           If w.ID = ID Then
              Replace(Me, w)
           End If
        Next
    End Sub
End Class

Public Delegate Sub ReplaceReferenceEventHandler(ByVal sender As Object, ByVal replaceWith As Object)

答案 1 :(得分:1)

只需返回您要使用的对象,并在呼叫站点设置引用。

Public Class Widget()
    '...other stuff'
    Public Function Update() As Widget
        'do some stuff...'
        return SelectedWidget
    End Sub
End Class

myWidget = myWidget.Update()

答案 2 :(得分:0)

我引用代码运行的类实例,不能更改。 (这在c#中) 它不能像变量一样使用。

答案 3 :(得分:0)

你想在更高层次上做什么?

我的意思是,你为什么试图将当前对象“更改”为该列表中的一个对象?

如果你想更改其他人对你当前对象的引用,以便他们现在指向另一个对象,那么不,你不能这样做。

此外,您似乎已经拿走了“我”这个对象,并尝试将其分配给“我”。 这是为了什么目的?

相关问题