Marshal.ReadInt16 Methode
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Leest een 16-bits geheel getal dat is ondertekend uit niet-beheerd geheugen. Lezen vanaf niet-uitgelijnde geheugenlocaties wordt ondersteund.
Overloads
| Name | Description |
|---|---|
| ReadInt16(IntPtr) |
Leest een 16-bits geheel getal dat is ondertekend uit niet-beheerd geheugen. |
| ReadInt16(IntPtr, Int32) |
Leest een 16-bits geheel getal dat is ondertekend op een bepaalde verschuiving van onbeheerd geheugen. |
| ReadInt16(Object, Int32) |
Verouderd.
Leest een 16-bits geheel getal dat is ondertekend op een bepaalde verschuiving van onbeheerd geheugen. |
ReadInt16(IntPtr)
Leest een 16-bits geheel getal dat is ondertekend uit niet-beheerd geheugen.
public:
static short ReadInt16(IntPtr ptr);
[System.Security.SecurityCritical]
public static short ReadInt16(IntPtr ptr);
public static short ReadInt16(IntPtr ptr);
[<System.Security.SecurityCritical>]
static member ReadInt16 : nativeint -> int16
static member ReadInt16 : nativeint -> int16
Public Shared Function ReadInt16 (ptr As IntPtr) As Short
Parameters
- ptr
-
IntPtr
nativeint
Het adres in onbeheerd geheugen waaruit moet worden gelezen.
Retouren
Het 16-bits ondertekende gehele getal dat wordt gelezen uit onbeheerd geheugen.
- Kenmerken
Uitzonderingen
Voorbeelden
In het volgende voorbeeld ziet u hoe u met behulp van de ReadInt16 en WriteInt16 methoden kunt lezen en schrijven naar een onbeheerde matrix.
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
In het volgende voorbeeld ziet u hoe u de ReadInt16 methode gebruikt om de waarde van een niet-beheerde short variabele te lezen.
using namespace System;
using namespace System::Runtime::InteropServices;
void main()
{
// Create an unmanaged short.
short myShort = 42;
// Read the short as a managed Int16.
Int16 ^ myManagedVal = Marshal::ReadInt16((IntPtr) &myShort);
// Display the value to the console.
Console::WriteLine(myManagedVal);
}
Opmerkingen
ReadInt16 heeft een impliciete offset van 0. Deze methode maakt directe interactie mogelijk met een niet-beheerde C-stijlmatrix Int16 , waardoor de kosten van het kopiëren van een hele onbeheerde matrix (met behulp) Marshal.Copynaar een afzonderlijke beheerde matrix worden geëlimineerd voordat de elementwaarden worden gelezen.
Lezen vanaf niet-uitgelijnde geheugenlocaties wordt ondersteund.
Zie ook
Van toepassing op
ReadInt16(IntPtr, Int32)
Leest een 16-bits geheel getal dat is ondertekend op een bepaalde verschuiving van onbeheerd geheugen.
public:
static short ReadInt16(IntPtr ptr, int ofs);
[System.Security.SecurityCritical]
public static short ReadInt16(IntPtr ptr, int ofs);
public static short ReadInt16(IntPtr ptr, int ofs);
[<System.Security.SecurityCritical>]
static member ReadInt16 : nativeint * int -> int16
static member ReadInt16 : nativeint * int -> int16
Public Shared Function ReadInt16 (ptr As IntPtr, ofs As Integer) As Short
Parameters
- ptr
-
IntPtr
nativeint
Het basisadres in niet-beheerd geheugen waaruit moet worden gelezen.
- ofs
- Int32
Een extra byte-offset, die wordt toegevoegd aan de ptr parameter voordat deze wordt gelezen.
Retouren
Het 16-bits ondertekende gehele getal dat is gelezen uit onbeheerd geheugen op de opgegeven offset.
- Kenmerken
Uitzonderingen
Basisadres (ptr) plus offset byte (ofs) produceert een null- of ongeldig adres.
Voorbeelden
In het volgende voorbeeld ziet u hoe u met behulp van de ReadInt16 en WriteInt16 methoden kunt lezen en schrijven naar een onbeheerde matrix.
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
In het volgende voorbeeld ziet u hoe u de ReadInt16 methode gebruikt om de waarde van een niet-beheerde short variabele te lezen.
using namespace System;
using namespace System::Runtime::InteropServices;
void main()
{
// Create an unmanaged short pointer.
short * myShort;
short tmp = 42;
// Initialize it to another value.
myShort = &tmp;
// Read value as a managed Int16.
Int16 ^ myManagedVal = Marshal::ReadInt16((IntPtr) myShort, 0);
// Display the value to the console.
Console::WriteLine(myManagedVal);
}
Opmerkingen
ReadInt16 maakt directe interactie mogelijk met een niet-beheerde 16-bits ondertekende matrix, waardoor de kosten van het kopiëren van een hele onbeheerde matrix (met behulp) Marshal.Copynaar een afzonderlijke beheerde matrix worden geëlimineerd voordat de elementwaarden worden gelezen.
Lezen vanaf niet-uitgelijnde geheugenlocaties wordt ondersteund.
Zie ook
Van toepassing op
ReadInt16(Object, Int32)
Let op
ReadInt16(Object, Int32) may be unavailable in future releases.
Leest een 16-bits geheel getal dat is ondertekend op een bepaalde verschuiving van onbeheerd geheugen.
public:
static short ReadInt16(System::Object ^ ptr, int ofs);
[System.Obsolete("ReadInt16(Object, Int32) may be unavailable in future releases.")]
[System.Security.SecurityCritical]
public static short ReadInt16(object ptr, int ofs);
public static short ReadInt16(object ptr, int ofs);
[System.Security.SecurityCritical]
public static short ReadInt16(object ptr, int ofs);
[System.Obsolete("ReadInt16(Object, Int32) may be unavailable in future releases.")]
public static short ReadInt16(object ptr, int ofs);
[<System.Obsolete("ReadInt16(Object, Int32) may be unavailable in future releases.")>]
[<System.Security.SecurityCritical>]
static member ReadInt16 : obj * int -> int16
static member ReadInt16 : obj * int -> int16
[<System.Security.SecurityCritical>]
static member ReadInt16 : obj * int -> int16
[<System.Obsolete("ReadInt16(Object, Int32) may be unavailable in future releases.")>]
static member ReadInt16 : obj * int -> int16
Public Shared Function ReadInt16 (ptr As Object, ofs As Integer) As Short
Parameters
- ptr
- Object
Het basisadres in het niet-beheerde geheugen van het bronobject.
- ofs
- Int32
Een extra byte-offset, die wordt toegevoegd aan de ptr parameter voordat deze wordt gelezen.
Retouren
Het 16-bits ondertekende gehele getal dat is gelezen uit onbeheerd geheugen op de opgegeven offset.
- Kenmerken
Uitzonderingen
Basisadres (ptr) plus offset byte (ofs) produceert een null- of ongeldig adres.
ptr is een ArrayWithOffset object. Deze methode accepteert ArrayWithOffset geen parameters.
Opmerkingen
ReadInt16 maakt directe interactie mogelijk met een niet-beheerde 16-bits ondertekende matrix, waardoor de kosten van het kopiëren van een hele onbeheerde matrix (met behulp) Marshal.Copynaar een afzonderlijke beheerde matrix worden geëlimineerd voordat de elementwaarden worden gelezen.
Lezen vanaf niet-uitgelijnde geheugenlocaties wordt ondersteund.