C#
 Computer >> コンピューター >  >> プログラミング >> C#

C#のSystem.StringクラスとSystem.Text.StringBuilderクラスのどちらが優れていますか?


主な違いはStringBuilderは可変です 一方、文字列は不変です。

文字列は不変です。不変とは、文字列オブジェクトを作成した場合、それを変更できず、常にメモリ内に文字列型の新しいオブジェクトを作成することを意味します。

一方、StringBuilderは変更可能です。つまり、文字列ビルダーオブジェクトを作成すると、毎回新しいインスタンスを作成しなくても、挿入、置換、追加などの操作を実行できます。メモリ内の1つの場所で文字列を更新しますが、メモリ内に新しいスペースは作成されません。

using System;
using System.Text;
class DemoApplication{
   public static void Main(String[] args){
      String systemString = "Hello";
      StringConcat(systemString);
      Console.WriteLine("String Class Result: " + systemString);
      StringBuilder stringBuilderString = new StringBuilder("Hello");
      StringBuilderConcat(stringBuilderString);
      Console.WriteLine("StringBuilder Class Result: " + stringBuilderString);
   }
   public static void StringConcat(String systemString){
      String appendString = " World";
      systemString = String.Concat(systemString, appendString);
   }
   public static void StringBuilderConcat(StringBuilder stringBuilderString){
      stringBuilderString.Append(" World");
   }
}

出力

上記の例の出力は次のとおりです-

String Class Result: Hello
StringBuilder Class Result: Hello World
  • StringConcatメソッドの使用:このメソッドでは、文字列「Hello」を渡し、「systemString =String.Concat(systemString、appendString);」を実行します。ここで、appendStringは連結される「ワールド」です。 Main()から渡された文字列は変更されません。これは、文字列が不変であるためです。 。 stringの値を変更すると、別のオブジェクトが作成され、StringConcat()にsystemStringが新しい文字列の参照を格納します 。ただし、Main()とStringConcat()のsystemStringの参照は、異なる文字列を参照しています。

  • StringBuilderConcatメソッドの使用:このメソッドでは、文字列「Hello」を渡し、「stringBuilderString.Append( "World");」を実行します。これにより、文字列の実際の値(Main内)が「HelloWorld」に変更されます。これは、 StringBuilderが変更可能であるため、その値が変更されるという単純な事実によるものです。


  1. ラップトップとデスクトップ–どちらが良いですか?

    ノートパソコンとデスクトップ は多くの人々を興奮させる戦いであり、多くの人はデスクトップに多額のお金を費やすことに懐疑的であり、ラップトップが彼らの目的を達成できるかどうか混乱しています。そのため、この記事では、ラップトップとデスクトップのどちらが優れているかを確認します。 ノートパソコンとデスクトップ–違いは何ですか ラップトップとデスクトップの主な違いは、持続的なパフォーマンスです。デバイスのサイズを見ると一目瞭然です。ラップトップは小さく、デスクトップレベルの冷却システムを搭載することは不可能です。 そうは言っても、最新のソフトウェア最適化と最新のチップ製造方法により、ラップト

  2. Android TV と Roku TV:どちらが優れているか?

    Android TV と Roku TV は基本的に同じことを行いますが、ユーザーによって使い方が異なります。 Roku TV は、事前に技術的な知識がない人に適しています。一方、熱心なゲーマーやヘビー ユーザーには、Android TV の方が適しています。 比較をお探しの場合は、Android TV と Roku TV の比較をご覧ください。 、あなたは正しい場所にいます。 Android TV と Roku TV の違いを理解するのに役立つ詳細な説明を提供するこのガイドをお届けします。それでは、各機能について詳しく説明しましょう。 Android TV と Roku TV:どちら