Condividi tramite


Il presente articolo è stato tradotto automaticamente.

Esigenze primarie

Rimanere disponibile con le correzioni di errore Errore

Dustin Campbell

In questo articolo si basa in parte su una versione preliminare di Visual Studio. Tutte le informazioni sono soggette a modifiche.

Contenuto

Introduzione a correzioni di errore
Applicazione di correzioni di errore con la tastiera
Correzione di codice non valido
Utilizzo di conversioni di tipi a destra
Correzione di errori di ortografia
L'importazione di spazi dei nomi
Tipi di nuove generazione e membri
Conclusione

Una delle funzionalità più utili di Microsoft Visual Basic modifica in Microsoft Visual Studio è la compilazione in background. Probabilmente conoscete già familiarità con questa funzionalità, come nel caso spirito simile al correttore ortografico e grammaticale in Microsoft Word. Durante la digitazione di codice, il compilatore di Visual Basic viene eseguito in background. Quando si digita un errore, è sottolineato con una linee a zigzag nell'editor e aggiunto alla finestra Elenco errori.

Prima a Visual Studio 2005, le istruzioni per la correzione degli errori sola provengono principalmente dai messaggi di errore. Quando possibile, il compilatore di Visual Basic genera messaggi di errore che si intendono spiegare non solo l'errore, ma anche per la correzione.

Vediamo un esempio. Si supponga di disporre il codice Visual Basic riportato di seguito:

Module Module1
  Sub Main()
    Dim i As Integer = "1"c
  End Sub
End Module

Il codice precedente produce un errore del compilatore perché è chiaro che si prevede la conversione da char a intero. Il compilatore inserire una conversione per produrre il valore ASCII di "1" c, o è necessario inserire una conversione che produce il valore numerico di "1" c? Il compilatore non è nessuna opzione ma per generare questo messaggio di errore:

"I valori 'Char' non possono essere convertiti in 'Integer'. Utilizzare 'Microsoft.VisualBasic.AscW' per interpretare un carattere come valore Unicode o 'Microsoft.VisualBasic.Val' per interpretarlo come cifra."

Durante il precedente messaggio di errore viene inviata all'ottime lunghezze per spiegare come può essere risolto il problema, è necessaria una codifica più parte dell'utente per la correzione effettivamente.

Introduzione a correzioni di errore

Per facilitare la risoluzione di errori, è stato introdotto l'interfaccia di correzione di errore. In Visual Studio 2005 e 2008, quando viene digitato un errore nell'editor, la sottolineatura di linee a zigzag che indica che uno smart tag è disponibile in tale percorso, come illustrato nella Figura 1 viene aggiunto una piccola barra rossa.

fig01.gif

Figura 1 linee a zigzag errore con un indicatore di smart tag

Se si passa il puntatore del mouse sull'indicatore di smart tag, lo smart tag compresso verrà visualizzato con una descrizione della descrizione comandi. Questo è illustrato nella Figura 2 .

fig02.gif

Nella figura 2 compresso smart tag

In Nella figura 3 , fare clic su smart tag si espande la correzione di errore dell'interfaccia utente con le opzioni disponibili per questo errore di codice specifico.

fig03.gif

Nella figura 3 espansa smart tag con disponibili correzioni di errore

La correzione di errore dell'interfaccia utente consente di correggere errori in modo rapido e accurato. Le finestre di anteprima mostra chiaramente che verranno apportate le modifiche al codice ed è sufficiente fare clic su uno dei due collegamenti ipertestuali per applicare una correzione.

Talvolta un particolare compilatore è fixable in alcuni casi, ma non tutti. In questi casi doubtful, IDE di Visual Basic creerà ottimistico un indicatore smart tag per tale errore, principalmente per migliorare le prestazioni. È molto più rapido creare un indicatore di smart tag per gli errori che possono essere risolti parte del tempo rispetto per controllare ogni errore per determinare può essere risolto in modo definito prima di creare l'indicatore. Quando si passa su un indicatore smart tag che non include le correzioni di errore, verrà visualizzato il messaggio "Nessun suggerimento di correzione" illustrato nella Figura 4 .

fig04.gif

Nella figura 4 non suggerimenti di correzione

Applicazione di correzioni di errore con la tastiera

È possibile applicare le correzioni di errore utilizzando la tastiera e come il puntatore del mouse. Se il punto di inserimento editor si trova su un linee a zigzag errore con un indicatore di smart tag, è possibile premere MAIUSC + ALT + F10 per immediatamente espandere lo smart tag e visualizzare l'errore le opzioni di correzione. Con lo smart tag espanso, i tasti freccia su e GIÙ si sposterà le opzioni, ed è possibile applicare una correzione di errore premendo il tasto INVIO. Se si gradite la scelta rapida ALT + MAIUSC + F10, CTRL +. verrà visualizzato anche lo smart tag. (Personalmente ritengo CTRL +. più molto semplice da ricordare e premere!)

Correzione di codice non valido

Spesso, codice conterrà un errore semplicemente perché dispone di una struttura non valida. Un errore comune consiste nello scrivere codice che include parentesi non corrette. Possibile individuare l'errore nel codice riportato di seguito?

Module Module1
  Sub Main()
    Dim quad = Function(a, b, c) _
                 Function(x) (a * x * x) + (b * x) + c

    Dim f = quad(1.0, -79.0, 1601.0)

    Console.Write(f(42.0)
  End Sub
End Module

Quando codice non viene compilato perché non è valido (ad esempio, la parentesi mancante nella chiamata a console.Write precedente), l'IDE di Visual Basic suggerirà le correzioni di errore che rendono il codice valido se applicato. Nella Figura 5 , la correzione degli errori consente di inserire la parentesi manca.

fig05.gif

Nella figura 5 correzione di errore per l'inserimento di parentesi

Correzioni di errore per codice non valido non sono limitate a codice all'interno del corpo di un metodo. Si supponga ad esempio, di disporre di una proprietà di sola lettura e desidera convertirlo in una proprietà completa con un metodo di impostazione:

Class Person
  Private _name As String

  Public ReadOnly Property Name() As String
    Get
      Return _name
    End Get
  End Property
End Class

Per aggiungere un metodo di impostazione nel codice sopra riportato, è necessario

  1. Spostare il punto di inserimento editor dopo End Get.
  2. Premere INVIO.
  3. Imposta tipo.
  4. Premere nuovamente INVIO.

Con il seguente codice non valido, che potrebbe lasciare è:

Class Person
  Private _name As String

  Public ReadOnly Property Name() As String
    Get
      Return _name
    End Get
    Set(ByVal value As String)

    End Set
  End Property
End Class

Per rendere la proprietà valido, la parola chiave ReadOnly deve essere rimosso. A questo punto, eliminare la parola chiave è banale, ma è più facile ed efficiente se si utilizza la correzione degli errori per eseguire il processo:

  1. Premere per spostare il punto di inserimento editor linee a zigzag errore.
  2. Premere CTRL +. Per visualizzare le correzioni di errore suggerimento illustrate nella figura 6.
  3. Premere giù per lo stato attivo prima correzione di errore.
  4. Premere INVIO per applicare.

fig06.gif

Nella figura 6 correzioni di errore per una proprietà di sola lettura con un Setter

Come si può vedere, non solo di effettuare le correzioni di errore la scrittura il codice corretto, possono essere un notevole risparmio di tempo!

Utilizzo di conversioni di tipi a destra

Per impostazione predefinita, lascia strict digitare disattivare Visual Basic. Ciò consente di sfruttare il supporto del compilatore di Visual Basic per i dati impliciti di digitare le conversioni e l'associazione tardiva:

Module Module1
  Sub Main()
    Dim s As String = 42
  End Sub
End Module

Dato il codice sopra riportato, il compilatore correttamente verrà inserita una conversione di tipo da integer a String.

Tuttavia, se si utilizza digitare strict, le correzioni di errore di Visual Basic saranno disponibili che consentono di inserire la stessa conversione del tipo cui il compilatore avrebbe, se digitare strict off. la figura 7 Mostra la correzione di errore per il codice sopra digitare strict quando è attivata.

fig07.gif

Nella figura 7 Correzione degli errori per convertire un valore integer in una stringa

Correzione di errori di ortografia

In alcuni casi un errore del codice può essere un errore di ortografia. Per gli errori ortografici nei nomi di tipo, Visual Basic fornirà le correzioni di errore che suggeriscono i tipi esistenti con nomi simili. Si consideri il codice riportato di seguito, che contiene un errore di ortografia:

Class Class1
End Class

Class Class2
End Class

Module Module1
  Sub Main()
    Dim c As New Clss
  End Sub
End Module

Il codice sopra erroneamente tenta di creare un'istanza un tipo denominato classe, ma non ne esiste alcuno. In questo caso, disponibili due correzioni di errore, uno per modificare la classe Class1 e un altro per modificare classe Class2, come illustrato nella Figura 8 .

fig08.gif

Figura 8 correzione di errore per l'errore di ortografia

Attualmente, il correttore ortografico è abbastanza semplice e funziona solo per i nomi dei tipi. Tuttavia, questa è un'area che il team di Visual Basic da migliorare in una versione futura.

L'importazione di spazi dei nomi

Dopo la distribuzione di Visual Studio 2005, il team di Visual Basic ha ricevuto diverse richieste di correzioni di errore. Vyriausiasis tra questi è una correzione di errore per l'aggiunta automatica di istruzioni Imports. Può essere piuttosto le iniziare a utilizzare un tipo di realizzare che hai dimenticato importare lo spazio dei nomi. Ad esempio, si supponga che si utilizza la classe System.IO.file per aprire e leggere un file dal disco:

Module Module1
  Sub Main()
    Dim fileName = Path.Combine("C:\Temp", "Sizes.txt")
    Using f = File.OpenRead(fileName)

    End Using
  End Sub
End Module

Questo codice genera un errore se sono stati non sono stati importati ancora lo spazio dei nomi System.IO. In Visual Studio 2008, esistono due correzioni di errore possibili per questo errore:

  1. Importare lo spazio dei nomi.
  2. Qualificare il riferimento.

Come illustrato nella Figura 9 . Se si sceglie la prima correzione suggerita errore, è possibile importare lo spazio dei nomi System.IO.

fig09.gif

Nella figura 9 Correzione degli errori per l'aggiunta di istruzioni Imports

Questo begs la domanda: cosa succede se l'importazione di uno spazio dei nomi comporta la modifica il significato di codice? Si supponga che il codice sopra riportato utilizzerà Windows Presentation Framework (WPF) per creare un System.Windows.Shapes.Rectangle utilizzando dati letti dal file Sizes.txt. Aggiungere i riferimenti di WPF, è possibile avviare creando un nuovo rettangolo:

Imports System.IO

Module Module1
  Sub Main()
    Dim fileName = Path.Combine("C:\Temp", "Sizes.txt")
    Using f = File.OpenRead(fileName)
      Dim r As New Rectangle
    End Using
  End Sub
End Module

Come prima, lo spazio dei nomi non è stato importato ancora, pertanto è possibile utilizzare la correzione di errore dell'interfaccia utente illustrato nella Figura 10 per importarlo... Tuttavia, questa volta la esiste un problema. Lo spazio dei nomi System.Windows.Shapes è incluso anche un tipo denominato percorso, in modo da importare lo spazio dei nomi si modifica il significato del codice.

fig10.gif

Nella figura 10 correzioni di errore per l'importazione System.Windows.Shapes

Fortunatamente, la logica per evitare tali problemi è incorporata nella correzione degli errori per aggiungere istruzioni Imports. La correzione degli errori riconosce il problema e visualizza la finestra di dialogo Aggiungi errore di convalida importazioni, illustrato nella Figura 11 .

fig11.gif

Nella figura 11 il dialogo di errore Aggiungi Imports convalida

Questa finestra di dialogo offre due opzioni per modificare la correzione degli errori, in modo non verrà modificato il significato del codice:

  1. Importa 'System.Windows.Shapes' e qualifica gli identificatori interessati.
  2. Non importare 'System.Windows.Shapes', ma modificare 'Rettangolo' a 'Windows.Shapes.Rectangle'.

Per la prima opzione di prelievo, un'istruzione Imports viene aggiunto per System.Windows.Shapes, e il riferimento al percorso completo:

Imports System.IO
Imports System.Windows.Shapes

Module Module1
  Sub Main()
    Dim fileName = System.IO.Path.Combine("C:\Temp", "Sizes.txt")
    Using f = File.OpenRead(fileName)
      Dim r As New Rectangle
    End Using
  End Sub
End Module

Anche in questo caso, la correzione di errore è disponibile solo in Visual Studio 2008. Se si utilizza Visual Studio 2005, suggerimenti per l'aggiunta di istruzioni Imports non sarà visibile.

Tipi di nuove generazione e membri

Visual Basic non viene eseguita con le correzioni di errore ancora! Visual Studio 2010 presenterà una nuova caratteristica denominata generate dall'utilizzo, che consente di generare facilmente nuovi tipi e membri. Per finestra di Visual Basic, questa funzionalità viene implementata come una serie di correzioni di errore, in modo che è possibile accedervi tramite le correzioni di errore esistenti. In molti casi, genera da correzioni di errore di utilizzo suggerimenti gli errori del compilatore era Nessuno. Ad esempio, essere nuovamente nella Figura 4 . In Visual Studio 2008, tale codice non dispone di nessun correzioni di errore disponibile. Ma in Visual Studio. 2010, sono consigliate genera nuovo da correzioni di errore di utilizzo. Figura 12 Mostra la differenza nelle correzioni di errore tra Visual Studio 2008 e Visual Studio 2010 per il codice stesso.

fig12.gif

Nella figura 12 Genera classi

Se si sceglie il primo suggerimento, una nuova classe denominata Customer, viene generata in un nuovo file. A questo punto, è possibile continuare a scrivere codice che utilizza i membri della classe cliente e utilizzare le correzioni di errore per stub i membri per l'utente. Ad esempio, la Figura 13 Mostra le correzioni di errore dopo è stato assegnato un valore a un membro di una classe che non è stata dichiarata ancora.

fig13.gif

Nella figura 13 Genera proprietà o campo

Dopo aver scelto il primo suggerimento, la classe Customer generata aspetto:

Class Customer
  Property Name As String
End Class

In Visual Studio. 2010, non sarà in grado di sfruttare il genera da correzioni di errore di utilizzo per ottenere la massima efficienza.

Conclusione

Le correzioni di errore sono una parte essenziale di Visual Basic esperienza di codifica. Non solo si consentono immediatamente individuare e correggere gli errori, ma è possibile utilizzarli per scrivere codice in modo più efficiente. In questo articolo graffi solo la superficie di centinaia di suggerimenti offerti da Visual Basic. E con Visual Studio. 2010, non vi è una correzione di errore per la maggior parte degli errori di codifica.

Non dimenticare di utilizzare CTRL +.!

Per inviare domande e commenti per instinct@microsoft.com.

Dustin Campbell è Microsoft Visual Basic IDE Program Manager nel team di linguaggi Microsoft Visual Studio. Si occupa principalmente di editor e debugger funzionalità del prodotto. Come un dado linguaggio di programmazione, ha inoltre contribuisce ad altri linguaggi in Visual Studio, ad esempio C# e F #. Prima di unirsi a Microsoft, Dustin hanno contribuito a sviluppare il CodeRush pluripremiato e Refactor! strumenti di Developer Express Inc. Suo colore di Dustin preferito è blu.