如果继续引用数组的成员,整个数组将不会被垃圾回收?
例如,方法:
void ParseUtility(string strInput, out string header)
{
header = "";
string[] parsed = strInput.Split(',');
if ((parsed != null) && (parsed.Length > 0))
{
header = parsed[0];
}
return;
}
从这个方法返回时,整个字符串数组被解析了#39;将被保留,只要'标题'正在使用?
答案 0 :(得分:3)
事实并非如此。 string
是一个类,因此任何string
实例都有一个独立的存在 - 数组的每个元素只是引用到string
和header = parsed[0]
保留对string
的引用,而不是对数组的引用。阵列是否可以GC取决于阵列本身是否可达。
答案 1 :(得分:2)
不应该。解析有一个对解析[0]的引用,而不是相反。