我无法通过典型渠道找到这个问题的答案。
在Python中,我可以使用以下函数定义
def do_the_needful(**kwargs):
# Kwargs is now a dictionary
# i.e. do_the_needful(spam=42, snake='like eggs', spanish='inquisition')
# would produce {'spam': 42, 'snake': 'like eggs', 'spanish': 'inquisition' }
我知道.NET有ParamArray
,它产生一系列未命名的参数,类似于Python中的*args
语法...... .NET是否等同于**kwargs
,或类似的东西?
答案 0 :(得分:4)
您要查找的内容称为可变参数函数。如果您想知道如何在各种编程语言中实现它,最好是查看Wikipedia page有关它的信息。
所以,根据维基百科的说法,在C#和VisualBasic中实现一个可变函数是这样的:
其他语言,例如C#,VB.net和Java使用不同的语言 方法 - 它们只允许相同数量的可变参数 要传递给可变函数的(超级)类型。在方法里面 它们只是收集在一个数组中。
C#示例
public static void PrintSpaced(params Object[] objects) { foreach (Object o in objects) Console.Write(o + " "); } // Can be used to print: PrintSpaced(1, 2, "three");
VB.Net示例
Public Shared Sub PrintSpaced(ParamArray objects As Object()) For Each o As Object In objects Console.Write(o & " ") Next End Sub
'可用于打印:PrintSpaced(1,2,“三”)