RuntimeHelpers.PrepareMethod Methode

Definition

Bereitet eine Methode für die Aufnahme in einen eingeschränkten Ausführungsbereich (Constrained Execution Region, CER) vor.

Überlädt

PrepareMethod(RuntimeMethodHandle)

Bereitet eine Methode für die Aufnahme in einen eingeschränkten Ausführungsbereich (Constrained Execution Region, CER) vor.

PrepareMethod(RuntimeMethodHandle, RuntimeTypeHandle[])

Bereitet eine Methode für die Aufnahme in einen eingeschränkten Ausführungsbereich (Constrained Execution Region, CER) mit der angegebenen Instanziierung vor.

PrepareMethod(RuntimeMethodHandle)

Quelle:
RuntimeHelpers.CoreCLR.cs
Quelle:
RuntimeHelpers.CoreCLR.cs
Quelle:
RuntimeHelpers.CoreCLR.cs

Bereitet eine Methode für die Aufnahme in einen eingeschränkten Ausführungsbereich (Constrained Execution Region, 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 auf die vorzubereitende Methode.

Attribute

Hinweise

Compiler verwenden die PrepareMethod(RuntimeMethodHandle) -Methode, um virtuelle Aufrufe zu verarbeiten, die innerhalb einer eingeschränkten Ausführungsregion (Cer) ausgeführt werden. Zur JIT-Kompilierungszeit verfügt die Common Language Runtime in der Regel nicht über genügend Informationen über das Ziel eines virtuellen Aufrufs. Daher bereitet die Runtime 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 bestimmen, bevor die CER tatsächlich eingegeben wird, kann er aufrufen PrepareMethod(RuntimeMethodHandle) , um dieselbe Laufzeitvorbereitung auszuführen, die normalerweise für eine CER ausgeführt wird, die an der als Argument angegebenen Methode basiert.

Gilt für:

PrepareMethod(RuntimeMethodHandle, RuntimeTypeHandle[])

Quelle:
RuntimeHelpers.CoreCLR.cs
Quelle:
RuntimeHelpers.CoreCLR.cs
Quelle:
RuntimeHelpers.CoreCLR.cs

Bereitet eine Methode für die Aufnahme in einen eingeschränkten Ausführungsbereich (Constrained Execution Region, 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);
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 auf die vorzubereitende Methode.

instantiation
RuntimeTypeHandle[]

Die an die Methode zu übergebende Instanziierung.

Attribute

Hinweise

Sie können generics-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 einen Typparameter für die Klasse, die die -Methode enthält, oder einen für die Methode selbst), wenn diese Typparameter als Verweistypen instanziiert werden.

Sie können diese Überladung verwenden, um eine bestimmte Instanziierung (z. B. ein Array von Typen) zu übergeben und zuerst Klassentypparameter anzugeben (falls vorhanden), gefolgt von Methodentypparametern (falls vorhanden). Die Laufzeit bereitet diese Instanziierung der -Methode vor. (Dies ist nur erforderlich, wenn die verwendeten Instanziierungen mindestens einen Verweistypparameter enthalten.) Daher können Sie eine CER-Klausel try in einer generischen Methode (oder einer nicht generischen Methode für eine generische Klasse) verwenden, und sie funktioniert zuverlässig mit Instanziierungen von Int32 oder anderen Werttypen. Um Verweistypen wie Stringzu instanziieren, müssen Sie zuerst eine explizite PrepareMethod(RuntimeMethodHandle, RuntimeTypeHandle[]) Methode für die CER-Stammmethode verwenden.

Gilt für: