Почему не получается создать перегруженный метод в C#?
Я только учусь. Уже больше часа безуспешно потратил на поиск решения. Как понял проблема из-за какого-то верхнего уровня. Может кто знает как решить эту проблему? Пример в фотографии
Ответы (2 шт):
В чём разница между методом и функцией? В том, что метод строго привязан к классу. Вы создали функции внутри исполняемого файла Program.cs. Вы можете это сделать, но это не является ошибкой, но только в рамках класса
Отвечу, чтобы был понятный и полный ответ.
Ваш код эквивалентен следующему (см. комментарий EvgeniyZ):
public class Program {
public static void Main() {
void Test (int a) {
Console.WriteLine(a);
}
void Test (string a) {
Console.WriteLine(a);
}
}
}
Поэтому получилось, что Test - зто не методы, которые можно перегружать, а локальные функции метода Main.
Чтобы получить то, что вы хотите, вам нужно пересоздать проект без использования операторов верхнего уровня (или создать отдельный класс) и написать следующее:
public class Program {
static void Test (int a) { // public as required
Console.WriteLine(a);
}
static void Test (string a) { // public as required
Console.WriteLine(a);
}
public static void Main() {
// main code here
}
}
Это и будет перегрузка метода Test в классе Program.