次の記事「C# の StringBuilder とは」では、C# の StringBuilder の概要を説明します。 StringBuilder について話す前に、まず不変性の概念を見てみましょう。文字列に精通している場合は、おそらく文字列には不変の性質があることをご存知でしょう。つまり、新しいオブジェクトが作成され、新しいメモリの場所がそれに提供されるたびに、したがって常にデータ変更が発生した場合、変更されたデータは新しいメモリの場所に配置され、元の文字列は安全に保たれます。さて、少し考えてみましょう。このアプローチのユースケースは何ですか?データベースの詳細や、一時的に変更されないその他の資格情報などの資格情報を設定している場合は、文字列を使用して安全に保つことができます。ここで、StringBuilder と呼ばれる別の種類のオブジェクトが登場しました。つまり、本質的に変更可能であり、現在のメモリ位置にあるデータのみを変更できるようにすることでメモリを節約します。このような機能は、複数の追加操作を実行したい場合に便利です。
StringBuilder は、変更可能な文字セットを表すクラスであり、System のオブジェクトです。テキスト名前空間。 StringBuilder は本質的に動的オブジェクトであるため、StringBuilder はメモリ内に新しいオブジェクトを作成せず、変更された文字列または新しい文字列を組み込むために必要なメモリを動的に拡張します。文字列ビルダーは、マルチスレッド環境では説得力がありません。マルチスレッドの概念が適切に使用されていない場合、複数のスレッドによって上書きされるとデータの不整合が生じる可能性があるからです。
1.ここで、可変性がもたらす結果を理解する必要があります。同じデータ セットが動的に拡張される場合にのみ、可変性の使用を選択する必要があります。このシナリオを理解するために例を見てみましょう。
2. HTML フォームからデータを取得し、そのデータをビジネス ロジックに基づいてテーブルに保存する場合 (最初にデータを検証する)、その場合は StringBuilder オブジェクトを作成し、それに関連付けてすべてのデータ フィールドを追加できます。データベースの列を取得し、最後に挿入クエリを実行してそのすべてをデータベースに配置できます。このようなアプローチの利点は、常に新しいメモリ位置が割り当てられる必要がないことです。そして、C# は動的拡張を使用してその 1 つのメモリの場所を管理します。
3. C#ではStringBuilderの容量を指定することもできます。
StringBuilder s=new StringBuilder(10);
StringBuilder s=new StringBuilder("object value", 15);
4. StringBuilder.length プロパティは、StringBuilder オブジェクトに現在含まれている文字数を示します。 StringBuilder オブジェクトに文字を追加すると、その長さは StringBuilder のサイズと等しくなるまで増加します。
C# には、StringBuilder の操作を容易にする特定のメソッドが提供されています。 StringBuilder クラスは、開発者のタスクを容易にする次のメソッドを提供します –
例 –
classStringBuilder a = new StringBuilder("val",10); a.append("us")
console.writeline(a) を実行すると、結果「value」が得られます
例 –
StringBuilder a = new StringBuilder("val",10); a.appendFormat("{0:C}",10)
これを実行して、単純な append() メソッドで行われた結果との違いを分析してください。
例
StringBuilder a = new StringBuilder("val",10); a.insert(4,"ue")
実行して結果を確認します
これらはすべて、典型的なビジネス上の問題を簡単に、より少ないコード行でコーディングするためのタスクを作成します。
ArgumentOutOfRangeException.
OutOfMemoryException.
これについては上記のポイントのみで説明しましたが、これが役立つユースケースをここで推測できます。
ここでは、string と StringBuilder の違い、いつ何を使用するか、また StringBuilder の操作中に発生する可能性のある課題や例外は何なのかを確認しました。
以上がC# の StringBuilder とは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。