Почему главный метод закрыт?

Новый шаблон проекта консоли создает метод Main следующим образом:

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

Почему не нужно, чтобы ни метод Main, ни класс Program не публиковались?

Ответ 1

Точка входа программы отмечена директивой IL .entrypoint. Не имеет значения, является ли метод или класс общедоступным или нет, все, что имеет значение, является этой директивой.

Ответ 2

Метод Main не должен вызываться кем-либо.

Он фактически помечен как точка входа для выполнения в самом EXE и, следовательно, по умолчанию не имеет внешних вызывающих абонентов.

Если вы ХОТИТЕ, вы можете открыть его для вызова путем маркировки public, например. если вы превращаете консольное приложение в API.

Ответ 3

Открытое или закрытое ключевое слово не имеет значения в этом случае, оно полностью зависит от использования и объема приложения. Используйте нижеуказанные ключевые слова в разных сценариях.

1) Public. Если мы хотим инициировать точку входа любой внешней программой, вам может потребоваться сделать ее общедоступной, чтобы она была доступна. 2) Private. Если мы знаем, что для приложения нет внешнего использования, тогда лучше сделать его приватным, поэтому внешнее приложение не сможет его получить.

Ответ 4

Да. Вы можете пометить метод main() как открытый, закрытый или защищенный. Если вы хотите инициировать точку входа какой-либо внешней программой, вам может потребоваться сделать ее общедоступной, чтобы она была доступна. Вы можете пометить его как частный, если вы знаете, что приложение не используется извне, тогда лучше сделать его закрытым, чтобы к нему не обращались внешние приложения.

public class MainMethod
{
    private  static void Main(string[] args)
    {
        Console.WriteLine("Hello World !!");
    }
}