This documentation is archived and is not being maintained.
Buffer::SetByte Method
Visual Studio 2010
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 nullptr. |
| 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 namespace System; // Display the array contents in hexadecimal. 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(); } int main() { // These are the arrays to be modified with SetByte. array<Int16>^shorts = gcnew array<Int16>(10); array<Int64>^longs = gcnew array<Int64>(3); Console::WriteLine( "This example of the " "Buffer::SetByte( Array*, int, unsigned char ) \n" "method generates the following output.\n" "Note: The arrays are displayed from right to left.\n" ); Console::WriteLine( " Initial values of arrays:\n" ); // Display the initial values of the arrays. DisplayArray( shorts, "shorts" ); DisplayArray( longs, "longs" ); // 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 3 = 25, \n" " byte 6 = 64, byte 12 = 121, and byte 17 = 196:\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( shorts, "shorts" ); DisplayArray( longs, "longs" ); } /* This example of the Buffer::SetByte( Array*, int, unsigned char ) 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 */
Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2
The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.
Show: