Marshal.WriteByte Método

Definición

Escribe un único byte en la memoria no administrada.

Sobrecargas

WriteByte(Object, Int32, Byte)
Obsoletos.

Escribe un valor de un solo byte en la memoria no administrada en un desplazamiento especificado.

WriteByte(IntPtr, Byte)

Escribe un único byte en la memoria no administrada.

WriteByte(IntPtr, Int32, Byte)

Escribe un valor de un solo byte en la memoria no administrada en un desplazamiento especificado.

WriteByte(Object, Int32, Byte)

Source:
Marshal.CoreCLR.cs
Source:
Marshal.CoreCLR.cs
Source:
Marshal.CoreCLR.cs

Precaución

WriteByte(Object, Int32, Byte) may be unavailable in future releases.

Escribe un valor de un solo byte en la memoria no administrada en un desplazamiento especificado.

C#
[System.Obsolete("WriteByte(Object, Int32, Byte) may be unavailable in future releases.")]
[System.Security.SecurityCritical]
public static void WriteByte(object ptr, int ofs, byte val);
C#
[System.Obsolete("WriteByte(Object, Int32, Byte) may be unavailable in future releases.")]
public static void WriteByte(object ptr, int ofs, byte val);
C#
public static void WriteByte(object ptr, int ofs, byte val);
C#
[System.Security.SecurityCritical]
public static void WriteByte(object ptr, int ofs, byte val);

Parámetros

ptr
Object

Dirección base en la memoria no administrada del objeto de destino.

ofs
Int32

Desplazamiento de bytes adicional, que se agrega al parámetro ptr antes de la escritura.

val
Byte

Valor que se va a escribir.

Atributos

Excepciones

La dirección base (ptr) más el byte de desplazamiento (ofs) produce un valor null o una dirección no válida.

ptr es un objeto ArrayWithOffset. Este método no acepta parámetros ArrayWithOffset.

Comentarios

WriteByte permite la interacción directa con una matriz de bytes de estilo C no administrada, lo que elimina el gasto de copiar una matriz no administrada completa (mediante Marshal.Copy) en una matriz administrada independiente antes de establecer sus valores de elemento.

Consulte también

Se aplica a

.NET 9 e outras versións
Produto Versións (Obsoleto)
.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)
.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 (4.7 (package-provided), 4.7.1 (package-provided), 4.7.2 (package-provided), 4.8 (package-provided))
.NET Standard 1.1, 2.0 (1.2, 1.3, 1.4, 1.5, 1.6, 2.1)
UWP (10.0)

WriteByte(IntPtr, Byte)

Source:
Marshal.cs
Source:
Marshal.cs
Source:
Marshal.cs

Escribe un único byte en la memoria no administrada.

C#
[System.Security.SecurityCritical]
public static void WriteByte(IntPtr ptr, byte val);
C#
public static void WriteByte(IntPtr ptr, byte val);

Parámetros

ptr
IntPtr

Dirección de la memoria no administrada en la que se va a escribir.

val
Byte

Valor que se va a escribir.

Atributos

Excepciones

ptr no es un formato reconocido.

o bien

ptr es null.

o bien

ptr no es válido.

Ejemplos

En el ejemplo siguiente se crea un bloque de memoria no administrada, se escribe un byte en la memoria no administrada, se lee el byte de la memoria no administrada y, a continuación, se elimina la memoria no administrada.

C#
using System;
using System.Runtime.InteropServices;

 class Example
 {
     static void Main(string[] args)
     {
          // Allocate 1 byte of unmanaged memory.
          IntPtr hGlobal = Marshal.AllocHGlobal(1);

          // Create a new byte.
          byte b = 1;
          Console.WriteLine("Byte written to unmanaged memory: " + b);

          // Write the byte to unmanaged memory.
          Marshal.WriteByte(hGlobal, b);

          // Read byte from unmanaged memory.
          byte c = Marshal.ReadByte(hGlobal);
          Console.WriteLine("Byte read from unmanaged memory: " + c);

          // Free the unmanaged memory.
          Marshal.FreeHGlobal(hGlobal);
          Console.WriteLine("Unmanaged memory was disposed.");
     }
}

Comentarios

WriteByte permite la interacción directa con una matriz de bytes de estilo C no administrada, lo que elimina el gasto de copiar una matriz no administrada completa (mediante Marshal.Copy) en una matriz administrada independiente antes de establecer sus valores de elemento.

Consulte también

Se aplica a

.NET 9 e outras versións
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
.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.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

WriteByte(IntPtr, Int32, Byte)

Source:
Marshal.cs
Source:
Marshal.cs
Source:
Marshal.cs

Escribe un valor de un solo byte en la memoria no administrada en un desplazamiento especificado.

C#
[System.Security.SecurityCritical]
public static void WriteByte(IntPtr ptr, int ofs, byte val);
C#
public static void WriteByte(IntPtr ptr, int ofs, byte val);

Parámetros

ptr
IntPtr

Dirección base de la memoria no administrada en la que se va a escribir.

ofs
Int32

Desplazamiento de bytes adicional, que se agrega al parámetro ptr antes de la escritura.

val
Byte

Valor que se va a escribir.

Atributos

Excepciones

La dirección base (ptr) más el byte de desplazamiento (ofs) produce un valor null o una dirección no válida.

Ejemplos

En el ejemplo siguiente se muestra cómo leer y escribir en una matriz no administrada mediante los ReadByte métodos y WriteByte .

C#
static void ReadWriteByte()
{
    // Allocate unmanaged memory. 
    int elementSize = 1;
    IntPtr unmanagedArray = Marshal.AllocHGlobal(10 * elementSize);

    // Set the 10 elements of the C-style unmanagedArray
    for (int i = 0; i < 10; i++)
    {
        Marshal.WriteByte(unmanagedArray, i * elementSize, ((Byte)(i + 1)));
    }
    Console.WriteLine("Unmanaged memory written.");

    Console.WriteLine("Reading unmanaged memory:");
    // Print the 10 elements of the C-style unmanagedArray
    for (int i = 0; i < 10; i++)
    {
        Console.WriteLine(Marshal.ReadByte(unmanagedArray, i * elementSize));
    }

    Marshal.FreeHGlobal(unmanagedArray);

    Console.WriteLine("Done. Press Enter to continue.");
    Console.ReadLine();
}

Comentarios

WriteByte permite la interacción directa con una matriz de bytes de estilo C no administrada, lo que elimina el gasto de copiar una matriz no administrada completa (mediante Marshal.Copy) en una matriz administrada independiente antes de establecer sus valores de elemento.

Consulte también

Se aplica a

.NET 9 e outras versións
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
.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.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0