例如,c中的printf
可以使用任意数量的参数,例如printf("%d %d %s %s...",a,b,c,d,...
),并记录如下
printf( const char *format [, argument]... );
如何在C#中定义这些功能?
答案 0 :(得分:8)
使用params关键字:
void WriteAll(params object[] args) {
for(int i = 0; i < args.Length; i++)
Console.WriteLine(args[i]);
}
args将是一个包含您传递的所有参数的数组。请注意,它必须是最后一个正式参数。
答案 1 :(得分:1)
使用params object [] arg作为最后一个参数。 http://msdn.microsoft.com/en-us/library/w5zay9db%28v=vs.71%29.aspx 查看更多详情
答案 2 :(得分:1)
private void Print(params object[] values)
{
foreach (var item in values)
{
Console.WriteLine(item);
}
}
此代码将使用“params”关键字将您在对象数组中发送的每个项目打印到控制台。您可以使用任意数量的参数调用此方法(或不使用)。
链接: http://msdn.microsoft.com/en-us/library/w5zay9db(v=vs.110).aspx
答案 3 :(得分:1)
在c#中,您将使用 params 关键字。
public static void UseParams2(params object[] list)
{
for (int i = 0; i < list.Length; i++)
{
Console.Write(list[i] + " ");
}
Console.WriteLine();
}
答案 4 :(得分:0)
只需传递带参数的对象
private void MyVoid(MyParameterObject params)
{
}
答案 5 :(得分:0)
在这种情况下有几种方法:
您可以定义一个type
,其中包含您在方法之间传递和返回所需的所有字段。比简单object array
更好,因为它是类型安全的。
您可以定义字典所在的位置参数名称和值。比简单object array
更好,因为它是类型安全的。
(这取决于参数的数量,以及代码的使用逻辑)您可以定义相同功能的超载。
func A (AA aa)
func A(AA aa, BB bb =null)
func A(AA aa, BB bb = null, CC cc = null)
依旧......