Leggere in inglese

Condividi tramite


Modifiche al codice supportate (C#)

Le informazioni contenute in questo argomento sono valide per:

Edizione

Visual Basic

C#

F#

C++

Web Developer

Express

Argomento non applicabile Argomento applicabile Argomento non applicabile Argomento non applicabile Argomento applicabile

Pro, Premium e Ultimate

Argomento non applicabile Argomento applicabile Argomento non applicabile Argomento non applicabile Argomento applicabile

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 sono supportate le modifiche a blocchi catch, finally e try, con alcune eccezioni per i blocchi inclusi in metodi attivi, ad esempio i metodi attualmente 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 catch o finallyintorno all'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 di un blocco catch, finally o tryintorno all'istruzione attiva.

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

    • Modifica di codice all'interno di un blocco 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 Modifica e continuazione con LINQ.

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

  • Debug SQL.

  • Debug di un dump di Dr. 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 (Proprietà di Progetto, scheda Compilazione, Impostazioni del compilatore avanzate.)

  • 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#)

Altre risorse

Errori e avvisi di Modifica e continuazione (C#)