Buffer Classe

Definição

Manipula as matrizes de tipos primitivos.

public static class Buffer
public sealed class Buffer
[System.Runtime.InteropServices.ComVisible(true)]
public static class Buffer
Herança
Buffer
Atributos

Exemplos

O exemplo de código a seguir ilustra o uso de vários Buffer métodos de 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
*/

Comentários

Buffer afeta apenas matrizes de tipos primitivos; essa classe não se aplica a objetos . Cada tipo primitivo é tratado como uma série de bytes sem considerar qualquer comportamento ou limitação associado ao tipo primitivo.

Buffer fornece métodos para copiar bytes de uma matriz de tipos primitivos para outra matriz de tipos primitivos, obter um byte de uma matriz, definir um byte em uma matriz e obter o comprimento de uma matriz. Essa classe fornece melhor desempenho para manipular tipos primitivos do que métodos semelhantes na System.Array classe .

Buffer é aplicável aos seguintes tipos primitivos: Boolean, Char, SByte, Byte, Int16, UInt16, Int32, UInt32, Int64, UInt64, IntPtr, UIntPtr, , Singlee Double.

Métodos

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

Copia um número especificado de bytes de uma matriz de origem a partir de um deslocamento específico em uma matriz de destino a partir de um deslocamento específico.

ByteLength(Array)

Retorna o número de bytes na matriz especificada.

GetByte(Array, Int32)

Recupera o byte no local especificado na matriz especificada.

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

Copia um número de bytes especificado como um valor inteiro longo de um endereço na memória para outro.

Esta API não está em conformidade com CLS.

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

Copia um número de bytes especificado como um valor inteiro longo sem sinal de um endereço na memória para outro.

Esta API não está em conformidade com CLS.

SetByte(Array, Int32, Byte)

Atribui um valor especificado para um byte em um local específico em uma matriz especificada.

Aplica-se a