c#中方法中的多个params类型参数

本文关键字:params 类型参数 方法 | 更新日期: 2023-09-27 18:21:58

在方法中使用多个params类型参数的情况下,由于我在尝试使用多个arams类型参数时出错,有什么替代方法?

c#中方法中的多个params类型参数

使用普通数组:

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的类型,这不是正确的解决方案。