web-dev-qa-db-ja.com

「エントリポイントに適した静的な「メイン」メソッドが含まれていない」

以下のコードで何が問題なのか理解できません。

コンパイルしようとすると、次のメッセージが表示されます。

エントリポイントに適した静的な「メイン」メソッドが含まれていません。

これは私のコードです:

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;
        }

    }           
}
}

誰かが私が間違ったことを教えてください。

9
user2483549

すべてのC#プログラムにはエントリポイントが必要です。既定では、新しいc#Windowsフォームプロジェクトには、Program.csファイルにProgramクラスが含まれています。

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());
        }
    }
}

おそらくこれが欠落しているか、削除されています。

18
Matt Houser

プロジェクトは空のプロジェクトとして作成する必要があります。したがって、出力タイプはコンソールアプリケーションとして表示されます。クラスライブラリに変更すると、機能するはずです。

12
ManJan

コードの簡単な変更。 mainメソッドは 'Main'(大文字のM)である必要があります。

5
kaivalya patil

私自身、この問題を抱えていました。

Winformsプロジェクトを作成し、コードをリファクタリングすることにしました。プロジェクトにはUIが含まれなくなったため、Program.csファイルとwinformsファイルを削除して、同じエラーが発生するようにしました。

上記のMatt Houserのようにstatic void main()メソッドを再度追加するか、プロジェクトのプロパティに移動して、[アプリケーション]タブの出力タイプを[クラスライブラリ]に変更する必要があります。

3
Purplegoldfish

私もこの間違いを経験しました。プロジェクトプロパティ/アプリケーションタブ(出力タイプ:)にあるドロップダウンを変更しました。元の選択値は「クラスライブラリ」でしたが、「Windowsアプリケーション」に変更して同じエラーが見つかりました。今解決しました。

2
razamzai