是否有可以将方法参数转换为数组的Visual Basic.NET方法?
例如,而不是:
Function functionName(param1 as object, param2 as object) as object
ArrayName = {param1, param2}
你可以做点什么:
Function functionName(param1 as object, param2 as object) as object
ArrayName = MethodThatGetsAllFunctionParams
真的很好奇。
答案 0 :(得分:3)
看看ParamArrays。我认为这可以解决你的要求吗?
http://msdn.microsoft.com/en-us/library/538f81ec%28v=VS.100%29.aspx
编辑:
您可以使用当前的功能签名初始化自定义集合
Public Class CustomCollection(Of T)
Inherits System.Collections.Generic.List(Of T)
Sub New(param1 As T, param2 As T)
MyBase.New()
MyBase.Add(param1)
MyBase.Add(param2)
End Sub
End Class
然后使用
调用该函数Dim result = functionName(New CustomCollection(Of Object)(param1, param2))
函数签名将更改为:
Public Function functionName(ByVal args As CustomCollection(Of Object)) As String
答案 1 :(得分:3)
没有办法做到这一点。语言本身不允许这样做。您可以使用反射来获取执行StackFrame
的当前执行方法。但即便如此it’s still impossible也要检索参数值。
唯一的解决方案是通过在方法调用中引入切入点来“修补”应用程序。相关联的答案提到了这种可能性。