error CS1739: Наиболее подходящий перегруженный метод для "WriteLine"
Почему не работает код?
using static System.Console;
...
WriteLine(
format:"{0} {1} {2} {3}",
arg0: "Type",
arg1: "Bytes",
arg2: "Min",
arg3: "Max"
);
выдает ошибку:
error CS1739: Наиболее подходящий перегруженный метод для "WriteLine" не имеет параметр с именем "arg3".
Ответы (1 шт):
Потому что не существует перегрузки метода, которая явно принимает 5 параметров Console.WriteLine. При использовании именованных параметров C# будет считать каждый параметр отдельно (искать по имени) и не будет пытаться использовать params.
Если вы хотите использовать перегрузку с params, то указывать arg0 и т.д. не нужно:
WriteLine(
format:"{0} {1} {2} {3}",
"Type",
"Bytes",
"Min",
"Max"
);
Или просто использовать интерполяцию строк (предположим, что у вас строки не захардкожены, а являются некими параметрами arg0 и т.д.):
WriteLine($"{arg0} {arg1} {arg2} {arg3}");
При использовании именованных параметром, можно указать C# использовать перегрузку с params, но тогда нужно будет явно создавать массив и мне кажется такой синтаксис ничем не лучше интерполяции:
WriteLine(
format:"{0} {1} {2} {3}",
arg: new[] { "Type", "Bytes", "Min", "Max" }
);