4 Stimmen

C# String-Verkettung und String-Internierung

Wird bei der String-Konkatenation einer bestehenden Zeichenkette im internen Pool eine neue Zeichenkette in den internen Pool eingegeben oder wird ein Verweis auf die bestehende Zeichenkette im internen Pool zurückgegeben? Diesem Artikel zufolge fügen String.Concat und StringBuilder neue String-Instanzen in den internen Pool ein?

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

Kann jemand erklären, wie die Verkettung mit dem Praktikantenpool funktioniert?

4voto

Lasse V. Karlsen Punkte 364542

Wenn Sie neue Strings erstellen, werden diese nicht automatisch in den Intern-Pool aufgenommen, es sei denn, Sie verketten Konstanten zur Kompilierungszeit. In diesem Fall erstellt der Compiler ein String-Ergebnis und interniert dieses als Teil des JIT-Prozesses.

0voto

Konrad Rudolph Punkte 503837

Sie können sehen, ob eine Zeichenkette interniert wurde, indem Sie String.IsInterned . Der Aufruf gibt eine neue Zeichenkette zurück, die entweder ein Verweis auf eine internierte Zeichenkette ist, die der als Argument übergebenen Zeichenkette entspricht, oder null wenn die Zeichenkette nicht interniert wurde.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X