Leggere in inglese

Condividi tramite


Buffer Classe

Definizione

Modifica matrici di tipi primitivi.

public static class Buffer
public sealed class Buffer
[System.Runtime.InteropServices.ComVisible(true)]
public static class Buffer
Ereditarietà
Buffer
Attributi

Esempio

Nell'esempio di codice seguente viene illustrato l'uso di diversi Buffer metodi di classe.

// Example of the Buffer class methods.
using System;

class BufferClassDemo
{
    // Display the array elements from right to left in hexadecimal.
    public static void DisplayArray( short[ ] arr )
    {
        Console.Write( "  arr:" );
        for( int loopX = arr.Length - 1; loopX >= 0; loopX-- )
            Console.Write( " {0:X4}", arr[ loopX ] );
        Console.WriteLine( );
    }

    public static void Main( )
    {
        // This array is to be modified and displayed.
        short[ ] arr = { 258, 259, 260, 261, 262, 263, 264,
                         265, 266, 267, 268, 269, 270, 271 };

        Console.WriteLine( "This example of the Buffer class " +
            "methods generates the following output.\n" +
            "Note: The array is displayed from right to left.\n" );
        Console.WriteLine( "Initial values of array:\n" );

        // Display the initial array values and ByteLength.
        DisplayArray( arr );
        Console.WriteLine( "\nBuffer.ByteLength( arr ): {0}",
            Buffer.ByteLength( arr ) );

        // Copy a region of the array; set a byte within the array.
        Console.WriteLine( "\nCall these methods: \n" +
            "  Buffer.BlockCopy( arr, 5, arr, 16, 9 ),\n" +
            "  Buffer.SetByte( arr, 7, 170 ).\n" );

        Buffer.BlockCopy( arr, 5, arr, 16, 9 );
        Buffer.SetByte( arr, 7, 170 );

        // Display the array and a byte within the array.
        Console.WriteLine( "Final values of array:\n" );
        DisplayArray( arr );
        Console.WriteLine( "\nBuffer.GetByte( arr, 26 ): {0}",
            Buffer.GetByte( arr, 26 ) );
    }
}

/*
This example of the Buffer class methods generates the following output.
Note: The array is displayed from right to left.

Initial values of array:

  arr: 010F 010E 010D 010C 010B 010A 0109 0108 0107 0106 0105 0104 0103 0102

Buffer.ByteLength( arr ): 28

Call these methods:
  Buffer.BlockCopy( arr, 5, arr, 16, 9 ),
  Buffer.SetByte( arr, 7, 170 ).

Final values of array:

  arr: 010F 0101 0801 0701 0601 0501 0109 0108 0107 0106 AA05 0104 0103 0102

Buffer.GetByte( arr, 26 ): 15
*/

Commenti

Buffer influisce solo sulle matrici di tipi primitivi; questa classe non si applica agli oggetti. Ogni tipo primitivo viene considerato come una serie di byte senza considerare alcun comportamento o limitazione associato al tipo primitivo.

Buffer fornisce metodi per copiare byte da una matrice di tipi primitivi a un'altra matrice di tipi primitivi, ottenere un byte da una matrice, impostare un byte in una matrice e ottenere la lunghezza di una matrice. Questa classe offre prestazioni migliori per la manipolazione dei tipi primitivi rispetto ai metodi simili nella System.Array classe.

Bufferè applicabile ai tipi primitivi seguenti: BooleanSByteUInt16Int32Int16UInt32Int64ByteCharIntPtrUIntPtrUInt64Single, e .Double

Metodi

BlockCopy(Array, Int32, Array, Int32, Int32)

Copia un numero specifico di byte da una matrice di origine, a partire da un offset particolare, in una matrice di destinazione a partire da un offset particolare.

ByteLength(Array)

Restituisce il numero di byte nella matrice specificata.

GetByte(Array, Int32)

Recupera il byte in una posizione specificata in una determinata matrice.

MemoryCopy(Void*, Void*, Int64, Int64)

Copia un numero di byte specificato come valore long integer da un indirizzo all'altro in memoria.

Questa API non è conforme a CLS.

MemoryCopy(Void*, Void*, UInt64, UInt64)

Copia un numero di byte specificato come valore long integer senza segno da un indirizzo all'altro in memoria.

Questa API non è conforme a CLS.

SetByte(Array, Int32, Byte)

Assegna un valore specificato a un byte in una particolare posizione in una determinata matrice.

Si applica a

Prodotto Versioni
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0