Modifiche al codice supportate (C#)

Modifica e continuazione è in grado di gestire la maggior parte dei tipi di modifica al codice all'interno del corpo del metodi.Tuttavia, la maggior parte delle modifiche all'esterno del corpo dei metodi nonché alcune modifiche all'interno del corpo dei metodi non possono essere applicate durante il debug.Per applicare queste modifiche non supportate, terminare il debug e riavviarlo utilizzando una versione aggiornata del codice.

Le seguenti modifiche non possono essere applicate a codice C# durante una sessione di debug:

  • Modifiche all'istruzione corrente o a qualsiasi altra istruzione attiva.

    Le istruzioni attive includono qualsiasi istruzione, nelle funzioni presenti nello stack di chiamate, che è stata chiamata per ottenere l'istruzione corrente.

    L'istruzione corrente è contrassegnata con uno sfondo giallo nella finestra del codice sorgente.Le altre istruzioni attive sono contrassegnate con uno sfondo ombreggiato e sono di sola lettura.Questi colori predefiniti possono essere cambiati nella finestra di dialogo Opzioni.

  • Modifiche a simboli globali, tra cui:

    • Aggiunta di nuovi tipi.

    • Aggiunta di metodi a un tipo.

    • Modifica della firma di un tipo.

    • Aggiunta di campi, eventi o proprietà a un tipo.

  • Modifica di un metodo anonimo o di qualsiasi metodo contenente un metodo anonimo.Questi metodi sono contrassegnati con uno sfondo ombreggiato.

  • Aggiunta di un nuovo metodo anonimo.

  • Aggiunta, rimozione o modifica di attributi.

  • Aggiunta, rimozione o modifica delle direttive using.

  • Rimozione o modifica di variabili locali.L'aggiunta di variabili locali è consentita.

  • Aggiunta di foreach, using o lock intorno all'istruzione attiva.

  • Modifica di un metodo che contiene un'istruzione yield return o yield break.

  • Modifica di un costruttore con un campo inizializzato da un metodo anonimo.

Codice unsafe

Le modifiche a codice unsafe sono soggette alle stesse limitazioni delle modifiche a codice safe, con l'aggiunta della seguente:

  • In Modifica e continuazione non sono supportate modifiche a codice unsafe esistente all'interno di un metodo che contiene l'operatore stackalloc.Questa limitazione è valida solo per i metodi attivi.Quando si esegue il debug, tutte le funzioni attualmente presenti nello stack di chiamate sono considerate attive.

Eccezioni

In Modifica e continuazione supporta le modifiche apportate a catch, a finally, ae ai blocchi di try , con alcune eccezioni per blocchi in metodi attivi, come metodi che sono presenti nello stack di chiamate.

  • In una funzione attiva che è la funzione più recente nello stack di chiamate non sono supportate le seguenti modifiche:

    • Aggiunta di un blocco di finallyo di catchintorno a un'istruzione attiva.

    • Aggiunta di gestori eccezioni annidati con più di sei di livelli di annidamento.

  • In una funzione attiva che non è la funzione più recente nello stack di chiamate non sono supportate le seguenti modifiche:

    • Aggiunta catch, finally o di un blocco di tryintorno a un'istruzione attiva.

    • Aggiunta di gestori eccezioni annidati con più di sei di livelli di annidamento.

    • Modificando codice all'interno di un blocco di trycontenente l'istruzione attiva.

Scenari non supportati

Modifica e continuazione non è disponibile nei seguenti scenari di debug:

  • Debug del codice LINQ.Per ulteriori informazioni, vedere Edit and Continue Not Supported for LINQ.

  • Debug in modalità mista (nativo/gestito).

  • Debug SQL.

  • Debug di un dump diDr. Watson.

  • Modifica di codice dopo un'eccezione non gestita, quando l'opzione Rimuovi stack di chiamate su eccezioni non gestite non è selezionata.

  • Debug di un'applicazione di runtime incorporata.

  • Debug di un'applicazione che dispone dell'opzione Connetti a invece dell'esecuzione dell'applicazione scegliendo Avvia dal menu Debug.

  • Debug di codice ottimizzato.

  • Debug di codice gestito quando la destinazione è un'applicazione a 64 bit.Se si desidera utilizzare Modifica e continuazione, è necessario impostare la destinazione su x86(progettoProprietà, scheda Compila , impostare Advanced Compiler ).

  • Debug di una versione precedente del codice dopo un tentativo non riuscito di compilazione di una nuova versione a causa della presenza di errori di compilazione.

Vedere anche

Attività

Procedura: utilizzare Modifica e continuazione (C#)

Riferimenti

Modifica e continuazione (Visual C#)

Errori e avvisi di Modifica e continuazione (C#)