Modifications de code prises en charge (c# et Visual Basic)Supported code changes (C# and Visual Basic)

Modifier & Continuer gère la plupart des types de modifications du code dans le corps des méthodes.Edit and Continue handles most types of code changes within method bodies. Toutefois, la plupart des modifications en dehors du corps des méthodes et quelques autres à l'intérieur ne peuvent pas s'appliquer pendant le débogage.Most changes outside method bodies, and a few changes within method bodies, cannot be applied during debugging, however. Pour appliquer ces modifications non prises en charge, vous devez arrêter le débogage et redémarrer avec une version nouvelle du code.To apply those unsupported changes, you must stop debugging and restart with a fresh version of the code.

Prise en charge des modifications de codeSupported changes to code

Le tableau ci-dessous indique les modifications qui peuvent être effectuées dans le code c# et Visual Basic pendant une session de débogage sans redémarrer la session.The table below shows the changes that may be made to C# and Visual Basic code during a debugging session without restarting the session.

Élément de langage ou une fonctionnalitéLanguage element/feature Opération de modification pris en chargeSupported edit operation LimitationsLimitations
TypesTypes Ajouter des méthodes, champs, constructeurs, et al.Add methods, fields, constructors, et al OuiYes
IteratorsIterators Ajouter ou modifierAdd or modify NonNo
expressions asynchrones / d’attenteasync/await expressions Ajouter ou modifierAdd or modify OuiYes
Objets dynamiquesDynamic objects Ajouter ou modifierAdd or modify NonNo
expressions lambdalambda expressions Ajouter ou modifierAdd or modify OuiYes
Expressions LINQLINQ expressions Ajouter ou modifierAdd or modify Identique à celui des expressions lambdaSame as lambda expressions

Note

Nouvelles fonctionnalités de langage telles que l’interpolation de chaîne et opérateurs conditionnels null sont généralement prises en charge par Modifier & Continuer.Newer language features such as string interpolation and null-conditional operators are generally supported by Edit and Continue. Pour obtenir les informations les plus récentes, consultez le Enc pris en charge modifie page.For the most current information, see the Enc Supported Edits page.

Modifications du code non pris en chargeUnsupported changes to code

Les modifications suivantes ne peut pas être appliquées au code c# et Visual Basic pendant une session de débogage :The following changes cannot be applied to C# and Visual Basic code during a debugging session:

  • Modifications à l'instruction en cours ou à toute autre instruction active.Changes to the current statement or any other active statement.

    Les instructions actives incluent toutes les instructions, dans les fonctions figurant dans la pile des appels, qui ont été appelées pour parvenir à l'instruction en cours.Active statements include any statements, in functions on the call stack, that were called to get to the current statement.

    L'instruction en cours est marquée par un arrière-plan jaune dans la fenêtre source.The current statement is marked by a yellow background in the source window. D'autres instructions actives sont marquées par un arrière-plan grisé et sont en lecture seule.Other active statements are marked by a shaded background and are read-only. Ces couleurs par défaut peuvent être modifiées dans le Options boîte de dialogue.These default colors can be changed in the Options dialog box.

  • Le tableau suivant présente les modifications du code non pris en charge par l’élément de langage.The following table shows unsupported changes to code by language element.

Élément de langage ou une fonctionnalitéLanguage element/feature Opération de modification non prise en chargeUnsupported edit operation
Tous les éléments de codeAll code elements RenommageRenaming
Espaces de nomsNamespaces AjouterAdd
Espaces de noms, types, membresNamespaces, types, members SupprimerDelete
GénériquesGenerics Ajouter ou modifierAdd or modify
InterfacesInterfaces ModifierModify
TypesTypes Ajouter un membre abstrait ou virtuel, ajoutez de remplacement (voir détails)Add abstract or virtual member, add override (see details)
TypesTypes Ajouter un destructeurAdd destructor
MembresMembers Modifier un membre faisant référence à un type interop incorporéModify a member referencing an embedded interop type
Membres (Visual Basic)Members (Visual Basic) Modifier un membre avec l’instruction On Error ou ResumeModify a member with On Error or Resume statement
Membres (Visual Basic)Members (Visual Basic) Modifier un membre contenant une clause de requête Aggregate, Group By, Join Simple ou LINQ de jointure de groupeModify a member containing an Aggregate, Group By, Simple Join, or Group Join LINQ query clause
MéthodesMethods Modifier des signaturesModify signatures
MéthodesMethods Rendre une méthode abstraite deviennent abstraites en ajoutant un corps de méthodeMake an abstract method become non-abstract by adding a method body
MéthodesMethods Supprimer le corps de la méthodeDelete method body
AttributsAttributes Ajouter ou modifierAdd or modify
Événements ou propriétésEvents or properties Modifier un paramètre de type, le type de base, type délégué ou type de retourModify a type parameter, base type, delegate type, or return type
Opérateurs ou des indexeursOperators or indexers Modifier un paramètre de type, le type de base, type délégué ou type de retourModify a type parameter, base type, delegate type, or return type
catch (blocs)catch blocks Modifier lorsqu’elle contient une instruction activeModify when it contains an active statement
blocs try-catch-finallytry-catch-finally blocks Modifier lorsqu’elle contient une instruction activeModify when it contains an active statement
instructions Usingusing statements AjouterAdd
méthodes/lambdas asynchronesasync methods/lambdas Modifier une méthode/lambda async dans un projet ciblant .NET Framework 4 et diminuer (voir détails)Modify an async method/lambda in a project targeting .NET Framework 4 and lower (see details)
IteratorsIterators Modifier un itérateur dans un projet ciblant .NET Framework 4 et diminuer (voir détails)Modify an iterator in a project targeting .NET Framework 4 and lower (see details)

Code unsafeUnsafe code

Les modifications apportées à du code unsafe présentent les mêmes restrictions que celles qui portent sur du code sécurisé, avec une restriction supplémentaire : Modifier & Continuer ne prend pas en charge les modifications de code unsafe dans une méthode qui contient l'opérateur stackalloc.Changes to unsafe code have the same limitations as changes to safe code, with one additional restriction: Edit and Continue does not support changes to unsafe code that exits within a method that contains the stackalloc operator.

Scénarios d’application non pris en chargeUnsupported app scenarios

Plateformes et des applications non prises en charge incluent ASP.NET 5, Silverlight 5 et Windows 8.1.Unsupported apps and platforms include ASP.NET 5, Silverlight 5, and Windows 8.1.

Note

Les applications qui sont prises en charge sont notamment UWP dans Windows 10 et x86 et x64 des applications qui ciblent le .NET Framework 4.6 bureau ou versions ultérieures (.NET Framework est une version de bureau).Apps that are supported include UWP in Windows 10, and x86 and x64 apps that target the .NET Framework 4.6 desktop or later versions (the .NET Framework is a desktop version only).

Scénarios non pris en chargeUnsupported scenarios

Modifier & Continuer n'est pas disponible dans les scénarios de débogage suivants :Edit and Continue is not available in the following debugging scenarios:

  • Débogage en mode mixte (natif/managé).Mixed-mode (native/managed) debugging.

  • Débogage SQL.SQL debugging.

  • Débogage d'un dump Dr. Watson.Debugging a Dr. Watson dump.

  • Débogage d'une application runtime incorporée.Debugging an embedded runtime application.

  • Débogage d’une application à l’aide d’attacher au processus (Déboguer > Attacher au processus) au lieu d’exécuter l’application en choisissant Démarrer à partir de la déboguer menu.Debugging an application using attach to process (Debug > Attach to Process) instead of running the application by choosing Start from the Debug menu.

  • Débogage de code optimisé.Debugging optimized code.

  • Débogage d'une version ancienne de votre code après l'échec de génération d'une nouvelle version en raison d'erreurs de build.Debugging an old version of your code after a new version failed to build because of build errors.

Voir aussiSee Also

Modifier & Continuer (Visual c#) Edit and Continue (Visual C#)
Guide pratique pour utiliser Modifier & Continuer (C#)How to: Use Edit and Continue (C#)