Buffer.GetByte(Array, Int32) Buffer.GetByte(Array, Int32) Buffer.GetByte(Array, Int32) Method

Definition

Retrieves the byte at the specified location in the specified array.

public:
 static System::Byte GetByte(Array ^ array, int index);
public static byte GetByte (Array array, int index);
static member GetByte : Array * int -> byte

Parameters

array
Array Array Array

An array.

index
Int32 Int32 Int32

A location in the array.

Returns

The byte at the specified location in the array.

Exceptions

index is negative or greater than the length of array.

array is larger than 2 gigabytes (GB).

Examples

The following code example displays the byte values at specified locations within arrays using the GetByte method.

// Example of the Buffer::GetByte method.
using namespace System;
#define formatter "{0,10}{1,10}{2,9} {3}"

// 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,5}:", name );
   for ( int loopX = arr->Length - 1; loopX >= 0; loopX-- )
      Console::Write( format, arr->GetValue( loopX ) );
   Console::WriteLine();
}

void ArrayInfo( Array^ arr, String^ name, int index )
{
   unsigned char value = Buffer::GetByte( arr, index );
   
   // Display the array name, index, and byte to be viewed.
   Console::WriteLine( formatter, name, index, value, String::Format( "0x{0:X2}", value ) );
}

int main()
{
   
   // These are the arrays to be viewed with GetByte.
   array<__int64>^longs = {333333333333333333,666666666666666666,999999999999999999};
   array<int>^ints = {111111111,222222222,333333333,444444444,555555555};
   Console::WriteLine( "This example of the "
   "Buffer::GetByte( Array*, int ) \n"
   "method generates the following output.\n"
   "Note: The arrays are displayed from right to left.\n" );
   Console::WriteLine( "  Values of arrays:\n" );
   
   // Display the values of the arrays.
   DisplayArray( longs, "longs" );
   DisplayArray( ints, "ints" );
   Console::WriteLine();
   Console::WriteLine( formatter, "Array", "index", "value", "" );
   Console::WriteLine( formatter, "-----", "-----", "-----", "----" );
   
   // Display the Length and ByteLength for each array.
   ArrayInfo( ints, "ints", 0 );
   ArrayInfo( ints, "ints", 7 );
   ArrayInfo( ints, "ints", 10 );
   ArrayInfo( ints, "ints", 17 );
   ArrayInfo( longs, "longs", 0 );
   ArrayInfo( longs, "longs", 6 );
   ArrayInfo( longs, "longs", 10 );
   ArrayInfo( longs, "longs", 17 );
   ArrayInfo( longs, "longs", 21 );
}

/*
This example of the Buffer::GetByte( Array*, int )
method generates the following output.
Note: The arrays are displayed from right to left.

  Values of arrays:

longs: 0DE0B6B3A763FFFF 094079CD1A42AAAA 04A03CE68D215555
 ints: 211D1AE3 1A7DAF1C 13DE4355 0D3ED78E 069F6BC7

     Array     index    value
     -----     -----    ----- ----
      ints         0      199 0xC7
      ints         7       13 0x0D
      ints        10      222 0xDE
      ints        17       26 0x1A
     longs         0       85 0x55
     longs         6      160 0xA0
     longs        10       66 0x42
     longs        17      255 0xFF
     longs        21      182 0xB6
*/
// Example of the Buffer.GetByte method.
using System;

class GetByteDemo
{
    const string formatter = "{0,10}{1,10}{2,9} {3}";

    // 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,5}:", name );
        for( int loopX = arr.Length - 1; loopX >= 0; loopX-- )
            Console.Write( format, arr.GetValue( loopX ) );
        Console.WriteLine( );
    }

    public static void ArrayInfo( Array arr, string name, int index )
    {
        byte value = Buffer.GetByte( arr, index );

        // Display the array name, index, and byte to be viewed.
        Console.WriteLine( formatter, name, index, value, 
            String.Format( "0x{0:X2}", value ) );
    }

    public static void Main( )
    {
        // These are the arrays to be viewed with GetByte.
        long[ ] longs = 
            { 333333333333333333, 666666666666666666, 999999999999999999 };
        int[ ]  ints  = 
            { 111111111, 222222222, 333333333, 444444444, 555555555 };

        Console.WriteLine( "This example of the " +
            "Buffer.GetByte( Array, int ) \n" +
            "method generates the following output.\n" +
            "Note: The arrays are displayed from right to left.\n" );
        Console.WriteLine( "  Values of arrays:\n" );

        // Display the values of the arrays.
        DisplayArray( longs, "longs" );
        DisplayArray( ints, "ints" );
        Console.WriteLine( );

        Console.WriteLine( formatter, "Array", "index", "value", "" );
        Console.WriteLine( formatter, "-----", "-----", "-----", 
            "----" );

        // Display the Length and ByteLength for each array.
        ArrayInfo( ints, "ints", 0 );
        ArrayInfo( ints, "ints", 7 );
        ArrayInfo( ints, "ints", 10 );
        ArrayInfo( ints, "ints", 17 );
        ArrayInfo( longs, "longs", 0 );
        ArrayInfo( longs, "longs", 6 );
        ArrayInfo( longs, "longs", 10 );
        ArrayInfo( longs, "longs", 17 );
        ArrayInfo( longs, "longs", 21 );
    }
}

/*
This example of the Buffer.GetByte( Array, int )
method generates the following output.
Note: The arrays are displayed from right to left.

  Values of arrays:

longs: 0DE0B6B3A763FFFF 094079CD1A42AAAA 04A03CE68D215555
 ints: 211D1AE3 1A7DAF1C 13DE4355 0D3ED78E 069F6BC7

     Array     index    value
     -----     -----    ----- ----
      ints         0      199 0xC7
      ints         7       13 0x0D
      ints        10      222 0xDE
      ints        17       26 0x1A
     longs         0       85 0x55
     longs         6      160 0xA0
     longs        10       66 0x42
     longs        17      255 0xFF
     longs        21      182 0xB6
*/
' Example of the Buffer.GetByte method.
Module GetByteDemo

    Const formatter As String = "{0,10}{1,10}{2,9} {3}"

    ' Display the array contents in hexadecimal.
    Sub DisplayArray( arr As Array, name As String )

        ' Get the array element width; format the formatting string.
        Dim loopX     As Integer
        Dim elemWidth As Integer = _
            Buffer.ByteLength( arr ) / arr.Length
        Dim format    As String = _
            String.Format( " {{0:X{0}}}", 2 * elemWidth )

        ' Display the array elements from right to left.
        Console.Write( "{0,7}:", name )
        For loopX = arr.Length - 1 to 0 Step -1
            Console.Write( format, arr( loopX ) )
        Next loopX
        Console.WriteLine( )
    End Sub

    Sub ArrayInfo( arr As Array, name As String, index As Integer )
        
        Dim value As Byte = Buffer.GetByte( arr, index )

        ' Display the array name, index, and byte to be viewed.
        Console.WriteLine( formatter, name, index, value, _
            String.Format( "&H{0:X2}", value ) )
    End Sub

    Sub Main( )

        ' These are the arrays to be viewed with GetByte.
        Dim longs( ) As Long  = _
            { 333333333333333333, 666666666666666666, 999999999999999999 }
        Dim ints( )  As Integer = _
            { 111111111, 222222222, 333333333, 444444444, 555555555 }

        Console.WriteLine( "This example of the " & _
            "Buffer.GetByte( Array, Integer ) " & vbCrLf & _
            "method generates the following output." & vbCrLf & _
            "Note: The arrays are displayed from right to left." )
        Console.WriteLine( vbCrLf & "  Values of arrays:" & vbCrLf )

        ' Display the values of the arrays.
        DisplayArray( longs, "longs" )
        DisplayArray( ints, "ints" )
        Console.WriteLine( )

        Console.WriteLine( formatter, "Array", "index", _
            "value", "" )
        Console.WriteLine( formatter, "-----", "-----", _
            "-----", "----" )

        ' Display the Length and ByteLength for each array.
        ArrayInfo( ints, "ints", 0 )
        ArrayInfo( ints, "ints", 7 )
        ArrayInfo( ints, "ints", 10 )
        ArrayInfo( ints, "ints", 17 )
        ArrayInfo( longs, "longs", 0 )
        ArrayInfo( longs, "longs", 6 )
        ArrayInfo( longs, "longs", 10 )
        ArrayInfo( longs, "longs", 17 )
        ArrayInfo( longs, "longs", 21 )
    End Sub 
End Module 

' This example of the Buffer.GetByte( Array, Integer )
' method generates the following output.
' Note: The arrays are displayed from right to left.
' 
'   Values of arrays:
' 
'   longs: 0DE0B6B3A763FFFF 094079CD1A42AAAA 04A03CE68D215555
'    ints: 211D1AE3 1A7DAF1C 13DE4355 0D3ED78E 069F6BC7
' 
'      Array     index    value
'      -----     -----    ----- ----
'       ints         0      199 &HC7
'       ints         7       13 &H0D
'       ints        10      222 &HDE
'       ints        17       26 &H1A
'      longs         0       85 &H55
'      longs         6      160 &HA0
'      longs        10       66 &H42
'      longs        17      255 &HFF
'      longs        21      182 &HB6

Remarks

The GetByte method gets a particular byte out of the array. The array must be an array of primitives.

Applies to