2015-10-31 29 views
1
Array.Copy(sourceArray,targetArray,length); 

Buffer.BlockCopy(sourceArray,startInSource,targetArray,startInTarget,Length); 

變量是長度爲sourceArray.LengthsourceArray.Length * sizeof(type)最後的Array.Copy&Buffer.BlockCopy

其中,type是sourceArray中元素的類型,例如,當源數組是整數時int。

我在使用sourceArray.Length時得到預期的結果,但我看到無數使用sourceArray.Length * sizeof(type)的示例。我錯過了什麼?

+0

你不用字節來做'sourceArray.Length * sizeof(type)'。這只是一個簡單的副本。當長度爲1時,它將複製1個4字節的整數。 –

回答

1

Buffer.BlockCopy最後一個參數是count它代表要複製的字節數。

但在Array.Copy的最後一個參數是:

長度,類型:System.Int32:一個32位整數,它表示的數量的元件來複制

所以,如果你想複製整個sourceArraydestinationArray使用Array.Copy你應該使用sourceArray.Length,如果你有使用Buffer.BlockCopy然後使用sourceArray.Length * sizeof(type)