問題タブ [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.

0 投票する
7 に答える
9531 参照

c# - using C# 内で使用するために使用される変数を返します

using ステートメント内の using ステートメントで作成している変数を返しています (変に聞こえます)。

これはプロパティ変数を破棄しますか??

これを行った後も、この警告が表示されます:

警告 34 CA2000 : Microsoft.Reliability : メソッド 'test.test' で、オブジェクトへのすべての参照が範囲外になる前に、オブジェクト 'properties' で System.IDisposable.Dispose を呼び出してください。

何か案は?

ありがとう

0 投票する
1 に答える
172 参照

visual-studio - Silverlight 4 / VS 2010の名前空間内でディレクティブを使用するのはなぜですか?

Silverlight 4 / VS 2010の自動生成コードの名前空間内にusingステートメントがあるのはなぜですか?

新しいコンベンションは

標準ではなく:

これには理由がありますか、それとも利点がありますか、それとも彼らがそれを行った方法ですか?

0 投票する
2 に答える
230 参照

c# - winforms を使用して無限ループを回避するより良い方法はありますか?

今のところ.Net 3.5を使用しています。

現在using、コードの特定のセクションに関するイベントを無効および有効にするトリックを使用しています。ユーザーは、日、時間、分、または合計分のいずれかを変更できます。これにより、イベントの無限のカスケードが発生することはありません (たとえば、分が合計を変更する、合計が分を変更するなど)。 / より簡単な方法。どれか知っていますか?

たくましいポイントの場合:

このコントロールは複数のチームで使用されます - 恥ずかしいことはしたくありません。1 日の時間数、1 週間の日数などを定義するときに、車輪を再発明する必要はないと思います。他の標準的な .Net ライブラリにはそれが必要です。コードに関するその他のコメントはありますか? このusing (EventHacker.DisableEvents(this))ビジネス - .Net ではよくあるパターンでしょう... 一時的に設定を変更します。それの名前は何ですか?コメントで参照したり、現在の実装について詳しく調べたりしたいと思います。一般に、変更対象のハンドルだけでなく、以前の状態も記憶する必要があります (この場合、以前の状態は重要ではありません。イベントは無条件にオンまたはオフになります)。それなら可能性もあるmulti-threaded hacking. ジェネリックを利用して、間違いなくコードをきれいにすることもできます。これらすべてを理解すると、複数ページのブログ投稿につながる可能性があります。いくつかの答えを聞いてうれしいです。

PS 私は強迫性障害に苦しんでいるように見えますか? 物事を終わらせて先に進むのが好きな人もいます。私はそれらを開いたままにしておくのが好きです...常により良い方法があります。

0 投票する
2 に答える
6068 参照

visual-studio-2008 - C++ の /clr オプション

誰かが次のエラーの解決策を見つけるのを手伝ってくれますか:

「致命的なエラー C1190: マネージド ターゲット コードには '/clr' オプションが必要です」

私の構成は..

  • ビジュアルスタジオ 2008
  • ウィンドウズ7

これがコードです(ネットリソースを使用して取得しました)

0 投票する
5 に答える
316 参照

c# - C# の "using" ステートメントに関するスタイル/読みやすさの問題

私が迷っているコーディングスタイルの問題について、あなたの意見を知りたいです。おそらく決定的な答えはないことは承知していますが、いずれかの方向に強い好みがあるかどうかを確認したいと思います.

usingかなりの数の場所にステートメントを追加するソリューションを検討しています。多くの場合、次のようなものに出くわします。

log.Connection は、IDisposable を実装する OracleConnection です。

私のニートニックはそれを次のように変更したいと考えています:

しかし、簡潔さを好み、仕事を少し速く終わらせたい人は、次のことをしたいと考えています。

どういうわけか、これを行うと少し汚いと感じます。これは悪いことだと思いますか?これが悪いと思うなら、それはなぜですか?良かったら、どうして?

編集: これは、多くの例の 1 つの (やや不自然な) 例であることに注意してください。これは、よく考えられていないインターフェイスを持つロガー クラスを示しているという事実に固執しないでください。これは私の質問とは関係ありません。とにかく、クラス自体を改善する自由はありません。

0 投票する
5 に答える
1573 参照

c# - c# ステートメントの配置を使用する

重複の可能性:
Usings は名前空間の内側または外側にある必要があります

私は、作成者 (私が尊敬する人) が一貫して名前空間の上ではなく、名前空間内に using ステートメントを配置しているコード ベースを見ています。そうすることにはいくつかの利点(より効率的なGC?)がありますか、それともこれは単なるコードスタイルの好みですか?

乾杯、
ベリル

0 投票する
2 に答える
1036 参照

c# - Reflection.Emitを使用して、「using(x){...}」ブロックを発行しますか?

C#でReflection.Emitを使用してusing (x) { ... }ブロックを発行しようとしています。

コードを記述している時点で、IDisposableを実装するオブジェクトであるスタックの現在の最上位を取得し、これをローカル変数に格納し、その変数にusingブロックを実装してから、その中にさらに追加する必要があります。コード(私はその最後の部分を扱うことができます。)

これは、Reflectorでコンパイルして確認しようとしたC#コードのサンプルです。

これはReflectorでは次のようになります。

Reflection.Emitを使用するときに、最後にある「.try...」の部分をどのように処理するかわかりません。

誰かが私を正しい方向に向けることができますか?


編集:メールでコードについて尋ねられた後、ここに流暢なインターフェイスコードを投稿しますが、クラスライブラリの一部を入手しない限り、誰にとってもあまり役に立たないでしょう。それも少しのコードです。私が苦労していたコードはIoCプロジェクトの一部であり、サービスのメソッド呼び出しの自動ロギングを実装するクラスを生成する必要がありました。基本的には、コードを自動生成するサービスのデコレータークラスです。

すべてのインターフェイスメソッドを実装するメソッドのメインループは次のとおりです。

EmitUsingは、Jonが応答したBeginExceptionBlockを吐き出すので、それを知る必要がありました。

上記のコードはLoggingDecorator.csからのものであり、IL拡張機能は主にILGeneratorExtensions.Designer.csにあり、その他のファイルはLVK.Reflection名前空間にあります。

0 投票する
3 に答える
2503 参照

vb.net - VB.NET: ブロックの「使用」に関する質問

次のコードを検討してください。

ブロック内にエラーがある場合Using、オブジェクトをどのようにクリーンアップしsrますか?

srオブジェクトはスコープ内にないErrHandlerため、sr.Close() を呼び出すことはできません。エラーが発生した場合でも、Usingブロックはリソースを自動的にクリーンアップしますか?

0 投票する
5 に答える
42678 参照

c# - C#usingステートメント、SQL、およびSqlConnection

これは、usingステートメントC#SQLを使用して可能ですか?

接続を開くときにエラーが発生した場合はどうなりますか?

usingステートメントはtryであり、最後に
キャッチなしです。

それで、使用ブラケットの外側をキャッチすると、キャッチは接続開放エラーをキャッチしますか?

usingそうでない場合は、上記のステートメントを使用してこれを実装する方法は?

0 投票する
4 に答える
718 参照

c# - C# 関数でこの SQL 接続を適切に閉じていますか?

接続が開いたままであり、最大プールを超えているという私の質問を閉じるために、データベースへの接続に使用される関数を書き直そうとしています。

関数は、自家製のコンパイル済みライブラリ内に存在します。リフレクターを使用すると、コードが次のようになることがわかります。

修正して読もうと思います

そしてdllを再コンパイルします。のインスタンスSQLProvider()は通常、パブリック クラスの最上位で作成され、そのインスタンスはクラス メンバー内で使用されます (例:

私はこれを正しい方法で行っていますか?データが実際に取得される前に、接続が破棄されるようです。また、Visual Studio は、SQLProvider()暗黙的に変換可能でなければならないことを教えてくれSystem.IDisposableます。これを実装するにはどうすればよいでしょうか。

のすべてのメンバーをステートメントでラップしようとclass Bannerしましたusing (DSLibrary.DataProviders.SqlProvider db = new DSLibrary.DataProviders.SqlProvider(Defaults.ConnStr)){}が、intellisense は「クラス、構造体、またはインターフェイス メンバー宣言で無効なトークン 'using' です」というエラーを表示します。

これについて最善の方法は何ですか?

更新 DSLibrary の調整と再コンパイルを逆アセンブルしようとしましたが、CHris_Lively が言うように、私には何もしていないと思います。問題のインスタンスを、より標準的な形式であると私が受け取るものに変更すると、これまでのところ機能します。

私はエンタープライズ ライブラリを調べようとしていますが、それが進むべき道のようです。