double [] GenerateArray()和void GenerateArray(ref double [])是相同的

时间:2011-07-15 08:57:30

标签: c#

每当c ++返回一个对象时,一旦返回该方法,对象的所有内容都会被复制到新对象,但在C#中没有这样的东西,AFAIK。

我的问题是,在C#中,在速度和内存消耗方面是否低于两个?

double[] GenerateArray()

void GenerateArray(ref double[] result)

1 个答案:

答案 0 :(得分:2)

他们将相当不错;请注意,此处out优先于ref。但是,由于性能没有明显的区别,我强烈建议更加惯用double[] GenerateArray() via return是一个更好的实现;同样重要的是,out / ref是混淆的常见来源,并且可能经常需要为此目的引入额外的变量(而不是使用返回值作为表达式)。

非常小,但这也意味着 GenerateArray内部的间接少一个 - 意思是:使用ref / out,{ {1}}需要首先取消引用result以获取数组引用,然后取消引用该数组。