这可能是一个初学者的问题,但我一直在阅读相关内容,发现很难理解。
这是msdn页面关于该主题的示例(仅略小)。
在最后,示例中他们从右到左打印数组:
我不明白这是如何工作的,能否有人给我一些相关信息?
这是msdn页面关于该主题的示例(仅略小)。
using System;
class SetByteDemo
{
// Display the array contents in hexadecimal.
public static void DisplayArray(Array arr, string name)
{
// Get the array element width; format the formatting string.
int elemWidth = Buffer.ByteLength(arr) / arr.Length;
string format = String.Format(" {{0:X{0}}}", 2 * elemWidth);
// Display the array elements from right to left.
Console.Write("{0,7}:", name);
for (int loopX = arr.Length - 1; loopX >= 0; loopX--)
Console.Write(format, arr.GetValue(loopX));
Console.WriteLine();
}
public static void Main()
{
// These are the arrays to be modified with SetByte.
short[] shorts = new short[2];
Console.WriteLine("Initial values of arrays:\n");
// Display the initial values of the arrays.
DisplayArray(shorts, "shorts");
// Copy two regions of source array to destination array,
// and two overlapped copies from source to source.
Console.WriteLine("\n" +
" Array values after setting byte 1 = 1 and byte 3 = 200\n");
Buffer.SetByte(shorts, 1, 1);
Buffer.SetByte(shorts, 3, 10);
// Display the arrays again.
DisplayArray(shorts, "shorts");
Console.ReadKey();
}
}
SetByte
应该很容易理解,但是如果在进行 SetByte
操作之前打印 shorts 数组,则该数组看起来像这样
{short[2]}
[0]: 0
[1]: 0
在执行第一个Buffer.SetByte(shorts, 1, 1);
之后,数组变为
{short[2]}
[0]: 256
[1]: 0
在设置Buffer.SetByte(shorts, 3, 10);
之后,数组变为
{short[2]}
[0]: 256
[1]: 2560
在最后,示例中他们从右到左打印数组:
0A00 0100
我不明白这是如何工作的,能否有人给我一些相关信息?