我有以下程序
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
class Program
{
public static string Foo<T>(params T[] items)
{
return "A";
}
public static string Foo<T>(IEnumerable<T> items)
{
return "B";
}
static void Main()
{
List<int> items = new List<int>(){0,1,23};
Console.WriteLine(Foo(items));
Console.WriteLine(Foo("XXX"));
}
}
哪个输出
A
A
而不是
B
A
鉴于 List 是 IEnumerable 的子类,为什么泛型params
形式较早地与编译器匹配并给出了意外的答案。