2016-07-05 7 views
2

私はいくつかの異なるアプローチを試しています。 Imは、メソッドの上にusing()ステートメントを置くことが可能かどうか、あるいはそれ以外の方法であるかどうかはわかりません。c#メソッドを使用してステートメントを使用できますか?

ことはできません。しかし、あなたはこのようにそれを行うことができます
public class Main 
{ 
    public Main() 
    { 
     using(Type t = new Type) 
     { 
     public void SomeFunction() { 
      t.toString()} 
     } 
    } 
} 
+1

と呼ばれます。これがうまくいけば、 't'のスコープとなるものはいつ作成され、破棄されますか?単なる機能ですか?もしそうなら、それを関数の中に入れないのはなぜですか? –

答えて

8

using(Type t = new Type) 
{ 
    SomeFunction(t); 
} 

public void SomeFunction(Type tType) 
{ 
    tType.ToString(); 
} 

注:tSomeFunction()に転送され、クラスType場合はブロックを使用しての}に配置されますIDisposibleを実装しています。Usingステートメントは正しい方法でオブジェクトのDisposeメソッドを呼び出します(以前の図のように使用すると)オブジェクト自体がすぐに範囲外に出るようになります■Disposeは

+0

は、クラス全体をstatement?の下に置くことは可能ですか? –

+0

いいえ、変数を使用してオブジェクトを作成できます。クラスがIDisposibleを実装する必要があることに注意してください –

関連する問題