Почему метод Main частный? - PullRequest
47 голосов
/ 24 июня 2010

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

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

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

Ответы [ 4 ]

48 голосов
/ 24 июня 2010

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

21 голосов
/ 24 июня 2010

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

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

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

0 голосов
/ 13 декабря 2018

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

public class MainMethod
{
    private  static void Main(string[] args)
    {
        Console.WriteLine("Hello World !!");
    }
}
0 голосов
/ 19 февраля 2014

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

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

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