Partager via


OpCodes.Leave Champ

Définition

Quitte une région de code protégée, en transférant le contrôle à une instruction cible spécifique de manière non conditionnelle.

public: static initonly System::Reflection::Emit::OpCode Leave;
public static readonly System.Reflection.Emit.OpCode Leave;
 staticval mutable Leave : System.Reflection.Emit.OpCode
Public Shared ReadOnly Leave As OpCode 

Valeur de champ

Remarques

Le tableau suivant répertorie le format d’assembly MSIL et hexadécimal de l’instruction, ainsi qu’un bref résumé des références :

Format Format d’assembly Description
DD <int32> Laisser target Quitte une région protégée de code.

Aucun comportement de transition de pile n’est spécifié pour cette instruction.

L’instruction leave transfère de manière inconditionnelle le contrôle à l’instruction cible spécifique, représentée sous la forme d’un décalage signé de 4 octets à partir du début de l’instruction qui suit l’instruction actuelle.

L’instruction leave est similaire à l’instruction br , mais elle peut être utilisée pour quitter un try, filterou catch un bloc, tandis que les instructions de branche ordinaires ne peuvent être utilisées dans un tel bloc que pour transférer le contrôle dans celui-ci. L’instruction leave vide la pile d’évaluation et garantit que les blocs environnants finally appropriés sont exécutés.

Vous ne pouvez pas utiliser une leave instruction pour quitter un finally bloc. Pour faciliter la génération de code pour les gestionnaires d’exceptions, il est valide à partir d’un bloc catch d’utiliser une instruction pour transférer le leave contrôle à n’importe quelle instruction du bloc associé try .

Si une instruction a un ou plusieurs codes de préfixe, le contrôle ne peut être transféré qu’au premier de ces préfixes.

Les surcharges de méthode suivantes Emit peuvent utiliser l’opcode leave :

S’applique à