C#、文字列とStringBuilderの差

     それはそれをクリアし、すべてのmakeの最初には、文字列は参照型、文字列strの= nullです。そして、あなたは文字列の値が不変であるかを知りたいです。なぜ文字列の不変の価値?私はオンラインチェックするこの場所は、そこには良い答えはない、と当時を見つけた後に追加します。

例の文字列の不変性:文字列=「123」; + =「45」;あなたは考えるかもしれない、この時間は、の値は明らかに「123456」となったが、現実はこれです。ヒープメモリ上に割り当てられ、記憶値「123」、単にメモリアドレス、ヒープを指し、「123」、;第一列A =「123」

+時間=「45」は、ヒープメモリに割り当てられている場合、記憶装置は、「12345」は、この時間は、一つのオブジェクトに対してのみポイントが「12345」アドレスとなります。「」123「が消えていなかったの前に変更の値がすべての発生が、実際には、付加価値であるので。だから、特にリサイクルのために、文字列のCONCATENATE文字列をやって、そのようなAの使用は+ =

構文は記憶喪失の多くに付着された場合。この時間は、StringBuilderオブジェクトを使用することをお勧めします。StringBuilderのステッチは、新たなメモリ空間を作成しません。

  StringBuilderのは、コンテナの長さを指定するために、長さStringBuilderオブジェクトの初期化を指定することができ、クラスをStringBuilderのできる文字列の連結は、StringBuilderのは、int型能力の性質を持っています。A StringBuilderの追加(文字列str)文字列のスプライシング方法、および文字列の長さは、予め指定された長さが最大長を超えた場合、自動的に容量の長さを増加させる、自動的に検出することができます。だから、文字列の連結の多くの間に、あなたはStringBuilderのオブジェクトを使用する必要があります。

 

 

おすすめ

転載: www.cnblogs.com/Echolh/p/11901412.html