假设一个类实例将构建数组:
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#的内存模型,它可能会帮助我避免进一步的混淆.
提前致谢