2017-02-03 88 views
-3

是否每個元素都需要重新分配給新的元素點或整個數組是否被複制?會返回一個數組變量只返回參考值嗎? C#

例如

public static int[] method() 
{ 
    declare array populated with values... 
    return array; 
} 

public static void first method() 
{ 
    int[] newarray = method(); 
} 

會的工作,或者我需要返回每個元素的值?

+0

一個數組可能是最接近你可以有一個指針在C#沒有實際上有一個明確的指針。 – Abion47

+0

目前尚不清楚混淆是什麼 - 您正在返回對單個數組對象的引用。你問是否'method'每次創建一個新的數組,或者'newarray'指向'method'中創建的數組的_copy_? –

+0

最好問「這就是我想要做的 - 我的代碼是否這樣做?」這將清楚你期望它做什麼。 –

回答

1

在你的榜樣,你會每次調用()方法時獲取數組的一個新實例,假設「聲明數組填充值」確實是這樣的:

var array = new int[] { 1,2,3,4,5 }; 

這裏有一個如何的例子做任何你想要做的事

private static int[] myStaticArray = method(); 
private static int[] method() { 
    var array = new int[] { 1,2,3,4,5 }; 
    return array; 
} 

public void first_method() { 
    //gets you the same array reference every time 
    int[] sameArray = myStaticArray; 

    //gets you a copy of the array 
    int[] copyOfSameArray = (int[])myStaticArray.Clone(); 

    //gets you a new array each time 
    int[] newArray = method(); 
} 
+0

所以如果我寫一個創建數組的方法,我將如何將它返回給一個變量? – DigitalDulphin