C# 4.0 C中Concating后内存中的字符串对象#

C# 4.0 C中Concating后内存中的字符串对象#,c#-4.0,C# 4.0,我理解在C#中,当我在两个字符串中创建一个新对象时,字符串是不可变的。 内存中以前的对象会发生什么变化? GC是否会在创建新对象后立即删除旧对象?当您修改字符串的值时,即您正在创建引用该修改字符串的新对象,而旧对象将变为未引用对象。 因此,如果我们连续修改现有字符串,那么未引用对象的数量将增加,它将等待垃圾收集器释放未引用对象。 当垃圾收集器运行时,它会回收未引用对象占用的所有未使用内存。那么GC何时会删除剩余的对象呢?您不必担心这一点。在.Net中,CLR将处理这一切。如果要运行GC,请使用G

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

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

那么GC何时会删除剩余的对象呢?您不必担心这一点。在.Net中,CLR将处理这一切。如果要运行GC,请使用GC.Collect()方法。检查此链接,这将帮助您。