Prise en charge des modifications de code (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.

Modifications prises en charge pour le codeSupported changes to code

Le tableau ci-dessous présente les modifications qui peuvent être passées à C# et le code Visual Basic pendant une session de débogage sans avoir à 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.

Fonctionnalité/élément de langageLanguage element/feature Opération de modification pris en chargeSupported edit operation LimitationsLimitations
TypesTypes Ajoutez les méthodes, champs, constructeurs, et al.Add methods, fields, constructors, et al OuiYes
IteratorsIterators Ajouter ou modifierAdd or modify NonNo
expressions d’async/awaitasync/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 pris 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

Impossible d’appliquer les modifications suivantes à C# et le code 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 la boîte de dialogue Options.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.

Fonctionnalité/élément de langageLanguage element/feature Opération de modification non pris 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 remplacement (consultez 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 qui contient une clause de requête Aggregate, Group By, joindre Simple ou groupe joindre LINQModify a member containing an Aggregate, Group By, Simple Join, or Group Join LINQ query clause
MéthodesMethods Modifier les 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 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
Les opérateurs ou les 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 réduire (consultez 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 réduire (consultez 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 apportées au code unsafe dans une méthode qui contient le stackalloc opérateur.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 applications non pris 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 incluent UWP Windows 10 et les applications x86 et x64 qui ciblent le .NET Framework 4.6 bureau ou versions ultérieures (.NET Framework est une version de bureau uniquement).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