小编Mar*_*und的帖子

如果我返回它创建的数组,新的本地类实例会被垃圾收集吗?

假设一个类实例将构建数组:

class FooArrBuilder
{
    public Foo[] FinalResult { get { return arr; } }
    Foo[] arr;
    public void BuildArr();
    ...
}
Run Code Online (Sandbox Code Playgroud)

然后就像这样使用:

Foo[] GetFooArr()
{
    var fb = new FooArrBuilder();
    fb.BuildArr();
    ...
    return fb.FinalResult;
}
Run Code Online (Sandbox Code Playgroud)

当一个数组构建在一个函数本地的实例中时,该数组是否会被移出构建它的实例,或者整个实例是否只保留在内存中以包含该数组?如果后者是这种情况,我不一定要复制数组 - 但也许我可以让这个类成为一个结构体?感谢帮助:)

如果你想在这里详细说明C#的内存模型,它可能会帮助我避免进一步的混淆.

提前致谢

c# memory arrays

3
推荐指数
1
解决办法
71
查看次数

标签 统计

arrays ×1

c# ×1

memory ×1