1

私はいくつかの記事を読みましたが、.NET における文字列インターンと文字列プーリングの違いはまだわかりませんでした。特に、それらのメカニズムが一緒に適用される場合。説明付きの例を挙げていただけますか?

4

2 に答える 2

1

文字列インターニングは CLI に組み込まれた機能で、同じ文字列が表示された場合に同じ文字列インスタンスを使用しやすくします。これはすべてのインスタンスに当てはまるわけではなく、次のstring場合にのみ当てはまります。

  • ldstrコードにリテラルが含まれている場合に使用される IL コマンドを介して作成された文字列- つまり、IL に焼き付けられ、 を介してロードされたリテラルは次のとおりConsole.WriteLine("abc")です。"abc"ldstr
  • string.Internメソッドを明示的に使用するコード

前後関係がないとわかりにくいのですが、「文字列プーリング」は単に「インターン」の同義語として使われているのではないかと強く思います。

コードは、たとえばDictionary<string,string>. これは、特定のスコープで文字列を再利用するのに役立つ場合がありますが、アプリケーション全体のインターン プールを飽和させることはありません。そのようなデバイスはすべて、特注のアプリケーション固有のものです。

于 2013-09-26T09:33:28.250 に答える