2009-03-24 13 views
1

私はそれが使用されていると私はそれをこことそこに読んで、それはメモリ管理と関係があることを確認します。質問は、あなたがそれをいつ使うべきかあなたはどのように知っていますか?あなたがそれを使用しない場合に問題を引き起こす変数またはインスタンスの違いをどのように伝えますか?いつC#で(...){...}を使うべきですか?

正確な複製What is the C# Using block and why should I use it?

+0

http://stackoverflow.com/questions/212198/what-is-the-c-using-block-and-why-should-i-use-it 重複しています。 –

+0

http://stackoverflow.com/questions/567138/when-should-i-use-using-blocks-in-c/568231 http://stackoverflow.com/questions/278902/using-statement-vs-try-ようやくhttp://stackoverflow.com/questions/614959/using-the-using-statment-in-c –

答えて

8

IDisposableインターを実装するクラスのオブジェクトをインスタンス化するたびに。

1

usingステートメントは、IDisposableを実装するクラスで使用されます。 usingステートメントは、クラスのDisposableインスタンスのスコープを提供し、スコープが終了したときにオブジェクトに対してDisposeメソッドを呼び出します。管理対象オブジェクトを事前にアクティブにしたい場合や、管理対象オブジェクトがガベージコレクション(または破棄)されたときに、管理対象外のリソースがクリーンアップされる必要がある場合は、いつでもIDisposableを実装します。

0

それは

そうでもないメモリ管理とは何かを持っています。それはアンマネージドリソースとしなければなりません:コンピュータはほとんどすべてメモリを使用することができます。

ガーベッジコレクタに特定の時刻にオブジェクトのクリーンアップを強制することはできません(問題ありません)。しかし、データベース接続、ソケット、セマフォーなどのリソースでは、必要以上に長く保持したくない場合があります。通常は、try/finally構造を使用する必要があります。 usingステートメントは、このシナリオを処理するためのちょっとした仕組みを提供しています。 インターフェイスを実装する任意のオブジェクトがあるときはいつでも、usingステートメントにアクセスしてください。

関連する問題