C#には、特にIDisposableオブジェクト用のusing
ステートメントがあります。おそらく、using
ステートメントで指定されたオブジェクトは、確定的に解放されるべき何らかの種類のリソースを保持するでしょう。悪い練習ですか?ステートメントを使用しているC#の非標準的な使用
しかし、私は、単一の明確な開始点と終了点を持つが、固有の言語サポートがないプログラミングには多くの設計があるように思えます。 using
構成は、コードエディタの組み込み機能を使用して、そのような設計または動作の範囲を少なくとも明確かつ自然に強調する機会を提供する。
私が心に留めていることは、「開始」と「結合」を含む非同期コードの実行など、さまざまな種類がありますが、頻繁にBeginXXX()
とEndXXX()
メソッドで始まる操作の種類です。
この簡単な例をご覧ください。
webDataOperation.Start();
GetContentFromHardDrive();
webDataOperation.Join();
// Perform operation that requires data from both sources
何場合は、代わりに、Startメソッドは、そのIDisposable.Dispose
方法結合操作を実行したオブジェクトが返されました。
using(webDataOperation.Start()) {
GetContentFromHardDrive();
}
// Perform operation that requires data from both sources
それとも、いっそ、私は、特に念頭に置いていた:私は専門性の高いグラフィックスは、ブリット行い、Begin()
とEnd()
方法(また、DirectXの中に存在し、XNAデザイン)を持つオブジェクトを持っています。代わりに...
using(blitter.BlitOperation()) {
// Do work
}
// Use result
より自然で読みやすいように見えますが、それが意図しない目的でIDisposable
インタフェースとusing
文を使用して見て、お勧めできませんか?換言すれば、これは、と直観的ではなく、直観的ではない方法でオペレータをペイロードするでしょうか?
最後に{最初と最後}を使用しないのはなぜですか?これは、悪用することなく範囲を提供します。 – cja