Почему статична точка входа основного метода в большинстве программ C#?

Почему статична точка входа основного метода в большинстве программ C#?

37
задан David Basarab 3 March 2010 в 14:08
поделиться

7 ответов

Чтобы вызвать метод экземпляра, вам нужен экземпляр объекта. Это означает, что для запуска вашей программы CLR потребуется создать экземпляр, скажем, Program , чтобы вызвать метод Main . Следовательно, конструктор Program будет запускаться перед Main , что полностью лишает цели наличия main.

60
ответ дан 27 November 2019 в 04:30
поделиться

Потому что в противном случае ему пришлось бы создать объект, а запуск конструктора мог вызвать отрицательные побочные эффекты.

1
ответ дан 27 November 2019 в 04:30
поделиться

Статические методы могут выполняться без создания экземпляра. По соглашению они имеют метод main в качестве метода, вызываемого по умолчанию.

0
ответ дан 27 November 2019 в 04:30
поделиться

В противном случае, как вы могли бы создать свой экземпляр класса перед основным?

1
ответ дан 27 November 2019 в 04:30
поделиться

Среда выполнения .NET вызывает метод Main. (Примечание: Main также может быть вызван из другого места, например, из кода Main() в другом методе ExampleClass). Ключевое слово static делает метод доступным без экземпляра ExampleClass. Таким образом, метод Main является точкой входа и должен быть объявлен статическим.

В противном случае программа потребует экземпляр, а любой экземпляр потребует программу.

Чтобы избежать этой неразрешимой круговой зависимости main используется как точка входа


ссылка : http://en.wikipedia.org/wiki/C_Sharp_(язык_программирования

0
ответ дан 27 November 2019 в 04:30
поделиться

Я бы перевернул вопрос. В чем убедительное преимущество реализации функции, которая позволяет Main быть методом экземпляра? Функции дорогие; если нет убедительных преимуществ, они не будут реализованы.

У вас есть действительно веская причина, по которой Main должно быть разрешено быть методом экземпляра?

16
ответ дан 27 November 2019 в 04:30
поделиться

Концептуально у вас есть только один экземпляр статического объекта. И статический метод хорошо соответствует идиоме единственной начальной точки программы. Разработчики языка могли бы создать специальный программный класс для использования с основным методом, но решили создать единственную статическую функцию в качестве точки входа. На некоторых уровнях это действительно просто выбор дизайна.

4
ответ дан 27 November 2019 в 04:30
поделиться
Другие вопросы по тегам:

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