C#使用Params关键字的方法

3

使用params关键字的方法示例是String.Format("", foo, bar, baz)

但是我如何编写一个接受枚举数组的方法,例如:

class MyClass
{
    public enum Foo { Bar, Baz }

    public static void MyMethod(params enum[] Foo) {}

    public static void TestMethod()
    {
        MyMethod();
        MyMethod(Foo.Bar);
        MyMethod(Foo.Baz);
        MyMethod(Foo.Bar, Foo.Baz);
    }
}
3个回答

10
public static void MyMethod(params Foo[] values) { }

3
尝试使用这个替代方案。
class MyClass
{
public enum Foo { Bar, Baz }

public static void MyMethod(params Foo[] foos) {}

public static void TestMethod()
{
    MyMethod();
    MyMethod(Foo.Bar);
    MyMethod(Foo.Baz);
    MyMethod(Foo.Bar, Foo.Baz);
}

}


3

Err..try:

public static void MyMethod(params Foo[] foo) { }

谢谢你的回复。你知道我该如何将 Foo 枚举数组与一些默认值合并吗?例如,我传递 MyMethod(Foo.Baz),但我将 Foo.Bar 设置为默认值,因此 foo 将等于 [Foo.Bar, Foo.Baz] - RyanScottLewis
不,这不会自动发生。最接近的方法是要么删除“params”,并使用适当重载的方法,在其中您可以显然为第一个参数指定默认值,并将第二个参数传递给接受两个参数的方法。或者,在C# 4.0中,我们将拥有可选和命名方法参数。 - Wim

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接