具有空参数的C#方法

时间:2018-11-25 13:54:07

标签: c#

有人可以解释为什么C#将方法static long Foo(params object[] args)用于第二个表达式Foo(null)吗? Foo(object a)也具有正确的签名。

我如何自己找到答案?我试图浏览ILDASM,但这没有帮助:(。

class Bar {};

static short Foo<T>(params T[] args)
{
    return 4;
}

static long Foo(params object[] args)
{
    return 3;
}

static int Foo(object a, object b)
{
    return 2;
}
static byte Foo(object a)
{
    return 1;
}

static void Main(string[] args)
{
    Console.WriteLine(Foo() + Foo(null) + Foo(new Bar()) + Foo(new Bar(), new Bar()));
}

0 个答案:

没有答案