最近一个有关 .NET中字符串文字的问题引起了我的注意。我知道字符串字面量会被插入,以便具有相同值的不同字符串引用相同的对象。我也知道可以在运行时插入一个字符串:string now = DateTime.Now.ToString().Intern(); 显然,在运行时插入的字符串驻留在堆上,但是我已经假设在程序的数据段中放置了文字(在我对上述问题的回答中也是如此)。但是我不记得在任何地方看到过这个。我认为是这种情况,因为这是我的操作方式,而且ldstrIL指令用于获取文字并且似乎没有发生分配的事实似乎对我有所帮助。简而言之,字符串文字存放在哪里?是在堆,数据段还是我没想到的某个地方?编辑:如果字符串文字确实驻留在堆上,它们何时分配?
添加回答
举报
0/150
提交
取消