最近一個有關(guān) .NET中字符串文字的問題引起了我的注意。我知道字符串字面量會被插入,以便具有相同值的不同字符串引用相同的對象。我也知道可以在運(yùn)行時插入一個字符串:string now = DateTime.Now.ToString().Intern(); 顯然,在運(yùn)行時插入的字符串駐留在堆上,但是我已經(jīng)假設(shè)在程序的數(shù)據(jù)段中放置了文字(在我對上述問題的回答中也是如此)。但是我不記得在任何地方看到過這個。我認(rèn)為是這種情況,因?yàn)檫@是我的操作方式,而且ldstrIL指令用于獲取文字并且似乎沒有發(fā)生分配的事實(shí)似乎對我有所幫助。簡而言之,字符串文字存放在哪里?是在堆,數(shù)據(jù)段還是我沒想到的某個地方?編輯:如果字符串文字確實(shí)駐留在堆上,它們何時分配?
添加回答
舉報
0/150
提交
取消