Développer Réduire
Cet article a fait l'objet d'une traduction automatique. Déplacez votre pointeur sur les phrases de l'article pour voir la version originale de ce texte. Informations supplémentaires.
Traduction
Source
Ce sujet n'a pas encore été évalué - Évaluez ce sujet

OpCodes.Leave_S, champ

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

Espace de noms :  System.Reflection.Emit
Assembly :  mscorlib (dans mscorlib.dll)
public static readonly OpCode Leave_S

Le tableau suivant répertorie le format d'assembly hexadécimal et MSIL (Microsoft Intermediate Language) de l'instruction et donne un bref résumé de référence :

Format

Format d'assembly

Description

DE < int8 >

leave.s target

Quitte une région de code protégée (forme abrégée).

Il n'existe aucun comportement de transition de la pile spécifié pour cette instruction.

De manière non conditionnelle, l'instruction leave.s transfère le contrôle à l'instruction cible passée, représentée par un offset signé de 1 octet à partir du début de l'instruction suivant celle en cours.

L'instruction leave.s est identique à l'instruction br, mais elle peut être utilisée pour quitter un bloc try, filter ou catch alors que les instructions de création de branches ordinaires ne peuvent être utilisées que dans ce type de bloc pour y transférer le contrôle. L'instruction leave.s vide la pile d'évaluation et vérifie que les blocs finally avoisinants appropriés sont exécutés.

Vous ne pouvez pas utiliser une instruction leave.s pour quitter un bloc finally. Pour faciliter la génération de code pour les gestionnaires d'exceptions, il est conforme d'utiliser une instruction leave.s dans un bloc catch pour transférer le contrôle à une instruction dans le bloc try associé.

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

La surcharge de méthode Emit suivante peut utiliser l'opcode leave.s :

  • ILGenerator.Emit(OpCode, Label)

.NET Framework

Pris en charge dans : 4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Pris en charge dans : 4, 3.5 SP1

.NET pour les applications du Windows Store

Pris en charge dans : Windows 8

Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (rôle principal du serveur non pris en charge), Windows Server 2008 R2 (rôle principal du serveur pris en charge avec SP1 ou version ultérieure ; Itanium non pris en charge)

Le .NET Framework ne prend pas en charge toutes les versions de chaque plateforme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise du .NET Framework.
Cela vous a-t-il été utile ?
(1500 caractères restants)

Ajouts de la communauté

AJOUTER
© 2013 Microsoft. Tous droits réservés.