読者です 読者をやめる 読者になる 読者になる

Using内での変数宣言

.NET VB

Usingステートメント内で宣言した変数は、ステートメント終了とともにDisposeされる。

using System;
using System.IO;

public class Test: IDisposable
{
	void IDisposable.Dispose()
	{
		Console.WriteLine("Disposing Test Class");
	}
}

public class Tester {
       private static void Main() {
       	       using (Test hoge = new Test())
	       {
	       	     string foo = "fooooo";
	       }
	       Console.Write(foo); // コンテキスト内に存在しないのエラー
       }
}

へーと思ってヘルプを読んでみたら

using ステートメント (C# リファレンス) 

スコープを定義します。スコープの外部ではオブジェクトが破棄されます。


思いっきりスコープ定義と書いてあるじゃん・・・
破棄されるのはusingに設定したオブジェクトだけかと思ってた。