не содержит статического метода main, подходящего для точки входа

Я не могу понять, что не так с моим кодом ниже.

Когда я пытаюсь скомпилировать, я получаю сообщение:

не содержит статического основного метода, подходящего для точки входа.

Это мой код:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace RandomNumberGenerator
{

public partial class Form1 : Form
{
    private const int rangeNumberMin = 1;
    private const int rangeNumberMax = 3;
    private int randomNumber;

public Form1()
{            
        randomNumber = GenerateNumber(rangeNumberMin, rangeNumberMax);
}

private int GenerateNumber(int min,int max)
    {
        Random random = new Random();
        return random.Next(min, max);
    }

private void Display(object sender, EventArgs e)
    {                       
        switch (randomNumber)
        {
            case 1:
            MessageBox.Show("A");
            break;
            case 2:
            MessageBox.Show("B");
            break;
            case 3:
            MessageBox.Show("C");
            break;
        }

    }           
}
}

Может кто-нибудь, пожалуйста, скажите мне, где я ошибся.


person user2483549    schedule 13.06.2013    source источник
comment
Random random = new Random(); return random.Next(min, max); ничего нового. Сделать random экземпляр верхнего уровня (членом класса).   -  person nawfal    schedule 13.06.2013
comment
У вас есть файл Program.cs в вашем проекте? Если нет, то этого не хватает.   -  person Matt Houser    schedule 13.06.2013
comment
Где находится класс программы?   -  person Emond Erno    schedule 13.06.2013
comment
Кстати, тема, если ваш вопрос не имеет ничего общего с вашей проблемой.   -  person Matt Houser    schedule 13.06.2013


Ответы (7)


Каждой программе C# нужна точка входа. По умолчанию новый проект C# Windows Forms включает класс Program в файле Program.cs:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace StackOverflow6
{
    static class Program
    {
        /// <summary>
        /// The main entry point for the application.
        /// </summary>
        [STAThread]
        static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new Form1());
        }
    }
}

Вы, вероятно, пропустили это или удалили это.

person Matt Houser    schedule 13.06.2013

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

person ManJan    schedule 24.10.2013

простое изменение кода. основной метод должен быть «Основной» (Capital M).

person kaivalya patil    schedule 16.02.2016

У меня просто была эта проблема.

Я создал проект winforms, решил реорганизовать свой код, и проект теперь не будет содержать пользовательский интерфейс, поэтому я удалил файлы Program.cs и winforms только для того, чтобы получить ту же ошибку, что и вы.

Вам нужно либо повторно добавить метод static void main(), как упоминал Мэтт Хаузер, либо зайти в свойства проекта и изменить тип вывода на вкладке «Приложение» на «Библиотека классов».

person Purplegoldfish    schedule 13.07.2013

Я также испытал это неправильно. Я изменил раскрывающийся список, расположенный на вкладке «Свойства проекта» / «Приложение» (Тип вывода:). Исходным выбранным значением было «Библиотека классов», но я изменил его на «Приложение Windows» и обнаружил ту же ошибку. Теперь решил.

person razamzai    schedule 02.05.2014

Поздно, но для меня это был тип проекта «Консольное приложение», но «Действие сборки» в свойствах файла было установлено на «Нет». Изменил его на «Компилировать», и все было в порядке.

person Kevin S. Miller    schedule 02.03.2020

Возможно, вы удалили файл программы из своего проекта. Просто добавьте файл Program.cs, и ваша проблема будет решена

person sachin    schedule 28.06.2020