获取对象的名称并传递参数

时间:2012-01-31 10:41:14

标签: vb.net

例如,如果我有一个如下所示的函数调用

  Function callingMe()

  Exit Function

我的函数调用如下

  SomeObj.callingMe('1','2','3','4','5') // Variable number of arguments

在callingMe()函数内部,我想知道在上面的情况下传递的参数,即1,2,3,4,5和Object,即SomeObj。

2 个答案:

答案 0 :(得分:2)

方法声明需要明确,才能接受n个参数 在这种情况下,可以使用ParamArray

编辑:无法确​​定变量的名称,因为名称对运行时来说并不重要。您可以使用Me关键字来引用该类的实例。

EDIT2:假设someObj是一个类Person的实例,它有一个名为FirstName的属性,你可以在Me.FirstName内使用callingMe(这是一种方法)在Person类中。

Sub Main
    dim someObj as Person
    someObj = new Person

    someObj.FirstName = "Hello"
    someObj.callingMe("1","2","3")
End Sub

' Define other methods and classes here
Class Person
    Private firstNameValue As String
    Public Property FirstName() As String
        Get
            Return firstNameValue
        End Get
        Set(ByVal value As String)
            firstNameValue = value
        End Set
    End Property

    Function callingMe(paramarray args() as string)
        Console.WriteLine(me.FirstName + "," + args(0))
    End Function
End Class

答案 1 :(得分:1)

您可以使用ParamArray接受可变数量的参数。

根据您在评论中的问题进行更新:要获得对调用者的引用,您必须将其作为单独的参数传递。请注意,所有固定参数必须位于ParamArray

之前
Function callingMe(caller As Object, ParamArray parameters() As String)
    For  i as Integer = 0  to parameters.Length -1 
        Console.WriteLine(parameters(i))
    Next i 
End Function

// Method call:
SomeObj.callingMe(Me, "1", "2", "3", ...)