Спонсор публикаций Cyber-512

Готовим специалиста в области ИБ  - Воспитаем специалиста в области ИБ с нуля до начального уровня. После обучения сможете оказывать услуги по проведению тестирования на проникновение ( легальный хакинг )

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

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

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

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

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

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

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

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

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

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

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

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


Спонсор публикаций BlackDiver

Обучение тестированию на проникновение  - Обучению тестированию на проникновение от BlackDiver. Базовый курс

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

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

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

startup object

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

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

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

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

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

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


Генеральный партнер codeby Genesis Hackspace

Genesis HS  - физическое место, где собираются увлеченные техникой, IT, электроникой, роботами и физикой люди.

Похожие темы

c# Как получить названия всех месяцев?... Быстрое получение названий всех месяцев Довольно часто при разработке приложений требуется предоставить пользователю названия всех месяцев, например ...
Работа с СУБД MySQL в C# Работа с базой данных MySQL в C# Рассмотрим простенькую задачку. У нас есть сайт, управление, которым осуществляется с помощью cms WordPress, а все д...
Пространства имен в С++ Известен модульный подход к программированию, согласно которому программу нужно рассматривать как совокупность модулей, каждый из которых предст...
c# Шпаргалка для работы с папками и подпапками... c# Шпаргалка для работы с папками и подпапками Перед началом работы подключите пространство имён System.IO Это можно выполнить как вручную, добави...
Работа с реестром Windows на языке c#... Реестр Windows и язык c# Если требуется хранить какую-то информацию, то частенько для этого используется реестр. Реестр Windows представляет собой ба...