C# ステートメントを使用して

C Sutetomentowo Shi Yongshite



データベース接続、ドキュメント ストリーム、ネットワーク接続などのリソースを破棄するときは、C# 言語の「using」ステートメントを使用して適切な破棄を保証します。このアプローチにより、IDisposable インターフェイスに準拠するオブジェクトの管理が簡単になります。リソースが生成および利用されるコードのセクションは、「using」ステートメントが宣言されたときに作成されます。通常の処理または例外を使用してブロックを終了すると、オブジェクトの Dispose() 関数が直ちに呼び出され、制御されていないリソースが解放され、必要なクリーニングが実行されます。このガイドでは、C# の「using」ステートメントを使用したドキュメント ストリーム リソースについて説明します。

構文:

C# の「using」ステートメントは、明示的に簡単かつ安全に破棄する必要があるリソースを管理するために使用されます。次のような特定の構文に従います。

を使用して ( ResourceType リソース = 新しいリソースタイプ ( ) ) { // コード }
  • 「using」キーワードは、「using」ステートメントを宣言するために使用されます。
  • 「using」キーワードの後に​​、操作するリソースの種類を指定し、その後にブロック内のリソースを表す変数名を指定します。 IDisposable インターフェイスを実行するすべてのオブジェクトが対象となります。必要に応じて、ブロック内のリソースを操作できます。
  • 次に、等号 (=) を使用して、リソース タイプの新しいインスタンスを変数に割り当てます。
  • ここで、「new」キーワードは、リソース タイプの新しいオブジェクトを生成するために利用されます。
  • 追加の初期化または構成は、new キーワードの後の括弧内で実行できます。
  • 最後に、リソースを使用するコードを中括弧 {} で囲みます。

例 1:

この記事では、C# のコード例から始めて、C# の 'using' ステートメントの使用方法を示します。指定されたコードは、「using」ステートメント内の「StreamReader」クラスを使用してテキスト ファイルの内容を読み取る C# プログラムをカバーしています。







プログラムは、入出力操作とファイル処理のためのクラスを提供する必要な名前空間、System および System.IO をインポートすることから始まります。プログラムでは「Dummy」というクラスを定義しています。 「Dummy」クラス内には、プログラム全体を最初から最後まで実行するための C# プログラムのエントリとして常に扱われる Main() メソッドがあります。



Main() メソッドは、まず「fp」文字列変数を宣言し、それに「test.txt」値を割り当てます。読み込むテキストファイルのファイルパスを表します。ファイルの読み取り時に発生する可能性のあるすべてのエラーに対処するために、try-catch ブロックが利用されます。



try ブロック内では、「using」ステートメントを使用して「StreamReader」クラスのインスタンスを作成します。ファイルの内容を理解するタスクは「StreamReader」に当てはまります。 「fp」変数に格納されているファイル パスは、読み取られるファイルを示す「StreamReader」コンストラクターに渡されます。





「using」ブロック内では、ドキュメントの最終行が表示されない限り、「while」ループを使用してファイルの内容が 1 行ずつ検査されます。このループは、「StreamReader」の ReadLine() メソッドを使用して行を読み取り、それを文字列変数「l」に割り当てます。行が null でない場合は、Console.WriteLine(l) を使用してコンソールに出力されます。

ファイルの終わりに達し、読み取る行がなくなると、「using」ブロックが終了し、「using」ステートメントにより「StreamReader」オブジェクトが自動的に破棄されます。 catch ブロックは、ドキュメントの読み取り中に IOException が発生するたびにアクティブ化されます。例外メッセージは e.Message を使用して取得し、エラー メッセージは Console.WriteLine() を使用してコンソールに表示されます。



プログラムの実行が完了し、コンソール出力が表示されます。 「test.txt」ファイルが存在し、数行のテキストが含まれていると仮定すると、このコードの出力は、次の添付画像に示すように、コンソールに出力されるファイルの内容になります。出力では各行が個別に表示されます。

システムを使用して ;

システムを使用して。 IO ;

クラスダミー {

静的 空所 主要 ( ) {

文字列 fp = 「テスト.txt」 ;

試す {

を使用して ( StreamReader リーダー = 新しいストリームリーダー ( FP ) )

{

文字列 l ;

その間 ( ( = 読者。 読み込まれた行 ( ) ) != ヌル )

{

コンソール。 ライトライン ( ) ;

}

}

}

キャッチ ( IO例外 e ) {

コンソール。 ライトライン ( 'エラーがおきました: ' + そうです。 メッセージ ) ;

}

}

}

注記: 「test.txt」ファイルが存在しない場合、またはファイルのアクセスまたは読み取りに問題がある場合は、catch ブロックが実行され、発生した特定の例外を示すエラー メッセージがコンソールに表示されます。

例 2:

次に、StreamWriter で C# の 'using' ステートメントを使用してデータをファイルに書き込む方法を示す別の簡単な例を示します。ここでは、コードとその予想される出力について説明します。コードは、最終的にプログラムを開始および終了する「Dummy」クラスと「Main」メソッドの宣言で始まります。

「Main」メソッド内で、「fp」文字列変数が宣言され、「test.txt」ファイル パスで初期化されます。情報が記載された文書をこれで表します。ドキュメントの作成プロセス全体で発生する可能性のある IOException に対処するために、プログラムは try-catch ブロックで囲まれています。

try ブロック内で、「writer」という名前の StreamWriter オブジェクトが作成され、「using」ステートメントを使用して初期化されます。 StreamWriter は、ファイルに文字を書き込む役割を果たします。 Writer オブジェクトの WriteLine 関数を介して、コンテンツの 2 行が「using」セクション内のドキュメントに追加されます。ブロックが終了すると、StreamWriter の Dispose() メソッドが自動的に呼び出され、保留中のデータがすべてファイルに書き込まれ、必要なリソースが解放されます。

最後に、「using」ブロックの外側に、「データは正常に書き込まれました。」ドキュメントの書き込み操作が成功し、エラーがないことを示すメッセージがコンソールに表示されます。ドキュメントの書き込みプロセス中に IOException が発生すると、catch ブロックがアクティブになります。その場合、エラー メッセージと特定の例外メッセージがコンソールに表示されます。

システムを使用して ;

システムを使用して。 IO ;

クラスダミー {

静的 空所 主要 ( {

文字列 fp = 「テスト.txt」 ;

試す {

使用して ( StreamWriter ライター = 新しいストリームライター ( FP

{

作家。 ライトライン ( 「こんにちは、C-シャープ!」 ;

作家。 ライトライン ( 「これはテストテキストです。」 ;

}

コンソール。 ライトライン ( 「データは正常に書き込まれました。」 ;

}

キャッチ ( IO例外 e {

コンソール。 ライトライン ( 「エラーが発生しました:」 + そうです。 メッセージ ;

}

}

}

要約すると、このコードは、「using」ステートメントを使用して StreamWriter オブジェクトを作成し、2 行のテキストをファイルに書き込み、StreamWriter を自動的に破棄します。書き込み操作が成功すると、ソフトウェアは成功メッセージを生成します。それ以外の場合、IOException が発生すると失敗メッセージが出力されます。

結論

C# の「using」ステートメントは、明示的な破棄が必要なリソースを管理する実用的で安全な方法を提供します。リソース消費を「using」ブロック内に囲むことで、必要なクリーンアップ手順が自動的に実行されることを保証し、リソース リークの可能性を減らすことができます。これにより、コードの信頼性が向上します。