Точка входа в программу на языке c#

В предыдущей статье был написан исходный код нашей первой программы на языке c#, которая содержит: один класс по имени Program, два метода для работы с консолью и один статический метод по имени Main, который так же является точкой входа в программу.

Метод Main или точка входа в программу

Если говорить простым языком, то точка входа это место, в языке c# представленное статическим методом Main, с которого начинает выполнение ваша программа при условии, что данная программа (приложение) является исполняемым, то есть будет иметь расширение (.exe).

То есть даже если ваш класс или несколько классов будут содержать 20, 30 или более разных методов, всё равно выполнение программы начинается со статического метода Main.

точка входа - статический метод Main

В вашем приложении Вы так же можете создать несколько классов и в каждый из них поместить статический метод Main, в результате ваша программа будет иметь несколько точек входа. Данный способ можно применять, например, для отладки ваших приложений при большом количестве исходного кода.

Но, тогда возникает вопрос, если точек входа несколько, тогда с какого места начнёт выполнение ваша программа?

Для примера добавим в исходный код нашей программы ещё один класс по имени Test, внутри которого поместим точно такой же статический метод Main, как в классе Program.

точка входа в программу

Если сейчас попытаться выполнить код, то компилятор выдаст ошибку:

Данная ошибка возникает, потому что в программе присутствует два статических метода Main, что приводит к возникновению конфликта, если сейчас перейти в свойства текущего проекта (картинка ниже), то можно найти пункт: startup object, который по умолчанию имеет значение: Not set.


Наш канал в telegram канал codeby

Пишем об информационной безопасности, методах защиты информации, о программировании. Не пропускай новости с кодебай, будь в тренде !  Подробнее ...

Это значит, что если ваше приложение содержит хотя бы один статический метод Main, то тогда по умолчанию данный метод и будет являться точкой входа в программу, но если в приложении несколько таких методов, как в нашем примере, то тогда необходимо явно указать точку входа в программу.

Как явно указать точку входа?

Перейдите в окно Solution Explorer и нажмите правую кнопку мыши на имени проекта, в нашем случае имя проекта Lab1. После чего в списке выберите пункт Properties, в результате должно появиться вот такое окно.

startup object

Находим пункт startup object и в выпадающем списке явно указываем класс, который будет содержать точку входа в программу. Для примера выберем Example.Test, таким образом, мы явно укажем, что в качестве точки входа в нашей программе мы будем использовать статический метод Main, который находиться в классе Test, пространства имён Example.

Если сейчас запустить нашу программу, то получим вот такой результат.

новая точка входа

Если точка входа не найдена, то есть наша программа не будет содержать статический метод Main, или данный метод будет иметь не правильную синтаксическую конструкцию, к примеру он не будет иметь ключевое слово static, то Вы так же получите ошибку на этапе компиляции.

Ещё немного полезной информации о статическом методе Main можно найти в статье: Пишем исходный код программы на языке c#.

Читайте также:


Наш канал в telegram канал codeby

Пишем об информационной безопасности, методах защиты информации, о программировании. Не пропускай новости с кодебай, будь в тренде !  Подробнее ...

Похожие темы

Как создать и добавить колонку в элементе DataGrid... Создание и добавление колонки в DataGridView В этой статье показано, как программно создать и добавить колонку в DataGridView. Создадим новое прил...
Как написать свой V-Encryptor с самоудалением на С... Сегодня я покажу как написать простой и уже опробованный в разных местах шифровальщик (не детектится антивирусами), который после завершения процесс...
Как изменить код программы без исходника... Как изменить код программы, если потерян исходник Бывают ситуации, когда под рукой нет исходника, а Вам срочно требуется внести изменения в коде, нап...
c# DataGridView свойство ColumnCount Свойство ColumnCount элемента управления DataGridView Свойство ColumnCount элемента управления DataGridView обычно используется для решения следующих...
c# Функция автозавершения для textbox... Автозавершение при вводе данных в textbox В этой небольшой статье хочу показать на простом примере, как добавить возможность автозавершения при вводе...