Marshal.ReadInt16 Metod
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Läser ett 16-bitars signerat heltal från ohanterat minne. Läsning från ojusterade minnesplatser stöds.
Överlagringar
| Name | Description |
|---|---|
| ReadInt16(IntPtr) |
Läser ett 16-bitars signerat heltal från ohanterat minne. |
| ReadInt16(IntPtr, Int32) |
Läser ett 16-bitars signerat heltal vid en given förskjutning från ohanterat minne. |
| ReadInt16(Object, Int32) |
Föråldrad.
Läser ett 16-bitars signerat heltal vid en given förskjutning från ohanterat minne. |
ReadInt16(IntPtr)
- Källa:
- Marshal.cs
- Källa:
- Marshal.cs
- Källa:
- Marshal.cs
- Källa:
- Marshal.cs
- Källa:
- Marshal.cs
Läser ett 16-bitars signerat heltal från ohanterat minne.
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
Parametrar
- ptr
-
IntPtr
nativeint
Adressen i ohanterat minne som ska läsas från.
Returer
Det 16-bitars signerade heltalet lästes från ohanterat minne.
- Attribut
Undantag
Exempel
I följande exempel visas hur du läser och skriver till en ohanterad matris med hjälp av ReadInt16 metoderna och 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
I följande exempel visas hur du använder ReadInt16 metoden för att läsa värdet för en ohanterad short variabel.
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);
}
Kommentarer
ReadInt16 har en underförstådd förskjutning på 0. Den här metoden möjliggör direkt interaktion med en ohanterad C-matris Int16 , vilket eliminerar kostnaden för att kopiera en hel ohanterad matris (med hjälp Marshal.Copyav ) till en separat hanterad matris innan dess elementvärden läss.
Läsning från ojusterade minnesplatser stöds.
Se även
Gäller för
ReadInt16(IntPtr, Int32)
- Källa:
- Marshal.cs
- Källa:
- Marshal.cs
- Källa:
- Marshal.cs
- Källa:
- Marshal.cs
- Källa:
- Marshal.cs
Läser ett 16-bitars signerat heltal vid en given förskjutning från ohanterat minne.
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
Parametrar
- ptr
-
IntPtr
nativeint
Basadressen i ohanterat minne som ska läsas från.
- ofs
- Int32
En extra byteförskjutning, som läggs till i parametern ptr innan du läser.
Returer
Det 16-bitars signerade heltalet lästes från ohanterat minne vid den angivna förskjutningen.
- Attribut
Undantag
Basadressen (ptr) plus förskjutningsbyte (ofs) genererar en null- eller ogiltig adress.
Exempel
I följande exempel visas hur du läser och skriver till en ohanterad matris med hjälp av ReadInt16 metoderna och 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
I följande exempel visas hur du använder ReadInt16 metoden för att läsa värdet för en ohanterad short variabel.
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);
}
Kommentarer
ReadInt16 möjliggör direkt interaktion med en ohanterad 16-bitars signerad matris, vilket eliminerar kostnaden för att kopiera en hel ohanterad matris (med hjälp Marshal.Copyav ) till en separat hanterad matris innan dess elementvärden läss.
Läsning från ojusterade minnesplatser stöds.
Se även
Gäller för
ReadInt16(Object, Int32)
- Källa:
- Marshal.CoreCLR.cs
- Källa:
- Marshal.CoreCLR.cs
- Källa:
- Marshal.CoreCLR.cs
- Källa:
- Marshal.CoreCLR.cs
- Källa:
- Marshal.CoreCLR.cs
Varning
ReadInt16(Object, Int32) may be unavailable in future releases.
Läser ett 16-bitars signerat heltal vid en given förskjutning från ohanterat minne.
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);
[System.Obsolete("ReadInt16(Object, Int32) may be unavailable in future releases.")]
[System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Marshalling code for the object might not be available")]
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);
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.")>]
[<System.Security.SecurityCritical>]
static member ReadInt16 : obj * int -> int16
[<System.Obsolete("ReadInt16(Object, Int32) may be unavailable in future releases.")>]
[<System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Marshalling code for the object might not be available")>]
static member ReadInt16 : obj * int -> int16
[<System.Obsolete("ReadInt16(Object, Int32) may be unavailable in future releases.")>]
static member ReadInt16 : obj * int -> int16
static member ReadInt16 : obj * int -> int16
[<System.Security.SecurityCritical>]
static member ReadInt16 : obj * int -> int16
Public Shared Function ReadInt16 (ptr As Object, ofs As Integer) As Short
Parametrar
- ptr
- Object
Basadressen i ohanterat minne för källobjektet.
- ofs
- Int32
En extra byteförskjutning, som läggs till i parametern ptr innan du läser.
Returer
Det 16-bitars signerade heltalet lästes från ohanterat minne vid den angivna förskjutningen.
- Attribut
Undantag
Basadressen (ptr) plus förskjutningsbyte (ofs) genererar en null- eller ogiltig adress.
ptr är ett ArrayWithOffset objekt. Den här metoden accepterar ArrayWithOffset inte parametrar.
Kommentarer
ReadInt16 möjliggör direkt interaktion med en ohanterad 16-bitars signerad matris, vilket eliminerar kostnaden för att kopiera en hel ohanterad matris (med hjälp Marshal.Copyav ) till en separat hanterad matris innan dess elementvärden läss.
Läsning från ojusterade minnesplatser stöds.