Я попытался следующий код:C# и переменное число параметров
class Program: ProgParent
{
public int Max(params int[] op)
{
return 0;
}
public int Max(int i, params int[] op)
{
return 1;
}
public int Max(int i, int j, params int[] op)
{
return 2;
}
public static void Main(string[] args)
{
System.Console.WriteLine((new Program()).Max(5, 6, 7, 8));
System.Console.ReadKey();
}
}
Он выполняет, и использует самую специфическую функцию доступной. Но компилятор не дает никаких предупреждений или ошибок об этом. Зачем?
Ваш код не скомпилирован - первые две сигнатуры метода идентичны. После удаления одного из них это нормально. Почему бы и нет? –
Да, это была оригинальная версия, я просто хотел добавить новый метод здесь – Dutow
ваш код отлично подходит после удаления базового класса (класс Program вместо класса Program: ProgParent). Я не знаю, где ваша проблема? – Vimvq1987