Buffer.GetByte Method

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

Namespace: System
Assembly: mscorlib (in mscorlib.dll)

public static byte GetByte (
	Array array,
	int index
)
public static byte GetByte (
	Array array, 
	int index
)
public static function GetByte (
	array : Array, 
	index : int
) : byte

Parameters

array

An array.

index

A location in the array.

Return Value

Returns the index byte in the array.

Exception typeCondition

ArgumentException

array is not a primitive.

ArgumentNullException

array is a null reference (Nothing in Visual Basic).

ArgumentOutOfRangeException

index is negative or greater than the length of array.

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

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

// 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.
import System.*;

class GetByteDemo
{
    private static 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.get_Length();
        String format = String.Format(" {{0:X{0}}}", (Int32)(2 * elemWidth));

        // Display the array elements from right to left.
        Console.Write("{0,5}:", name);
        for (int loopX = arr.get_Length() - 1; loopX >= 0; loopX--) {
            Console.Write(format, arr.GetValue(loopX));
        }
        Console.WriteLine();
    } //DisplayArray

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

        // Display the array name, index, and byte to be viewed.
        Object objArr[] = new Object[] { name, (Int32)index, (UInt16)value, 
            String.Format("0x{0:X2}", (UInt16)value) };
        Console.WriteLine(formatter, objArr);
    } //ArrayInfo

    public static void main(String[] args)
    {
        // These are the arrays to be viewed with GetByte.
        long longs[] =  { 333333333333333333L, 666666666666666666L, 
                            999999999999999999L };
        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();

        Object objArr1[] = new Object[] { "Array", "index", "value", ""};
        Console.WriteLine(formatter, objArr1);

        Object objArr2[] = new Object[] { "-----", "-----","-----", "----" };
        Console.WriteLine(formatter, objArr2);

        // 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);
    } //main
} //GetByteDemo

/*
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
*/

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see System Requirements.

.NET Framework

Supported in: 2.0, 1.1, 1.0

.NET Compact Framework

Supported in: 2.0, 1.0

Community Additions

ADD
Show: