RuntimeHelpers.PrepareMethod Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Bereitet eine Methode für die Aufnahme in einen eingeschränkten Ausführungsbereich (CER) vor.
Überlädt
| Name | Beschreibung |
|---|---|
| PrepareMethod(RuntimeMethodHandle) |
Bereitet eine Methode für die Aufnahme in einen eingeschränkten Ausführungsbereich (CER) vor. |
| PrepareMethod(RuntimeMethodHandle, RuntimeTypeHandle[]) |
Bereitet eine Methode für die Aufnahme in einen eingeschränkten Ausführungsbereich (CER) mit der angegebenen Instanziierung vor. |
PrepareMethod(RuntimeMethodHandle)
Bereitet eine Methode für die Aufnahme in einen eingeschränkten Ausführungsbereich (CER) vor.
public:
static void PrepareMethod(RuntimeMethodHandle method);
public static void PrepareMethod(RuntimeMethodHandle method);
[System.Security.SecurityCritical]
public static void PrepareMethod(RuntimeMethodHandle method);
static member PrepareMethod : RuntimeMethodHandle -> unit
[<System.Security.SecurityCritical>]
static member PrepareMethod : RuntimeMethodHandle -> unit
Public Shared Sub PrepareMethod (method As RuntimeMethodHandle)
Parameter
- method
- RuntimeMethodHandle
Ein Handle für die vorzubereitende Methode.
- Attribute
Hinweise
Compiler verwenden die PrepareMethod(RuntimeMethodHandle) Methode, um virtuelle Aufrufe zu verarbeiten, die innerhalb eines eingeschränkten Ausführungsbereichs (CER) ausgeführt werden. Zur JIT-Kompilierungszeit verfügt die Common Language Runtime in der Regel nicht über genügend Informationen zum Ziel eines virtuellen Anrufs. Daher bereitet die Laufzeit dieses Segment des Aufrufdiagramms zunächst nicht vor. Wenn der Code, der die CER verwendet, über genügend Kenntnisse verfügt, um das Ziel zu einem beliebigen Zeitpunkt zu ermitteln, bevor die CER tatsächlich eingegeben wird, kann er aufrufen PrepareMethod(RuntimeMethodHandle) , um die gleiche Laufzeitvorbereitung auszuführen, die normalerweise für eine CER mit der als Argument angegebenen Methode ausgeführt wird.
Gilt für:
PrepareMethod(RuntimeMethodHandle, RuntimeTypeHandle[])
Bereitet eine Methode für die Aufnahme in einen eingeschränkten Ausführungsbereich (CER) mit der angegebenen Instanziierung vor.
public:
static void PrepareMethod(RuntimeMethodHandle method, cli::array <RuntimeTypeHandle> ^ instantiation);
public static void PrepareMethod(RuntimeMethodHandle method, RuntimeTypeHandle[] instantiation);
[System.Security.SecurityCritical]
public static void PrepareMethod(RuntimeMethodHandle method, RuntimeTypeHandle[] instantiation);
static member PrepareMethod : RuntimeMethodHandle * RuntimeTypeHandle[] -> unit
[<System.Security.SecurityCritical>]
static member PrepareMethod : RuntimeMethodHandle * RuntimeTypeHandle[] -> unit
Public Shared Sub PrepareMethod (method As RuntimeMethodHandle, instantiation As RuntimeTypeHandle())
Parameter
- method
- RuntimeMethodHandle
Ein Handle für die vorzubereitende Methode.
- instantiation
- RuntimeTypeHandle[]
Die Instanziierung, die an die Methode übergeben werden soll.
- Attribute
Hinweise
Sie können generische Unterstützung für Compiler bereitstellen, indem Sie die PrepareMethod(RuntimeMethodHandle, RuntimeTypeHandle[]) Methode verwenden. Die Common Language Runtime kann keine eingeschränkten Ausführungsbereiche (CERs) vorbereiten, die in einer Methode mit generischen Typparametern (entweder einem Typparameter für die Klasse, die die Methode enthält, oder eines der Methoden selbst), wenn diese Typparameter als Referenztypen instanziiert werden.
Sie können diese Überladung verwenden, um eine bestimmte Instanziierung (z. B. ein Array von Typen) zu übergeben, die Klassentypparameter zuerst (falls vorhanden) gefolgt von Methodentypparametern (falls vorhanden) anzugeben. Die Laufzeit bereitet die Instanziierung der Methode vor. (Dies ist nur erforderlich, wenn die von Ihnen verwendeten Instanziationen mindestens einen Verweistypparameter enthalten.) Daher können Sie eine CER-Style-Klausel try in einer generischen Methode (oder einer nichtgenerischen Methode für eine generische Klasse) verwenden, und sie funktioniert zuverlässig mit Instanziierungen von Int32 oder anderen Werttypen. Um Referenztypen wie z String. B. zu instanziieren, müssen Sie zuerst eine explizite PrepareMethod(RuntimeMethodHandle, RuntimeTypeHandle[]) Methode für die CER-Stammmethode verwenden.