Freigeben über


Buffer.GetByte(Array, Int32) Methode

Definition

Ruft das Byte an der angegebenen Position im angegebenen Array ab.

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

Parameter

array
Array

Ein -Array.

index
Int32

Eine Position im Array.

Gibt zurück

Byte

Das Byte an der angegebenen Position im Array.

Ausnahmen

array ist kein Array von Primitiven.

array ist null.

index ist negativ oder größer als die Länge von array.

array ist größer als 2 Gigabyte (GB).

Beispiele

Im folgenden Codebeispiel werden die Bytewerte an angegebenen Speicherorten innerhalb von Arrays mithilfe der GetByte Methode angezeigt.

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

let print obj1 obj2 obj3 obj4 = printfn $"{obj1,10}{obj2,10}{obj3,9} {obj4}"

// Display the array contents in hexadecimal.
let inline displayArray (arr: ^a []) name =
    // Get the array element width; format the formatting string.
    let elemWidth = Buffer.ByteLength arr / arr.Length

    // Display the array elements from right to left.
    printf $"{name,5}:"
    for i = arr.Length - 1 downto 0 do
        printf " %0*X" (2 * elemWidth) arr[i]
    printfn ""

let arrayInfo (arr: Array) name index =
    let value = Buffer.GetByte(arr, index)

    // Display the array name, index, and byte to be viewed.
    print name index value $"0x{value:X2}"

// These are the arrays to be viewed with GetByte.
let longs =
    [| 333333333333333333L; 666666666666666666L; 999999999999999999L |]
let ints =
    [| 111111111; 222222222; 333333333; 444444444; 555555555 |]

printfn "This example of the Buffer.GetByte(Array, int) \nmethod generates the following output.\nNote: The arrays are displayed from right to left.\n"
printfn "  Values of arrays:\n"

// Display the values of the arrays.
displayArray longs "longs"
displayArray ints "ints"
printfn ""

print "Array" "index" "value" ""
print "-----" "-----" "-----" "----"

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

Hinweise

Die GetByte Methode ruft ein bestimmtes Byte aus dem Array ab. Das Array muss ein Array von Grundtypen sein.

Gilt für