4

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

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

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

4

2 に答える 2

4

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

于 2008-09-01T14:44:11.210 に答える
0

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

于 2008-09-01T15:11:24.593 に答える