2016-08-13 65 views
2

我有麻煩Array.clear功能Vb.net:Array.clear清潔相關係列問題

這是簡單的代碼:

Dim Array1() As Double = {1, 2} 
Dim Array2(UBound(Array1)) As Double 
Array2 = Array1 
Array.Clear(Array1, 0, Array1.Length) 

做Array.Clear後,它不僅陣列1已清潔,但陣列2已清潔。

這裏發生了什麼事?我能做些什麼來防止這種情況發生?

謝謝!

回答

3

發生了什麼事:

Array2 = Array1 

上述聲明不會複製數組1到數組2的元素,而不是上面的語句只在下面的鏈接

Assigning one array to another

提到副本指針

因爲以上所述,當你做

Array.Clear(Array1, 0, Array1.Length) 

將Array1的值更改爲0,並將Array2指向Array 1的新值,即全0。

如何預防呢:

使用陣副本副本的元素。

Dim Array1() As Double = {1, 2} 
Dim Array2(UBound(Array1)) As Double 
Array.Copy(Array1,Array2,Array2.Length) //Array.Copy(source, target, target.Length) 
Array.Clear(Array1, 0, Array1.Length) 
+0

非常感謝!這一切都需要 –

+0

@NguyenDucLinh最受歡迎!很高興我能幫上忙 :) – ZerosAndOnes