R.Tanaka.Ichiro's Blog

主にC# な話題です

目次

Blog 利用状況

ニュース

変数のスコープ

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 

投稿日時 : 2009年6月4日 17:57

Feedback

# re: 変数のスコープ 2009/06/04 19:02 774RR

っていうか「スコープ」=可視性の問題ではなくって
インスタンスが複数あるとき、それは別のもの
というのがわかっていないとしか思えない・・・

# re: 変数のスコープ 2009/06/05 11:51 R・田中一郎

だとすると、ぱぱいやん氏のサンプルは少し的がずれていたことになりますね。

# モンクレール bady 2012/10/13 18:13 http://www.monclerdownshop.info/

突然訪問します失礼しました。あなたのブログはとてもすばらしいです、本当に感心しました!

タイトル
名前
Url
コメント