以下代码
double[] src = new[] { 1d, 1d, 2d };
double[] dst = new[] { 0d, 0d, 0d };
Buffer.BlockCopy(src, 0, dst, 0, 3);
for (int i = 0; i < 3; i++)
{
Console.Write(src[i] + " ");
}
Console.WriteLine();
for (int i = 0; i < 3; i++)
{
Console.Write(dst[i] + " ");
}
Console.WriteLine();
输出
1 1 2
0 0 0
我预计两条线上的值相同吗?
答案 0 :(得分:2)
您告诉BlockCopy
复制3 字节。你想要
Buffer.BlockCopy(src, 0, dst, 0, 24);
或
Buffer.BlockCopy(src, 0, dst, 0, 3 * sizeof(double));
...为了复制所有24个字节。 Buffer.BlockCopy
的第五个参数记录为:
要复制的字节数。
不要复制的数组元素的数量。