Обложка канала

C# 1001 notes

Регулярные короткие заметки по C# и .NET. Просто о сложном для каждого.

C# 1001 notes

8 лет назад
Открыть в
Может ли Main быть public?

TL;DR
Может, но Microsoft не рекомендует:

Main must be static and it need not be public.

🔶 Почему может? Потому что язык C# и платформа .NET не накладывают никаких ограничений на модификаторы доступа для метода Main и следующий код будет успешно скомпилирован:

class Program
{
static public void Main()
{
Console.WriteLine("This would compile..");
}
}

🔶 Почему не рекомендуется? Потому что предполагается, что данный метод будет вызван лишь 1 раз исполняющей средой (CLR) и является точкой входа в ваше приложение.

В случае же наличия у него модификатора доступа public, он станет доступен для вызова из других частей вашего приложения.

💬 Тем, кто так же как и я озадачился закономерным вопросом "А как на самом деле вызывается метод Main и что происходит до него?" я прикладываю эту ссылку на строку в CoreCLR, ответственную за его вызов 😉

#basics