Esta documentación está archivada y no tiene mantenimiento.

Buffer (Clase)

Manipula matrices de tipos primitivos.

Espacio de nombres: System
Ensamblado: mscorlib (en mscorlib.dll)

[ComVisibleAttribute(true)] 
public static class Buffer
/** @attribute ComVisibleAttribute(true) */ 
public final class Buffer
ComVisibleAttribute(true) 
public final class Buffer

Buffer sólo afecta a matrices de tipos primitivos; esta clase no se aplica a objetos. Se trata cada tipo primitivo como serie de bytes sin tener en cuenta ningún comportamiento o limitación asociado con el tipo primitivo.

Buffer proporciona métodos para copiar bytes de una matriz de tipos primitivos a otra, 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 de la clase System.Array.

Buffer es aplicable a los tipos primitivos siguientes: Boolean, Char, SByte, Byte, Int16, UInt16, Int32, UInt32, Int64, UInt64, IntPtr, UIntPtr, Single y .Double .

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

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

// Example of the Buffer class methods.
import 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.get_Length() - 1; loopX >= 0; loopX--) {
            Console.Write(" {0:X4}", arr.get_Item(loopX));
        }
        Console.WriteLine();
    } //DisplayArray

    public static void main(String[] args)
    {
        // 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}", 
            (Int32)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, (ubyte)(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}", 
            System.Convert.ToString(Buffer.GetByte(arr, 26)));
    } //main
} //BufferClassDemo

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

Los miembros estáticos públicos (Shared en Visual Basic) de este tipo son seguros para la ejecución de subprocesos. No se garantiza que los miembros de instancias sean seguros para la ejecución de subprocesos.

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

.NET Framework no admite todas las versiones de cada plataforma. Para obtener una lista de las versiones admitidas, vea Requisitos del sistema.

.NET Framework

Compatible con: 2.0, 1.1, 1.0

.NET Compact Framework

Compatible con: 2.0, 1.0
Mostrar: