Ler en inglés

Compartir por


Buffer Clase

Definición

Manipula matrices de tipos primitivos.

C#
public static class Buffer
C#
public sealed class Buffer
C#
[System.Runtime.InteropServices.ComVisible(true)]
public static class Buffer
Herencia
Buffer
Atributos

Ejemplos

En el ejemplo de código siguiente se muestra el uso de varios Buffer métodos de clase.

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

Comentarios

Buffer solo afecta a matrices de tipos primitivos; esta clase no se aplica a los objetos . Cada tipo primitivo se trata como una serie de bytes sin tener en cuenta ningún comportamiento o limitación asociado al tipo primitivo.

Buffer proporciona métodos para copiar bytes de una matriz de tipos primitivos a otra matriz de tipos primitivos, obtener un byte de una matriz, establecer un byte en una matriz y obtener la longitud de una matriz. Esta clase proporciona un mejor rendimiento para manipular tipos primitivos que métodos similares en la System.Array clase .

Bufferes aplicable a los siguientes tipos primitivos: Boolean, Char, ByteUInt16Int32UInt32Int16SByte, Int64IntPtrUIntPtrUInt64Singley .Double

Métodos

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

Copia un número especificado de bytes de una matriz de origen a partir de un desplazamiento determinado a una matriz de destino a partir de un desplazamiento determinado.

ByteLength(Array)

Devuelve el número de bytes de la matriz especificada.

GetByte(Array, Int32)

Recupera el byte en la posición especificada de la matriz determinada.

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

Copia un número de bytes especificado como un valor de entero long desde una dirección de la memoria en otra.

Esta API no es conforme a CLS.

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

Copia un número de bytes especificado como un valor de entero long sin signo desde una dirección de la memoria a otra.

Esta API no es conforme a CLS.

SetByte(Array, Int32, Byte)

Asigna un valor especificado a un byte en una posición determinada de una matriz especificada.

Se aplica a

Produto Versións
.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, 8, 9, 10
.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, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0