Я хочу знать процесс и внутренности интернирования строк , специфичных для .Net framework. Также хотелось бы узнать преимущества использования интернирования и сценариев/ситуаций, в которых мы должны использовать интернирование строк для повышения производительности. Хотя я изучал интернирование из книги CLR Джеффри Рихтера, но я все еще смущен и хотел бы узнать об этом более подробно.
[Редактирование], чтобы задать конкретный вопрос с примером кода ниже:
private void MethodA()
{
string s = "String"; // line 1 - interned literal as explained in the answer
//s.intern(); // line 2 - what would happen in line 3 if we uncomment this line, will it make any difference?
}
private bool MethodB(string compareThis)
{
if (compareThis == "String") // line 3 - will this line use interning (with and without uncommenting line 2 above)?
{
return true;
}
return false;
}