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 в таблице методов как-то по-особенному отмечена? Как он понимает, что нужно вызвать именно её?
  • Вопрос задан
  • 298 просмотров
Решения вопроса 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 ещё влияет на что-то, то это нет. И даже не интересно.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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