Возможно ли иметь более одного метода main() в программе С#?

Возможно ли иметь более одного метода main() (с теми же параметрами) в консольном приложении С#? Если да, то как?

Ответ 1

У вас может быть несколько основных методов, вы можете указать, какой из них использовать в качестве точки входа для приложения вашим компилятором. См. this для более подробной информации

Пример:

using System;
using System.Collections.Generic;
using System.Text;


    namespace Multiple_MainClasses
    {
        class A
        {
            static void Main(string[] args)
            {
                Console.WriteLine("I am from Class A");
                Console.ReadLine();
            }
        }
        class B
        {
            static void Main(string[] args)
            {

                Console.WriteLine("I am from Class B");
                Console.ReadLine();
            }
        }
    }

Когда вы запустите этот код, вы получите ошибку компиляции. Чтобы разрешить переход к свойствам проекта в проводнике решений или нажмите ctrl + alt + L, перейдите на вкладку приложения и выберите "Класс" с помощью метода, который вы хотите выполнить, как показано ниже:

enter image description here

Ответ 2

Да - вы можете указать пользовательскую точку входа, если у вас есть несколько основных методов. csc/main содержит информацию об этом:

Этот параметр указывает класс, содержащий точку входа в программу, если более одного класса содержит метод Main.

csc MyClssesWithMain.cs /main:OneOfTheClasses

Примечание: методы Main должны быть в отдельных классах, поскольку у вас не может быть 2 метода с одинаковой сигнатурой в одном классе.

Ответ 3

Основной метод - это ваша точка входа в ваше приложение. На основе статей, предоставленных другими, он синтаксически действителен для определения нескольких основных методов, но при запуске приложения вам нужно выбрать один основной метод. Я думаю, что имеет смысл создать одну основную функцию и сделать ее гибкой, используя аргументы командной строки и т.д.