Buffer.SetByte Method
[ This article is for Windows Phone 8 developers. If you’re developing for Windows 10, see the latest documentation. ]
Assigns a specified value to a byte at a particular location in a specified array.
Assembly: mscorlib (in mscorlib.dll)
Parameters
- array
- Type: System.Array
An array.
- index
- Type: System.Int32
A location in the array.
- value
- Type: System.Byte
A value to assign.
| Exception | Condition |
|---|---|
| ArgumentException | array is not a primitive. |
| ArgumentNullException | array is null. |
| ArgumentOutOfRangeException | index is negative or greater than the length of array. |
The following code example assigns values to bytes at particular locations within arrays using the SetByte method.
// Example of the Buffer.SetByte method. using System; class Example { // Display the array contents in hexadecimal. public static void DisplayArray(System.Windows.Controls.TextBlock outputBlock, 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. outputBlock.Text += String.Format("{0,7}:", name); for (int loopX = arr.Length - 1; loopX >= 0; loopX--) outputBlock.Text += String.Format(format, arr.GetValue(loopX)); outputBlock.Text += "\n"; } public static void Demo(System.Windows.Controls.TextBlock outputBlock) { // These are the arrays to be modified with SetByte. short[] shorts = new short[10]; long[] longs = new long[3]; outputBlock.Text += "This example of the " + "Buffer.SetByte( Array, int, byte ) \n" + "method generates the following output.\n" + "Note: The arrays are displayed from right to left.\n" + "\n"; outputBlock.Text += " Initial values of arrays:\n" + "\n"; // Display the initial values of the arrays. DisplayArray(outputBlock, shorts, "shorts"); DisplayArray(outputBlock, longs, "longs"); // Copy two regions of source array to destination array, // and two overlapped copies from source to source. outputBlock.Text += "\n" + " Array values after setting byte 3 = 25, \n" + " byte 6 = 64, byte 12 = 121, and byte 17 = 196:\n" + "\n"; Buffer.SetByte(shorts, 3, 25); Buffer.SetByte(shorts, 6, 64); Buffer.SetByte(shorts, 12, 121); Buffer.SetByte(shorts, 17, 196); Buffer.SetByte(longs, 3, 25); Buffer.SetByte(longs, 6, 64); Buffer.SetByte(longs, 12, 121); Buffer.SetByte(longs, 17, 196); // Display the arrays again. DisplayArray(outputBlock, shorts, "shorts"); DisplayArray(outputBlock, longs, "longs"); } } /* This example of the Buffer.SetByte( Array, int, byte ) method generates the following output. Note: The arrays are displayed from right to left. Initial values of arrays: shorts: 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 longs: 0000000000000000 0000000000000000 0000000000000000 Array values after setting byte 3 = 25, byte 6 = 64, byte 12 = 121, and byte 17 = 196: shorts: 0000 C400 0000 0079 0000 0000 0040 0000 1900 0000 longs: 000000000000C400 0000007900000000 0040000019000000 */
Show: