首页 > 解决方案 > 在 C# 中连接后内存中的字符串对象

问题描述

我在 C# 中理解,当我连接 2 个字符串时,字符串是不可变的,创建了一个新对象。内存中先前的对象会发生什么?GC 是否会在创建新对象后立即删除旧对象?

标签: c#-4.0

解决方案


当您修改字符串的值时,即您正在创建一个引用该修改后的字符串的新对象,而旧的对象将变为未引用。因此,如果我们不断地修改现有字符串,那么未引用对象的数量将会增加,它会等待垃圾收集器释放未引用对象。当垃圾收集器运行时,它会回收未引用对象占用的所有未使用内存。


推荐阅读