public
は、タイプ(たとえばpublic class Foo
)とタイプメンバー(クラスのメソッド、プロパティ、フィールドなど)のアクセス修飾子です(button3_Click
など)。
メソッド内のローカル変数をpublicとして宣言しようとしていますが、これは許可されていません。
コンパイルエラーを修正する1つの方法は、public int x = 5;
ではなく、button3_Click
:int x = 5;
のローカル変数宣言からアクセス修飾子を削除することです。変数x
にbutton3_Click
でアクセスする必要がある場合にのみ使用し、button3_Click
が呼び出されるたびに新しい変数がインスタンス化されるようにしてください。
コンパイルエラーを修正する別の方法は、x
をローカル変数からフィールドに変更することです。 x
がどこに定義されているかを変更することにより、スコープのローカル変数ではなく、Form1
のフィールドとして宣言することができます。
試してみてください。
public partial class Form1 : Form
{
public int x;
public Form1()
{
InitializeComponent();
}
private void button3_Click(object sender, EventArgs e)
{
x = 5;
MessageBox.Show(x.ToString());
}
}
、あなたのプログラムの中で他のメソッドからx
フィールドにアクセスする必要がある、またはあなたがForm1
インスタンス上button3_Click
方法の複数の呼び出し間で値を保存したい場合は、このオプションは好適です。これらのケースであれば
、あなたもx
の読み取り、書き込み、および/または計算をよりきめの細かい制御を得るために、代わりにfieldのx
propertyを作るために決めることができました。
出典
2016-05-07 19:00:04
AGB
メソッド内で 'public'キーワードはどのように使用されますか? – shahkalpesh
なぜ 'public int x = 5;'? –
私はちょうどイベントハンドラの中でpublicオブジェクトを宣言してテストします – sarahHH