Почему мы помещаем метод main()
всегда внутри class
в С#, тогда как в С++ он всегда помещается вне class
.
Почему основной метод в С# всегда помещается внутри класса, но не в С++
Ответ 1
По историческим причинам. С++ развился из C, который имел глобальную функцию main()
. С# намного моложе и был разработан с нуля. Одной из конструктивных особенностей С# является отсутствие глобальных функций, поэтому функция main
должна принадлежать классу.
Ответ 2
Разработчики языка С++ следовали примеру C, поэтому основная функция - простая функция.
Разработчики языка С# сделали выбор при разработке языка, что все методы должны быть частью классов.
Ответ 3
Потому что в .NET вы можете размещать методы только внутри типов. Вы не можете их плавать в пустом пространстве. С++ имеет свое наследие от C, который не является языком OOP, поэтому вы можете определять функции где угодно.
Ответ 4
Вы не можете поместить метод вне класса/структуры в С#. Каждый метод должен находиться в классе/struct
Ответ 5
Это соглашение. Это соответствует Java (также следует семантика наличия метода внутри класса).
Ответ 6
С# - полный объектно-ориентированный язык, где все рассматривается как объекты. Следовательно, Main() хранится внутри класса.