Книга: C# для профессионалов. Том II

Точка входа: Main() и main()

Точка входа: Main() и main()

Следующие элементы в примерах Hello World являются точками входа программ. В случае C++ это будет глобальная функция с именем main(). C# делает примерно то же самое, хотя в C# именем является Main(). Однако в то время как в C++ функция main() определена вне любого класса, версия C# определена как статический член класса. Это связано с тем, что C# требует, чтобы все функции и переменные были членами класса или структуры C# не допускает никаких элементов верхнего уровня в программе, за исключением классов и структур. В этом отношении C# может рассматриваться как язык, обеспечивающий более строгое следование объектно-ориентированной практике, чем это делает C++. Существенное использование глобальных и статических переменных и функций в коде C++ считается в любом случае плохой практикой программирования.

Конечно, требование, чтобы все было членом класса, приводит к вопросу о том, где должна находиться точка входа программы. Ответ состоит в том, что компилятор C# ищет статический член метод с именем Mаin(). Это может быть член любого класса в исходном коде, но только один класс должен иметь такой метод. (Если более одного класса определяем этот метод, необходимо использовать ключ компилятора, чтобы указать компилятору какой из них должен быть точкой входа программы.) Подобно своему эквиваленту в C++ Main() может возвращать либо void, либо int, хотя более распространено int. Также, подобно своему эквиваленту в C++, Main() получает такой же эквивалент аргументов либо множество произвольных параметров командной строки, переданных в программу как массив строк, либо не получает никаких параметров. Но как можно видеть из кода, строки определены в C# более интуитивно понятным образом, чем в C++. Каждый массив хранит число элементов, которое он содержит, а также сами элементы, поэтому нет необходимости передавать отдельно число строк в массиве в коде C#, как делает C# с помощью параметра argc.

Оглавление книги


Генерация: 1.656. Запросов К БД/Cache: 3 / 0
поделиться
Вверх Вниз