インスタンスを生成後、もう一度インスタンスを生成した場合、
最初のインスタンスは、dispose処理を行ってもガーベージされるまで残ったままになるのでしょうか?
例えばこういうクラスがあったとして
lang
1class TestA : IDisposable 2{ 3 public TestB tb {get;set;} 4 5 public void Test1() 6 { 7 //何らかの処理 8 this.tb = new TestB(); 9 } 10 11 //disposeの処理~ 12 public void Dispose() 13 { 14 //リソースの破棄 15 tb.dispose(); 16 } 17}
下記みたいな呼び出しを行われた場合、
最初のTestBのインスタンスは破棄されず残っちゃうのでしょうか?
lang
1class Foo 2{ 3 public void Bar() 4 { 5 using(TestA ta = new TestA()) 6 { 7 ta.Test1(); //1回目 8 Console.WriteLine(ta.tb.aaa); //ta.tbの値を使った処理 9 10 //何らかの処理 11 12 ta.Test1(); //2回目 13 Console.WriteLine(ta.tb.aaa); //ta.tbの値を使った処理 14 } 15 } 16}
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/06/29 04:20