以下のコードで何が問題なのか理解できません。
コンパイルしようとすると、次のメッセージが表示されます。
エントリポイントに適した静的な「メイン」メソッドが含まれていません。
これは私のコードです:
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;
}
}
}
}
誰かが私が間違ったことを教えてください。
すべての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());
}
}
}
おそらくこれが欠落しているか、削除されています。
プロジェクトは空のプロジェクトとして作成する必要があります。したがって、出力タイプはコンソールアプリケーションとして表示されます。クラスライブラリに変更すると、機能するはずです。
コードの簡単な変更。 mainメソッドは 'Main'(大文字のM)である必要があります。
私自身、この問題を抱えていました。
Winformsプロジェクトを作成し、コードをリファクタリングすることにしました。プロジェクトにはUIが含まれなくなったため、Program.csファイルとwinformsファイルを削除して、同じエラーが発生するようにしました。
上記のMatt Houserのようにstatic void main()メソッドを再度追加するか、プロジェクトのプロパティに移動して、[アプリケーション]タブの出力タイプを[クラスライブラリ]に変更する必要があります。
私もこの間違いを経験しました。プロジェクトプロパティ/アプリケーションタブ(出力タイプ:)にあるドロップダウンを変更しました。元の選択値は「クラスライブラリ」でしたが、「Windowsアプリケーション」に変更して同じエラーが見つかりました。今解決しました。