Задать вопрос
Luffy1
@Luffy1
Student, Junior .NET programmer, C#, JS, HTML/CSS

Как компилятор понимает, что первую функцию, которую нужно вызвать, будет именно Main()?

class Program
{
  public static void Main(string [] args)
  {

  }
  public static void DoSomething()
  {

  }
}

Почему компилятор вызывает именно Main, а не DoSomething? Main в таблице методов как-то по-особенному отмечена? Как он понимает, что нужно вызвать именно её?
  • Вопрос задан
  • 303 просмотра
Подписаться 1 Простой 3 комментария
Помогут разобраться в теме Все курсы
  • OTUS
    C# Developer. Professional
    6 месяцев
    Далее
  • Ulearn.me
    Основы программирования на примере C#. Часть 1
    1 неделя
    Далее
  • Ulearn.me
    Основы программирования на примере C#. Часть 2
    1 неделя
    Далее
Решения вопроса 1
Casper-SC
@Casper-SC
Программист (.NET)
В книге CLR via C# - Программирование на платформе Microsoft.NET Framework 4.5 на языке C#. 4-е издание на странице 37 в главе Исполнение кода сборки написано:
Далее основной поток вызывает определенный в библиотеке MSCorEE.dll метод, который инициализирует CLR, загружает сборку EXE, а затем вызывает ее метод Main, в котором содержится точка входа. На этом процедура запуска управляемого приложения считается завершенной.


Так же написано в документации Microsoft, что вызывается именно метод Main, если в качестве параметра компилятора -main не передать название другого метода.

Документация Microsoft:
Main() и аргументы командной строки
Запуск приложения
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
yarosroman
@yarosroman Куратор тега C#
C# the best
Мой ответ самый простой, мне это безразлично. Ну надо так, ну и ладно. Если, например, понимание работы GC ещё влияет на что-то, то это нет. И даже не интересно.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы