問題タブ [using-statement]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - 「使用する」を使用するのに最適な場所を知るにはどうすればよいですか?
私は c# にはやや慣れていませんが、スクリプト言語には慣れています。私は「使用する」という考え方が好きです。オブジェクトをインスタンス化し、必要な限りそのスコープ内で操作し、目的が達成されたらそれ自体を破棄します。
でも、私にとっては不自然です。人々がそれを使った例を見せてくれたとき、私はそれが仕事に適したツールであると認識していますが、自分のプログラミングでそれを使って問題を解決することは決して思い浮かびません.
使用するのに適した場所を認識する方法using
と、それを try-catch ブロックと組み合わせて使用する方法。それらはブロック内に入りますか、それとも通常、using ステートメントを try ブロック内で囲みますか?
c# - C# の "using" ステートメントが最も役立つのはいつですか?
using ステートメントは、using ブロックが終了したときに、「使用中」のオブジェクトの dispose メソッドを自動的に呼び出します。
しかし、これが必要/有益なのはいつですか?
たとえば、次のメソッドがあるとします。
オブジェクトはメソッドで作成されるため、ここに using ステートメントが必要ですか? メソッドが終了すると、Font オブジェクトは破棄されませんか?
または、メソッドが終了した後、別のときに Dispose メソッドが実行されますか?
たとえば、メソッドが次のような場合:
c# - クラス内で IDisposable リソースを共有するにはどうすればよいですか?
SQLite データベース間でデータを移動するコンソール アプリケーションを作成しています。接続のクラスとさまざまな準備済みステートメントは IDisposable を実装しているため、次のusing
ようにブロックを使用してこれらのオブジェクトをインスタンス化しています。
ただし、これらの接続を 1 つのメソッドで作成し、別のメソッドで呼び出すことができる必要があります。これらの接続をインスタンス変数として保存するための最もクリーンで混乱の少ない方法は何ですか? それらのメソッドがインテリジェントな方法で呼び出されることを確認したいのですが、すべてのアクションが単一のブロック.Dispose()
のコンテキスト内で発生することを確認する良い方法がわかりません。using
これはC#の初心者の質問であることを認識しているので、そのように回答を調整してください。提案された解決策がある場合は、説明するコード サンプルを含めていただければ幸いです。
編集:私のユースケースはコンソールアプリです。ソースと宛先の接続文字列が渡され、コンソール アプリが操作を実行します。実際に、コンソール クラス Program 自体に IDisposable を次のように実装させるでしょうか?:
.net - USING文を使うべきケース一覧
「File と Font は、アンマネージド リソース (この場合はファイル ハンドルとデバイス コンテキスト) にアクセスするマネージド型の例です。他にも多くの種類のアンマネージド リソースとそれらをカプセル化するクラス ライブラリ型があります。そのような型はすべて、IDisposable インターフェイスを実装する必要があります。ルールとして、IDisposable オブジェクトを使用する場合は、using ステートメントで宣言してインスタンス化する必要があります。」-MSDN
USING ステートメントを使用する必要がある場合 (FILE や FONT などのアンマネージド リソースにアクセスするマネージド型) のリストはありますか?
c# - C#:IEnumeratorusing ステートメントで
このメソッドがMoreLinqでどのようSingleOrFallback
に実装されているかを知りたいと思っていたところ、これまでに見たことのないものを発見しました。
がステートメントIEnumerator<T>
にあるのはなぜですか? これは、 on anusing
を使用するときに考慮すべきことですか?foreach
IEnumerable<T>
副次的な質問:このメソッドは正確には何をしますか? ソース シーケンスにアイテムが 1 つだけ含まれていない場合は常にフォールバック アイテムを返しますか?
c# - usingステートメントにIDisposableを実装する一般的なオブジェクトのリストはありますか?
オブジェクトがusingステートメントとうまく合うようなチートシートがあるのではないかと思っていました... SQLConnection
、MemoryStream
など。
connection.Close()
さらに一歩進んで、ステートメントブラケットを使用して、閉じる前に実際にどのように呼び出す必要があるかなど、他の「パズルのピース」を表示することもできます。
そのようなものは存在しますか?そうでなければ、多分私達はそれを作るべきです。
c# - どちらが良いですか、そしていつ:ステートメントを使用するか、C#のIDisposableでDispose()を呼び出すのですか?
私が次のものを持っているとしましょう:
なぜ次のことをして、中括弧をいくつか失ってはいけないのですか?:
アドバイスありがとうございます!
c# - 悪い習慣?C#のusingステートメントの非正規使用
C#にはusing
、特にIDisposableオブジェクト用のステートメントがあります。おそらく、using
ステートメントで指定されたオブジェクトは、決定論的に解放されるべきある種のリソースを保持します。
ただし、プログラミングには、開始と終了が明確であるが、固有の言語サポートがない設計が多数あるように思われます。このusing
構成は、コードエディターの組み込み機能を使用して、少なくともそのような設計または操作の範囲を明確かつ自然に強調する機会を提供します。
私が念頭に置いているのは、「開始」と「結合」を伴う非同期コード実行など、さまざまな種類がありますが、頻繁にBeginXXX()
andメソッドで開始する種類の操作です。EndXXX()
この素朴な例を見てください。
代わりに、StartメソッドIDisposable.Dispose
が結合操作を実行するメソッドを持つオブジェクトを返した場合はどうなりますか。
または、さらに良いことに、私が特に念頭に置いていたのは、高度に特殊化されたグラフィックブリッティングを実行し、Begin()
andEnd()
メソッド(DirectXおよびXNAにも存在するデザイン)を持つオブジェクトがあります。その代わり...
より自然で読みやすいように見えますが、意図しない目的でIDisposable
インターフェイスとステートメントを使用しているため、お勧めできませんか?using
言い換えれば、これは直感的でない方法でオペレーターをオーバーロードすることと同等でしょうか?
c# - SqlTransaction で using ステートメントを使用する理由
コードで使用している SqlTransaction に関するいくつかの問題が発生しています。グーグルで調べていると、多くの人が SqlTransaction で using ステートメントを使用しているのを目にします。
このタイプのステートメントを SqlTransaction で使用する利点や違いは何ですか?
現在、私のコードは次のようになっています。
ある方法が他の方法よりも優れている点は何ですか?