http://bbs.wankuma.com/index.cgi?mode=al2&namber=36656
親フォームから子フォームのメッソドを使用したい(C# と VB.NET の質問掲示板より)
上記で
ぱぱいやんさん
が、それなりにわかりやすいサンプルコードを書いている訳ですが、伝わらなかったみたいです。
わかりやすい説明だと思うんだけどなー
□投稿者/ ぱぱいやん (35回)-(2009/06/03(Wed) 13:37:36)
変数には有効な範囲があります。
スコープといいます。
スコープは、ブロックの中だけで有効です。
例えば、以下はエラーになります。
--------------------
{
int a = 0;
}
{
Console.WriteLine(a);
}
--------------------
理由は、変数a は、ブロック内でのみ有効だからです。
以下は正しく動きます。
--------------------
{
int a = 0;
{
Console.WriteLine(a);
}
}
--------------------
スコープは、宣言したブロック以下のブロックでも有効だからです。
あたなのコードをスコープに関係する部分だけ抜き出すと次のようになります。
class Hoge
{
Form2 f2 = null; // この変数のスコープは?
private void button1_Click(object sender, System.EventArgs e)
{
Form2 f2 = new Form2(); // ここで宣言した f2 のスコープはどこですか?
}
private void button2_Click(object sender, System.EventArgs e)
{
f2.TestLabel(); //この変数はどこで宣言していて、どのスコープに属しますか?
}
}
ってゆーか、いきなり回答言うのやめようよーw