Marshal.WriteInt16 Метод

Определение

Записывает 16-разрядное целое число со знаком в неуправляемую память. Поддерживается запись в неуправляемые расположения памяти.

Перегрузки

Имя Описание
WriteInt16(IntPtr, Char)

Записывает символ в виде 16-разрядного целочисленного значения в неуправляемую память.

WriteInt16(IntPtr, Int16)

Записывает 16-разрядное целое значение в неуправляемую память.

WriteInt16(IntPtr, Int32, Char)

Записывает 16-разрядное целое число со знаком в неуправляемую память при указанном смещение.

WriteInt16(IntPtr, Int32, Int16)

Записывает 16-разрядное целое число со знаком в неуправляемую память с указанным смещением.

WriteInt16(Object, Int32, Char)
Устаревшие.

Записывает 16-разрядное целое число со знаком в неуправляемую память при указанном смещение.

WriteInt16(Object, Int32, Int16)
Устаревшие.

Записывает 16-разрядное целое число со знаком в неуправляемую память при указанном смещение.

WriteInt16(IntPtr, Char)

Исходный код:
Marshal.cs
Исходный код:
Marshal.cs
Исходный код:
Marshal.cs
Исходный код:
Marshal.cs
Исходный код:
Marshal.cs

Записывает символ в виде 16-разрядного целочисленного значения в неуправляемую память.

public:
 static void WriteInt16(IntPtr ptr, char val);
[System.Security.SecurityCritical]
public static void WriteInt16(IntPtr ptr, char val);
public static void WriteInt16(IntPtr ptr, char val);
[<System.Security.SecurityCritical>]
static member WriteInt16 : nativeint * char -> unit
static member WriteInt16 : nativeint * char -> unit
Public Shared Sub WriteInt16 (ptr As IntPtr, val As Char)

Параметры

ptr
IntPtr

nativeint

Адрес в неуправляемой памяти для записи.

val
Char

Значение для записи.

Атрибуты

Исключения

ptr не является распознаваемым форматом.

–или–

ptr равно null.

–или–

ptr недопустим.

Примеры

В следующем примере показано, как считывать и записывать данные в неуправляемый массив с помощью ReadInt16 методов и WriteInt16 методов.

static void ReadWriteInt16()
{
    // Allocate unmanaged memory. 
    int elementSize = 2;
    IntPtr unmanagedArray = Marshal.AllocHGlobal(10 * elementSize);

    // Set the 10 elements of the C-style unmanagedArray
    for (int i = 0; i < 10; i++)
    {
        Marshal.WriteInt16(unmanagedArray, i * elementSize, ((Int16)(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.ReadInt16(unmanagedArray, i * elementSize));
    }

    Marshal.FreeHGlobal(unmanagedArray);

    Console.WriteLine("Done. Press Enter to continue.");
    Console.ReadLine();
}
Sub ReadWriteInt16()
    ' Allocate unmanaged memory. 
    Dim elementSize As Integer = 2
    Dim unmanagedArray As IntPtr = Marshal.AllocHGlobal(10 * elementSize)

    ' Set the 10 elements of the C-style unmanagedArray
    For i As Integer = 0 To 9
        Marshal.WriteInt16(unmanagedArray, i * elementSize, CType(i + 1, Int16))
    Next i
    Console.WriteLine("Unmanaged memory written.")

    Console.WriteLine("Reading unmanaged memory:")
    ' Print the 10 elements of the C-style unmanagedArray
    For i As Integer = 0 To 9
        Console.WriteLine(Marshal.ReadInt16(unmanagedArray, i * elementSize))
    Next i

    Marshal.FreeHGlobal(unmanagedArray)

    Console.WriteLine("Done. Press Enter to continue.")
    Console.ReadLine()
End Sub

Комментарии

WriteInt16 позволяет напрямую взаимодействовать с неуправляемым 16-разрядным подписанным массивом, устраняя расходы на копирование всего неуправляемого массива (с помощью Marshal.Copy) в отдельный управляемый массив перед заданием значений его элементов.

Поддерживается запись в неуправляемые расположения памяти.

См. также раздел

Применяется к

WriteInt16(IntPtr, Int16)

Исходный код:
Marshal.cs
Исходный код:
Marshal.cs
Исходный код:
Marshal.cs
Исходный код:
Marshal.cs
Исходный код:
Marshal.cs

Записывает 16-разрядное целое значение в неуправляемую память.

public:
 static void WriteInt16(IntPtr ptr, short val);
[System.Security.SecurityCritical]
public static void WriteInt16(IntPtr ptr, short val);
public static void WriteInt16(IntPtr ptr, short val);
[<System.Security.SecurityCritical>]
static member WriteInt16 : nativeint * int16 -> unit
static member WriteInt16 : nativeint * int16 -> unit
Public Shared Sub WriteInt16 (ptr As IntPtr, val As Short)

Параметры

ptr
IntPtr

nativeint

Адрес в неуправляемой памяти для записи.

val
Int16

Значение для записи.

Атрибуты

Исключения

ptr не является распознаваемым форматом.

–или–

ptr равно null.

–или–

ptr недопустим.

Примеры

В следующем примере показано, как считывать и записывать данные в неуправляемый массив с помощью ReadInt16 методов и WriteInt16 методов.

static void ReadWriteInt16()
{
    // Allocate unmanaged memory. 
    int elementSize = 2;
    IntPtr unmanagedArray = Marshal.AllocHGlobal(10 * elementSize);

    // Set the 10 elements of the C-style unmanagedArray
    for (int i = 0; i < 10; i++)
    {
        Marshal.WriteInt16(unmanagedArray, i * elementSize, ((Int16)(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.ReadInt16(unmanagedArray, i * elementSize));
    }

    Marshal.FreeHGlobal(unmanagedArray);

    Console.WriteLine("Done. Press Enter to continue.");
    Console.ReadLine();
}
Sub ReadWriteInt16()
    ' Allocate unmanaged memory. 
    Dim elementSize As Integer = 2
    Dim unmanagedArray As IntPtr = Marshal.AllocHGlobal(10 * elementSize)

    ' Set the 10 elements of the C-style unmanagedArray
    For i As Integer = 0 To 9
        Marshal.WriteInt16(unmanagedArray, i * elementSize, CType(i + 1, Int16))
    Next i
    Console.WriteLine("Unmanaged memory written.")

    Console.WriteLine("Reading unmanaged memory:")
    ' Print the 10 elements of the C-style unmanagedArray
    For i As Integer = 0 To 9
        Console.WriteLine(Marshal.ReadInt16(unmanagedArray, i * elementSize))
    Next i

    Marshal.FreeHGlobal(unmanagedArray)

    Console.WriteLine("Done. Press Enter to continue.")
    Console.ReadLine()
End Sub

Комментарии

WriteInt16 позволяет напрямую взаимодействовать с неуправляемым 16-разрядным подписанным массивом, устраняя расходы на копирование всего неуправляемого массива (с помощью Marshal.Copy) в отдельный управляемый массив перед заданием значений его элементов.

Поддерживается запись в неуправляемые расположения памяти.

См. также раздел

Применяется к

WriteInt16(IntPtr, Int32, Char)

Исходный код:
Marshal.cs
Исходный код:
Marshal.cs
Исходный код:
Marshal.cs
Исходный код:
Marshal.cs
Исходный код:
Marshal.cs

Записывает 16-разрядное целое число со знаком в неуправляемую память при указанном смещение.

public:
 static void WriteInt16(IntPtr ptr, int ofs, char val);
[System.Security.SecurityCritical]
public static void WriteInt16(IntPtr ptr, int ofs, char val);
public static void WriteInt16(IntPtr ptr, int ofs, char val);
[<System.Security.SecurityCritical>]
static member WriteInt16 : nativeint * int * char -> unit
static member WriteInt16 : nativeint * int * char -> unit
Public Shared Sub WriteInt16 (ptr As IntPtr, ofs As Integer, val As Char)

Параметры

ptr
IntPtr

nativeint

Базовый адрес в собственной куче для записи.

ofs
Int32

Дополнительное смещение байтов, которое добавляется в параметр перед записью ptr .

val
Char

Значение для записи.

Атрибуты

Исключения

Базовый адрес (ptr) плюс байт смещения (ofs) создает недопустимый или пустой адрес.

Примеры

В следующем примере показано, как считывать и записывать данные в неуправляемый массив с помощью ReadInt16 методов и WriteInt16 методов.

static void ReadWriteInt16()
{
    // Allocate unmanaged memory. 
    int elementSize = 2;
    IntPtr unmanagedArray = Marshal.AllocHGlobal(10 * elementSize);

    // Set the 10 elements of the C-style unmanagedArray
    for (int i = 0; i < 10; i++)
    {
        Marshal.WriteInt16(unmanagedArray, i * elementSize, ((Int16)(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.ReadInt16(unmanagedArray, i * elementSize));
    }

    Marshal.FreeHGlobal(unmanagedArray);

    Console.WriteLine("Done. Press Enter to continue.");
    Console.ReadLine();
}
Sub ReadWriteInt16()
    ' Allocate unmanaged memory. 
    Dim elementSize As Integer = 2
    Dim unmanagedArray As IntPtr = Marshal.AllocHGlobal(10 * elementSize)

    ' Set the 10 elements of the C-style unmanagedArray
    For i As Integer = 0 To 9
        Marshal.WriteInt16(unmanagedArray, i * elementSize, CType(i + 1, Int16))
    Next i
    Console.WriteLine("Unmanaged memory written.")

    Console.WriteLine("Reading unmanaged memory:")
    ' Print the 10 elements of the C-style unmanagedArray
    For i As Integer = 0 To 9
        Console.WriteLine(Marshal.ReadInt16(unmanagedArray, i * elementSize))
    Next i

    Marshal.FreeHGlobal(unmanagedArray)

    Console.WriteLine("Done. Press Enter to continue.")
    Console.ReadLine()
End Sub

Комментарии

WriteInt16 позволяет напрямую взаимодействовать с неуправляемым 16-разрядным подписанным массивом, устраняя расходы на копирование всего неуправляемого массива (с помощью Marshal.Copy) в отдельный управляемый массив перед заданием значений его элементов.

Поддерживается запись в неуправляемые расположения памяти.

См. также раздел

Применяется к

WriteInt16(IntPtr, Int32, Int16)

Исходный код:
Marshal.cs
Исходный код:
Marshal.cs
Исходный код:
Marshal.cs
Исходный код:
Marshal.cs
Исходный код:
Marshal.cs

Записывает 16-разрядное целое число со знаком в неуправляемую память с указанным смещением.

public:
 static void WriteInt16(IntPtr ptr, int ofs, short val);
[System.Security.SecurityCritical]
public static void WriteInt16(IntPtr ptr, int ofs, short val);
public static void WriteInt16(IntPtr ptr, int ofs, short val);
[<System.Security.SecurityCritical>]
static member WriteInt16 : nativeint * int * int16 -> unit
static member WriteInt16 : nativeint * int * int16 -> unit
Public Shared Sub WriteInt16 (ptr As IntPtr, ofs As Integer, val As Short)

Параметры

ptr
IntPtr

nativeint

Базовый адрес в неуправляемой памяти для записи.

ofs
Int32

Дополнительное смещение байтов, которое добавляется в параметр перед записью ptr .

val
Int16

Значение для записи.

Атрибуты

Исключения

Базовый адрес (ptr) плюс байт смещения (ofs) создает недопустимый или пустой адрес.

Примеры

В следующем примере показано, как считывать и записывать данные в неуправляемый массив с помощью ReadInt16 методов и WriteInt16 методов.

static void ReadWriteInt16()
{
    // Allocate unmanaged memory. 
    int elementSize = 2;
    IntPtr unmanagedArray = Marshal.AllocHGlobal(10 * elementSize);

    // Set the 10 elements of the C-style unmanagedArray
    for (int i = 0; i < 10; i++)
    {
        Marshal.WriteInt16(unmanagedArray, i * elementSize, ((Int16)(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.ReadInt16(unmanagedArray, i * elementSize));
    }

    Marshal.FreeHGlobal(unmanagedArray);

    Console.WriteLine("Done. Press Enter to continue.");
    Console.ReadLine();
}
Sub ReadWriteInt16()
    ' Allocate unmanaged memory. 
    Dim elementSize As Integer = 2
    Dim unmanagedArray As IntPtr = Marshal.AllocHGlobal(10 * elementSize)

    ' Set the 10 elements of the C-style unmanagedArray
    For i As Integer = 0 To 9
        Marshal.WriteInt16(unmanagedArray, i * elementSize, CType(i + 1, Int16))
    Next i
    Console.WriteLine("Unmanaged memory written.")

    Console.WriteLine("Reading unmanaged memory:")
    ' Print the 10 elements of the C-style unmanagedArray
    For i As Integer = 0 To 9
        Console.WriteLine(Marshal.ReadInt16(unmanagedArray, i * elementSize))
    Next i

    Marshal.FreeHGlobal(unmanagedArray)

    Console.WriteLine("Done. Press Enter to continue.")
    Console.ReadLine()
End Sub

Комментарии

WriteInt16 позволяет напрямую взаимодействовать с неуправляемым 16-разрядным подписанным массивом, устраняя расходы на копирование всего неуправляемого массива (с помощью Marshal.Copy) в отдельный управляемый массив перед заданием значений его элементов.

Поддерживается запись в неуправляемые расположения памяти.

См. также раздел

Применяется к

WriteInt16(Object, Int32, Char)

Исходный код:
Marshal.cs
Исходный код:
Marshal.cs
Исходный код:
Marshal.cs
Исходный код:
Marshal.cs
Исходный код:
Marshal.cs

Внимание!

WriteInt16(Object, Int32, Char) may be unavailable in future releases.

Записывает 16-разрядное целое число со знаком в неуправляемую память при указанном смещение.

public:
 static void WriteInt16(System::Object ^ ptr, int ofs, char val);
[System.Obsolete("WriteInt16(Object, Int32, Char) may be unavailable in future releases.")]
[System.Security.SecurityCritical]
public static void WriteInt16(object ptr, int ofs, char val);
[System.Obsolete("WriteInt16(Object, Int32, Char) may be unavailable in future releases.")]
[System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Marshalling code for the object might not be available")]
public static void WriteInt16(object ptr, int ofs, char val);
[System.Obsolete("WriteInt16(Object, Int32, Char) may be unavailable in future releases.")]
public static void WriteInt16(object ptr, int ofs, char val);
public static void WriteInt16(object ptr, int ofs, char val);
[System.Security.SecurityCritical]
public static void WriteInt16(object ptr, int ofs, char val);
[<System.Obsolete("WriteInt16(Object, Int32, Char) may be unavailable in future releases.")>]
[<System.Security.SecurityCritical>]
static member WriteInt16 : obj * int * char -> unit
[<System.Obsolete("WriteInt16(Object, Int32, Char) may be unavailable in future releases.")>]
[<System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Marshalling code for the object might not be available")>]
static member WriteInt16 : obj * int * char -> unit
[<System.Obsolete("WriteInt16(Object, Int32, Char) may be unavailable in future releases.")>]
static member WriteInt16 : obj * int * char -> unit
static member WriteInt16 : obj * int * char -> unit
[<System.Security.SecurityCritical>]
static member WriteInt16 : obj * int * char -> unit
Public Shared Sub WriteInt16 (ptr As Object, ofs As Integer, val As Char)

Параметры

ptr
Object

Базовый адрес в неуправляемой памяти целевого объекта.

ofs
Int32

Дополнительное смещение байтов, которое добавляется в параметр перед записью ptr .

val
Char

Значение для записи.

Атрибуты

Исключения

Базовый адрес (ptr) плюс байт смещения (ofs) создает недопустимый или пустой адрес.

ptr ArrayWithOffset— это объект. Этот метод не принимает ArrayWithOffset параметры.

Комментарии

WriteInt16 позволяет напрямую взаимодействовать с неуправляемым 16-разрядным подписанным массивом, устраняя расходы на копирование всего неуправляемого массива (с помощью Marshal.Copy) в отдельный управляемый массив перед заданием значений его элементов.

Поддерживается запись в неуправляемые расположения памяти.

См. также раздел

Применяется к

WriteInt16(Object, Int32, Int16)

Исходный код:
Marshal.CoreCLR.cs
Исходный код:
Marshal.CoreCLR.cs
Исходный код:
Marshal.CoreCLR.cs
Исходный код:
Marshal.CoreCLR.cs
Исходный код:
Marshal.CoreCLR.cs

Внимание!

WriteInt16(Object, Int32, Int16) may be unavailable in future releases.

Записывает 16-разрядное целое число со знаком в неуправляемую память при указанном смещение.

public:
 static void WriteInt16(System::Object ^ ptr, int ofs, short val);
[System.Obsolete("WriteInt16(Object, Int32, Int16) may be unavailable in future releases.")]
[System.Security.SecurityCritical]
public static void WriteInt16(object ptr, int ofs, short val);
[System.Obsolete("WriteInt16(Object, Int32, Int16) may be unavailable in future releases.")]
[System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Marshalling code for the object might not be available")]
public static void WriteInt16(object ptr, int ofs, short val);
[System.Obsolete("WriteInt16(Object, Int32, Int16) may be unavailable in future releases.")]
public static void WriteInt16(object ptr, int ofs, short val);
public static void WriteInt16(object ptr, int ofs, short val);
[System.Security.SecurityCritical]
public static void WriteInt16(object ptr, int ofs, short val);
[<System.Obsolete("WriteInt16(Object, Int32, Int16) may be unavailable in future releases.")>]
[<System.Security.SecurityCritical>]
static member WriteInt16 : obj * int * int16 -> unit
[<System.Obsolete("WriteInt16(Object, Int32, Int16) may be unavailable in future releases.")>]
[<System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Marshalling code for the object might not be available")>]
static member WriteInt16 : obj * int * int16 -> unit
[<System.Obsolete("WriteInt16(Object, Int32, Int16) may be unavailable in future releases.")>]
static member WriteInt16 : obj * int * int16 -> unit
static member WriteInt16 : obj * int * int16 -> unit
[<System.Security.SecurityCritical>]
static member WriteInt16 : obj * int * int16 -> unit
Public Shared Sub WriteInt16 (ptr As Object, ofs As Integer, val As Short)

Параметры

ptr
Object

Базовый адрес в неуправляемой памяти целевого объекта.

ofs
Int32

Дополнительное смещение байтов, которое добавляется в параметр перед записью ptr .

val
Int16

Значение для записи.

Атрибуты

Исключения

Базовый адрес (ptr) плюс байт смещения (ofs) создает недопустимый или пустой адрес.

ptr ArrayWithOffset— это объект. Этот метод не принимает ArrayWithOffset параметры.

Комментарии

WriteInt16 позволяет напрямую взаимодействовать с неуправляемым 16-разрядным подписанным массивом, устраняя расходы на копирование всего неуправляемого массива (с помощью Marshal.Copy) в отдельный управляемый массив перед заданием значений его элементов.

Поддерживается запись в неуправляемые расположения памяти.

См. также раздел

Применяется к