c#中方法中的多个params类型参数
本文关键字:params 类型参数 方法 | 更新日期: 2023-09-27 18:21:58
在方法中使用多个params类型参数的情况下,由于我在尝试使用多个arams类型参数时出错,有什么替代方法?
使用普通数组:
public void Method( /*remove params*/ string[] first
, /*optionally remove params*/ int[] second
)
{ }
称之为:
Method(new string[] { ... }, new int[] { ... } );
根据MSDN:,您可以选择将最后一个params
保持原样,因为每个方法只能有一个,并且必须是最后一个
方法声明中的params关键字之后不允许有其他参数,并且方法声明中只允许有一个params关键字。
为了简单起见,我会使用Patrick Hofman提供的解决方案。尽管如此,无论何时,只要您想做一些更特定于类型并包含更广泛类型的事情,我都认为您应该使用params
。
public class Bar { }
public void Foo(params object[] objs)
{
foreach(object obj in objs)
{
Type typeofObject = obj.GetType();
if (typeofObject == typeof(string))
{
// Its a string
}
else if (typeofObject == typeof(int))
{
// Its an integer
}
else if (typeofObject == typeof(Bar))
{
// Its an Bar object
}
}
}
调用方法:
Bar bar = new Bar();
this.Foo("hi", 1, bar);
但是,如果你只有2/3的类型,这不是正确的解决方案。