2008-09-01 23 views
4

インタープール内の既存の文字列の文字列連結を実行する場合、インターンプールに入力された新しい文字列か、またはインタープール内の既存の文字列に参照が返されますか?この記事では、String.ConcatとStringBuilderは新しい文字列インスタンスをインタープールに挿入しますか?C#文字列連結と文字列インターンシブ

http://community.bartdesmet.net/blogs/bart/archive/2006/09/27/4472.aspx

誰でも連結がインターンプールにどのように機能するかを説明できますか?

答えて

4

新しい文字列を作成した場合、コンパイル時定数を連結しない限り、自動的にインラインプールに入れられません。この場合、コンパイラは1つの文字列結果を作成し、JITプロセスの一部としてインテンシブします。

0

String.IsInternedを呼び出して、文字列がインターンされているかどうかを確認できます。この呼び出しでは、引数として渡された文字列と等しい文字列を持つ新しい文字列が返されます。文字列が格納されていない場合はnullが返されます。