Подтвердить что ты не робот

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

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

4b9b3361

Ответ 1

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

Ответ 2

Я бы поставил вопрос. Какова неотложная выгода от реализации функции, которая позволяет Main быть методом экземпляра? Особенности дороги; если нет убедительной выгоды, они не реализуются.

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

Ответ 3

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

Ответ 4

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

Ответ 5

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

Ответ 6

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

Ответ 7

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

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

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


ссылка: http://en.wikipedia.org/wiki/C_Sharp_(programming_language

Ответ 8

для всех объектов класса содержит основной метод и другие методы и переменные, есть отдельные копии каждой переменной и методы, содержащиеся всеми объектами, но копия основного класса является только одной между ними, и поэтому для копирования между числом объектов, мы должны сделать основной метод статическим.