Следующий пример кода:
T
T[]
T[]
Хотя первые две строки соответствуют ожиданиям, почему компилятор выбрал массив параметров для обычного массива?
public class A
{
public void Print(T t)
{
Console.WriteLine("T");
}
public void Print(params T[] t)
{
Console.WriteLine("T[]");
}
}
class Program
{
static void Main(string[] args)
{
A a = new A();
a.Print("string");
a.Print("string","string");
a.Print(new string[] {"a","b"});
}
}
Подробнее здесь: https://stackoverflow.com/questions/711 ... arams-work