例如,如果我有一个如下所示的函数调用
Function callingMe()
Exit Function
我的函数调用如下
SomeObj.callingMe('1','2','3','4','5') // Variable number of arguments
在callingMe()函数内部,我想知道在上面的情况下传递的参数,即1,2,3,4,5和Object,即SomeObj。
答案 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", ...)