RuntimeHelpers.PrepareMethod Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Подготавливает метод к включению в область с ограничением исполнения (CER).
Перегрузки
PrepareMethod(RuntimeMethodHandle) |
Подготавливает метод к включению в область с ограничением исполнения (CER). |
PrepareMethod(RuntimeMethodHandle, RuntimeTypeHandle[]) |
Подготавливает метод для включения в область с ограничением исполнения (CER) с указанной реализацией. |
PrepareMethod(RuntimeMethodHandle)
- Исходный код:
- RuntimeHelpers.CoreCLR.cs
- Исходный код:
- RuntimeHelpers.CoreCLR.cs
- Исходный код:
- RuntimeHelpers.CoreCLR.cs
Подготавливает метод к включению в область с ограничением исполнения (CER).
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)
Параметры
- method
- RuntimeMethodHandle
Дескриптор метода, который следует подготовить.
- Атрибуты
Комментарии
Компиляторы используют метод для PrepareMethod(RuntimeMethodHandle) обработки виртуальных вызовов, выполняемых в ограниченной области выполнения (CER). Во время JIT-компиляции среда CLR обычно не располагает достаточной информацией о целевом объекте виртуального вызова. Поэтому среда выполнения изначально не подготавливает этот сегмент графа вызовов. Если код, использующий CER, обладает достаточными знаниями, чтобы определить целевой объект в любой момент времени до фактического ввода CER, он может вызвать для PrepareMethod(RuntimeMethodHandle) выполнения той же подготовки среды выполнения, которая обычно выполняется для cer с корнем метода, указанного в качестве аргумента.
Применяется к
PrepareMethod(RuntimeMethodHandle, RuntimeTypeHandle[])
- Исходный код:
- RuntimeHelpers.CoreCLR.cs
- Исходный код:
- RuntimeHelpers.CoreCLR.cs
- Исходный код:
- RuntimeHelpers.CoreCLR.cs
Подготавливает метод для включения в область с ограничением исполнения (CER) с указанной реализацией.
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())
Параметры
- method
- RuntimeMethodHandle
Дескриптор метода, который следует подготовить.
- instantiation
- RuntimeTypeHandle[]
Экземпляр для передачи в метод.
- Атрибуты
Комментарии
Вы можете предоставить поддержку универсальных шаблонов для компиляторов с помощью PrepareMethod(RuntimeMethodHandle, RuntimeTypeHandle[]) метода . Среда CLR не может подготовить ограниченные области выполнения (CER), корневые элементы которых находятся в методе, который имеет параметры универсального типа (параметр типа в классе, содержательном методе, или в самом методе), если эти параметры типа создаются как ссылочные типы.
Эту перегрузку можно использовать для передачи определенного экземпляра (например, массива типов), задав сначала параметры типа класса (если таковые есть), а затем параметры типа метода (если таковые есть). Среда выполнения подготавливает экземпляр метода . (Это необходимо, только если используемые экземпляры содержат хотя бы один параметр ссылочного типа.) Таким образом, вы можете использовать предложение в стиле try
CER в универсальном методе (или необщий метод в универсальном классе), и оно будет надежно работать с экземплярами или другими типами значений Int32 . Чтобы создать экземпляр ссылочных типов, таких как String, необходимо сначала использовать явный PrepareMethod(RuntimeMethodHandle, RuntimeTypeHandle[]) метод в корневом методе CER.
Применяется к
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по