タグ付けされた質問 「using」

"using"は一部のプログラミング言語(C ++、C#、VB.NET、Haxe)のキーワードです

26
WCFクライアントの「using」ブロックの問題の最善の回避策は何ですか?
usingブロック内でWCFサービスクライアントをインスタンス化するのが好きです。これは、実装するリソースを使用するための標準的な方法であるためですIDisposable。 using (var client = new SomeWCFServiceClient()) { //Do something with the client } ただし、このMSDNの記事に記載されているように、WCFクライアントをusingブロックでラップすると、クライアントがエラー状態(タイムアウトや通信の問題など)になるエラーをマスクできます。簡単に言えば、Dispose()が呼び出されると、クライアントのClose()メソッドが起動しますが、障害のある状態であるためエラーがスローされます。その後、元の例外は2番目の例外によってマスクされます。良くない。 MSDN記事で推奨されている回避策は、usingブロックの使用を完全に回避し、代わりにクライアントをインスタンス化して次のようなものを使用することです。 try { ... client.Close(); } catch (CommunicationException e) { ... client.Abort(); } catch (TimeoutException e) { ... client.Abort(); } catch (Exception e) { ... client.Abort(); throw; } usingブロックと比較して、それは醜いと思います。そして、クライアントが必要になるたびに書くコードがたくさん。 幸い、私はIServiceOrientedでこのような他のいくつかの回避策を見つけました。あなたは次から始めます: public delegate void UseServiceDelegate<T>(T proxy); …
404 c#  vb.net  wcf  using  wcf-client 

12
HttpClientとHttpClientHandlerはリクエスト間で破棄する必要がありますか?
System.Net.Http.HttpClientおよびSystem.Net.Http.HttpClientHandler.NET Framework 4.5のは、IDisposableを実装します(System.Net.Http.HttpMessageInvokerを介して)。 の using声明のドキュメントは言います: 原則として、IDisposableオブジェクトを使用する場合は、usingステートメントで宣言してインスタンス化する必要があります。 この回答はこのパターンを使用しています: var baseAddress = new Uri("http://example.com"); var cookieContainer = new CookieContainer(); using (var handler = new HttpClientHandler() { CookieContainer = cookieContainer }) using (var client = new HttpClient(handler) { BaseAddress = baseAddress }) { var content = new FormUrlEncodedContent(new[] { new KeyValuePair<string, string>("foo", "bar"), …


17
C#でネストされたusingステートメント
私はプロジェクトに取り組んでいます。2つのファイルの内容を比較し、それらが互いに正確に一致するかどうかを確認する必要があります。 多くのエラーチェックと検証の前に、私の最初のドラフトは次のとおりです。 DirectoryInfo di = new DirectoryInfo(Environment.CurrentDirectory + "\\TestArea\\"); FileInfo[] files = di.GetFiles(filename + ".*"); FileInfo outputFile = files.Where(f => f.Extension == ".out").Single<FileInfo>(); FileInfo expectedFile = files.Where(f => f.Extension == ".exp").Single <FileInfo>(); using (StreamReader outFile = new StreamReader(outputFile.OpenRead())) { using (StreamReader expFile = new StreamReader(expectedFile.OpenRead())) { while (!(outFile.EndOfStream || expFile.EndOfStream)) …
316 c#  .net  file  using 

4
MySQL ON vs USING?
MySQLではJOIN、違いは何であるONとはUSING()?私が知る限りでUSING()は、構文はより便利ONですが、列名が同一でない場合は少し柔軟性があります。ただし、その違いはごくわずかなので、彼らはを排除するだけだと思いますUSING()。 目に見える以上のものはありますか?はいの場合、特定の状況でどちらを使用すればよいですか?
252 mysql  join  using 

14
ディレクティブを使用して不要なC#を削除する必要があるのはなぜですか?
たとえば、私はめったに必要としません: using System.Text; しかし、デフォルトでは常にそこにあります。コードに不要なusingディレクティブが含まれている場合、アプリケーションはより多くのメモリを使用すると思います。しかし、他に知っておくべきことはありますか? また、同じusingディレクティブが1つだけのファイルとほとんど/すべてのファイルで使用されている場合でも、違いはありますか? 編集:この質問は、オブジェクトがスコープ外に出たときにそのIDisposable.Disposeメソッドが呼び出されるようにすることでリソースを管理できるように設計された、usingステートメントと呼ばれる無関係な概念に関するものではないことに注意してください。C#での「using」の使用を参照してください。
216 c#  assemblies  using 

10
Dispose()DataSetおよびDataTableを実行する必要がありますか?
DataSetとDataTableはどちらもIDisposableを実装しているため、従来のベストプラクティスでは、Dispose()メソッドを呼び出す必要があります。 ただし、これまで読んだことから、DataSetとDataTableには実際にはアンマネージリソースがないため、Dispose()は実際にはあまり機能しません。 さらに、using(DataSet myDataSet...)DataSetにはDataTablesのコレクションがあるため、単に使用することはできません。 安全のために、myDataSet.Tablesを反復処理し、各DataTableを破棄してから、DataSetを破棄する必要があります。 それで、私のすべてのDataSetsとDataTablesでDispose()を呼び出す手間は価値がありますか? 補遺: DataSetを破棄する必要があると思う人のために:Dispose()が呼び出されることを保証する必要があるため、通常、破棄のパターンはusingor を使用するtry..finallyことです。 ただし、コレクションの場合、これは非常に速く醜くなります。たとえば、Dispose()の呼び出しの1つが例外をスローした場合はどうしますか?それを飲み込んで(「悪い」)、次の要素の廃棄を続行できるようにしますか? または、myDataSet.Dispose()を呼び出して、myDataSet.TablesのDataTableを破棄することを忘れることをお勧めしますか?

5
Dispose()は、nullオブジェクトのusingステートメントで呼び出されますか?
using(潜在的に)nullオブジェクトでステートメントを使用しても安全ですか? 次の例を検討してください。 class Test { IDisposable GetObject(string name) { // returns null if not found } void DoSomething() { using (IDisposable x = GetObject("invalid name")) { if (x != null) { // etc... } } } } Disposeオブジェクトがnullでない場合にのみ呼び出されることが保証されていますNullReferenceExceptionか?
179 c#  idisposable  using 

7
「using」ブロックで、SqlConnectionは戻り時または例外時に閉じていますか?
最初の質問: 私が持っていると言います using (SqlConnection connection = new SqlConnection(connectionString)) { connection.Open(); string storedProc = "GetData"; SqlCommand command = new SqlCommand(storedProc, connection); command.CommandType = CommandType.StoredProcedure; command.Parameters.Add(new SqlParameter("@EmployeeID", employeeID)); return (byte[])command.ExecuteScalar(); } 接続は閉じられますか?技術的には私たちが最後に取得することはありませんので、}我々としてreturnその前に。 第二の質問: 今回は私が持っています: try { using (SqlConnection connection = new SqlConnection(connectionString)) { int employeeID = findEmployeeID(); connection.Open(); SqlCommand command = new …
136 c#  using  sqlconnection 

5
using()ステートメント内から戻ることによる副作用はありますか?
DataContextを取得するusingステートメント内からメソッド値を返すと、次のように常に正常に動作するようです。 public static Transaction GetMostRecentTransaction(int singleId) { using (var db = new DataClasses1DataContext()) { var transaction = (from t in db.Transactions orderby t.WhenCreated descending where t.Id == singleId select t).SingleOrDefault(); return transaction; } } しかし、私はいつも私がしなければならないように感じる何かを閉じて、私が使用してブラケットを抜け出す前にトランザクションを定義することによって、例えば、前にそれの値を取得し、使用して文の内側ブラケット、その後、帰国後に括弧。 括弧を使用して変数を定義して返すことは、何らかの方法でリソースを節約するより良い方法でしょうか?
125 c#  using 

2
C#6の「静的」機能を使用するにはどうすればよいですか?
C#6の新機能のいくつか、具体的には 「静的を使用する」を調べています。 using staticは、種類の静的メンバーをスコープに直接インポートできる新しい種類のusing句です。 (ブログ投稿の下部) 私が見つけたいくつかのチュートリアルによると、アイデアは次のとおり です: using System; class Program { static void Main() { Console.WriteLine("Hello world!"); Console.WriteLine("Another message"); } } Console静的クラスを使用する新しいC#6機能を使用して、繰り返しステートメントを省略できます。 using System.Console; // ^ `.Console` added. class Program { static void Main() { WriteLine("Hello world!"); WriteLine("Another message"); } // ^ `Console.` removed. } しかし、これは私のために働いているようには見えません。次のように言って、usingステートメントでエラーが発生します。 「 ' using …


8
破棄される前にSQLConnectionをClose()する必要がありますか?
Disposableオブジェクトに関する他の質問については、usingブロックが終了する前にClose()を呼び出す必要がありますか? using (SqlConnection connection = new SqlConnection()) using (SqlCommand command = new SqlCommand()) { command.CommandText = "INSERT INTO YourMom (Amount) VALUES (1)"; command.CommandType = System.Data.CommandType.Text; connection.Open(); command.ExecuteNonQuery(); // Is this call necessary? connection.Close(); }

6
未使用のusingディレクティブはパフォーマンスにどのように影響しますか?
Visual Studioは、新しいページまたはプロジェクトを作成するたびに、usingステートメントを自動的に作成します。これらのいくつかは、決して使用しません。 Visual Studioには、「未使用の使用を削除する」ための便利な機能があります。 アクセスされないusingステートメントがファイルの先頭に記載されている場合、プログラムのパフォーマンスに悪影響があるのでしょうか。
110 c#  .net  visual-studio  using 

5
複数のリソースで「使用」すると、リソースリークが発生する可能性がありますか?
C#では、次のことができます(MSDNの例)。 using (Font font3 = new Font("Arial", 10.0f), font4 = new Font("Arial", 10.0f)) { // Use font3 and font4. } 場合はどうなるのfont4 = new Fontスロー?font3はリソースをリークし、破棄されません。 これは本当ですか?(font4は破棄されません) これはusing(... , ...)、ネストされた使用を優先して完全に回避する必要があるという意味ですか?

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.