意外行为 - 使用params数组重载方法

时间:2017-10-26 18:35:21

标签: c# .net argument-deduction

我的课程:

public class Foo
{
    public override string ToString()
    {
        return "Bar";
    }
    public string ToString(params int[] values)
    {
        return "Buz";
    }
    public void DoFoo()
    {
    }
    public void DoFoo(params int[] values)
    {
    }
}

在类型ToString()的表达式上调用Foo时,编译器选择带params的重载(传递空int数组)。但是,当我调用DoFoo()时,它会按预期选择没有params的重载。是什么原因?

0 个答案:

没有答案