Программа не содержит статического метода main

Программа не содержит статического метода main

Pirnazar

Well-known member

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

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

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

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

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

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

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

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

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

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

Читайте также:  Настройка тонарма вега 109

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

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

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

Программа не содержит статического метода "Main", подходящего для точки входа Program does not contain a static ‘Main’ method suitable for an entry point

Эта ошибка возникает, когда в коде, создающем исполняемый файл, не найден статический метод Main с правильной подписью. This error occurs when no static Main method with a correct signature is found in the code that produces an executable file. Это также происходит, если функция точки входа, Main , определена с неправильным регистром, например main строчными буквами. It also occurs if the entry point function, Main , is defined with the wrong case, such as lower-case main . Сведения о правилах, применяемых к методу Main , см. в разделе Main () и аргументы командной строки. For information about the rules that apply to the Main method, see Main() and Command-Line Arguments.

Если у метода Main есть модификатор async , убедитесь, что Выбранная C# версия языка 7,1 или выше. If the Main method has an async modifier, make sure that the selected C# language version is 7.1 or higher.

Читайте также:  Как печатать на кнопочном телефоне

Метод Main является обязательным только при компиляции исполняемого файла, то есть если указан параметр компилятора -target: exe или -target: winexe . The Main method is only required when compiling an executable file, that is, when -target:exe or -target:winexe compiler option is specified. Следующие типы проектов Visual Studio по умолчанию указывают один из этих параметров: The following Visual Studio project types specify one of these options by default:

  • Консольное приложение Console application
  • Приложение ASP.NET Core ASP.NET Core application
  • приложение WPF WPF application
  • приложение Windows Forms Windows Forms application

Пример Example

Следующий пример приводит к возникновению ошибки CS5001: The following example generates CS5001:

Что делать, если я просто хочу создать проект, который содержит кучу библиотечных функций? Другими словами, не требуется никакого основного метода. Казалось, он компилируется минуту назад, а затем я добавил еще один .файл CS и теперь я столкнулся с этим сообщением об ошибке.

6 ответов

создайте проект библиотеки классов .NET, если вам нужен только проект библиотеки. Если это проект, который уже существует, вы можете установить тип вывода проекта в DLL ("Библиотека Классов") вместо исполняемого файла ("Приложение Windows"/"Консольное Приложение") в свойствах проекта.

какой тип проекта вы создаете? Похоже, вы хотели создать библиотеку классов, но случайно создали исполняемую сборку. Убедитесь, что вы действительно создаете сборку библиотеки классов (т. е. ".dll файлы" не ".исполняемый.)"

Если вы не используете Visual Studio и компилируете свой код с помощью csc.exe затем убедитесь, что вы указываете /target:library для компиляции кода в библиотеку.

вы хотите сделать проект типа библиотека классов. Я считаю, что вы можете изменить тип проекта в настройках свойств проекта.

Читайте также:  Как делать комментарии в ворде

или вы можете использовать проверенный и истинный пустой основной метод

У меня есть решение. Действительно простой. Вы написали static void main с нижним регистром. Вы должны написать это так: static void Main ()

Ссылка на основную публикацию
Проверить принадлежит ли прямая плоскости
Предлагаю вам воспользоваться онлайн калькулятором чтобы найти уравнение плоскости. Воспользовавшись онлайн калькулятором, вы получите детальное пошаговое решение вашей задачи, которое...
Пример анализа текста публицистического стиля речи
(1) “Всё, о Люцилий, не наше, а чужое, только время наше собственность. (2) Природа предоставила в наше владение только эту...
Принцип работы пьезоэлемента в зажигалке
Многие, кто пользуются газовыми плитами, знают про такую удобную в хозяйстве вещь. Пьезозажигалка, висящая рядом с плитой, заменяет сотни коробков...
Программа мрр что это такое
Цель: изучить возможности программы МРР Скачать: Вложение Размер urok_11.zinaida_anatolevna.pptx 2.54 МБ Предварительный просмотр: Подписи к слайдам: Изучение возможностей МРР Цель...
Adblock detector