数组成员引用和垃圾回收

时间:2015-11-05 05:23:59

标签: c# arrays garbage

如果继续引用数组的成员,整个数组将不会被垃圾回收?

例如,方法:

    void ParseUtility(string strInput, out string header)
    {
        header = "";

        string[] parsed = strInput.Split(',');
        if ((parsed != null) && (parsed.Length > 0))
        {
            header = parsed[0];
        }
        return;
    }

从这个方法返回时,整个字符串数组被解析了#39;将被保留,只要'标题'正在使用?

2 个答案:

答案 0 :(得分:3)

事实并非如此。 string是一个类,因此任何string实例都有一个独立的存在 - 数组的每个元素只是引用stringheader = parsed[0]保留对string的引用,而不是对数组的引用。阵列是否可以GC取决于阵列本身是否可达。

答案 1 :(得分:2)

不应该。解析有一个对解析[0]的引用,而不是相反。