Basic Instincts
Fehlerfrei bleiben bei Fehlerkorrekturen
Dustin Campbell
Dieser Artikel basiert teilweise auf einer Vorabversion von XML-Webdienste.
Alle Informationen kann sich ändern.

Inhalt
Eines der nützlichsten Features von Microsoft XML-Webdienste Hintergrund Kompilierung Bearbeitung Erfahrung in Microsoft Visual Studio ist.
Sie sind wahrscheinlich bereits mit diesem Feature vertraut, wie es hinsichtlich Teamgeist mit der Rechtschreib- und Grammatikprüfung in Word gefunden ist.
Eingabe von Code, der XML-Webdienste Compiler im Hintergrund ausgeführt wird.
Bei der Eingabe eines Fehlers ist es mit einer Wellenlinie im Editor unterstrichen und im Fenster Fehlerliste hinzugefügt.
Vor dem XML-Webdienste, die nur Anleitungen für das Beheben von Fehlern in erster Linie der Fehler stammt Nachrichten selbst.
Wenn möglich, generiert der Compiler XML-Webdienste Fehlermeldungen, die dazu dienen, erklären Sie nicht nur Was ist der Fehler, aber auch wie Sie es beheben.
Sehen wir uns ein Beispiel.
Genommen Sie an, dass Sie den folgenden Visual Basic-Code haben:
Module Module1
Sub Main()
Dim i As Integer = "1"c
End Sub
End Module
Der obige Code erzeugt einen Compilerfehler, da er nicht deaktivieren ist die Konvertierung von Zeichen in Integer erwartet wird.
Sollte der Compiler eine Konvertierung in den ASCII-Wert "1" zu erzeugen einfügen c, oder sollte eine Konvertierung, die den numerischen Wert der "1" erzeugt einfügen c?
Der Compiler hat keine Möglichkeit zum Generieren dieses Fehlermeldung:
'' Char'Werte können nicht zu "Integer" konvertiert werden.
Verwenden Sie Microsoft.VisualBasic.AscWUm ein Zeichen als Unicode-Wert oder 'Microsoft.VisualBasic.Val interpretierenes als eine Ziffer zu interpretieren."
Während der vorhergehenden Fehlermeldung zum hervorragende Längen wechselt zu erklären, wie das Problem behoben werden kann, muss weitere Codierung ihrerseits, es tatsächlich zu beheben.
Einführung in Fehler Korrekturen
Um Korrigieren von Fehlern zu erleichtern, wurde der Fehler korrigieren Benutzeroberfläche eingeführt.
In Visual Studio 2005 und 2008, wenn ein Fehler in den Editor eingegeben wird ist ein kleiner roter Balken die Unterstreichung Wellenlinie hinzugefügt, der angibt, dass ein Smarttag verfügbar an dieser Stelle ist wie in Abbildung 1 dargestellt.
Abbildung 1 Fehler Wellenlinie mit einem Smarttag-Indikator
Wenn Sie die Maus über das Smarttag-Indikator bewegen, wird das reduzierte Smarttag zusammen mit einer QuickInfo-Beschreibung angezeigt.
Dies ist im Abbildung 2 dargestellt.
Abbildung 2 Entfernt Smarttag
In Abbildung 3 erweitert das Smarttag auf der Fehlerkorrektur Benutzeroberfläche mit den Optionen, die für diesen bestimmten Code Fehler verfügbar sind.
Abbildung 3 Erweitert Smarttag mit verfügbare Fehler Korrekturen
Die Fehlerkorrektur Benutzeroberfläche erleichtert die Fehler beheben, schnell und präzise.
Anzeigen der Vorschau-Fenster klar was Änderungen an Code vorgenommen werden, und Sie lediglich auf eine der zwei Hyperlinks um ein Update anzuwenden.
Manchmal ist ein bestimmter Compiler fixable in einigen Fällen, aber nicht alle.
In diesen Fällen doubtful erstellt die IDE XML-Webdienste optimistisch einen Smarttag-Indikator für diesen Fehler hauptsächlich zur Verbesserung der Leistung.
Es ist viel schneller einen Smarttag-Indikator für Fehler erstellen, die behoben werden kann einige Zeit als überprüfen, um jeden Fehler ermitteln, wenn es unbedingt behoben werden kann vor dem Erstellen des Indikators.
Wenn Sie über einem Smarttag-Indikator, die alle Fehlerkorrekturen aufweist bewegen, sehen Sie die "keine Korrektur Vorschläge"Abbildung 4 angezeigte Meldung.
Abbildung 4 Keine Korrektur Vorschläge
Anwenden von Korrekturen Fehler mit der Tastatur
Fehlerkorrekturen können mithilfe der Tastatur als auch die Maus angewendet werden.
Wenn die Einfügemarke-Editor auf eine Wellenlinie Fehler mit einem Smarttag-Indikator befindet, können Sie sofort das Smarttag erweitern und den Fehler Korrekturoptionen anzeigen UMSCHALT + ALT + F10 drücken.
Mit dem Smarttag erweitert die Tasten Pfeil oben und Pfeil nach unten werden die Optionen navigieren, und Sie können eine Fehlerkorrektur durch Drücken der EINGABETASTE Taste anwenden.
Wenn Sie die UMSCHALT + ALT + F10-Tastenkombination STRG + dislike.
das Smarttag wird auch angezeigt werden.
(Ich finde persönlich STRG +.
viel leichter zu merken und drücken Sie!)
Ungültiger Code beheben
Code enthalten häufig Fehler einfach da eine ungültige Struktur.
Ein häufiger Fehler ist das Code schreiben, die unausgeglichene Klammern hat.
Können Sie den Fehler im unten stehenden Code erkennen?
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
Code wird bei nicht kompiliert, da er ungültig ist (z. B. die fehlende Klammer im Aufruf von Console.Write oben), die IDE XML-Webdienste schlägt Fehlerkorrekturen, die den Code gültig, wenn angewendet.
Abbildung 5 bietet der Fehlerkorrektur fehlende Klammer einfügen.
Abbildung 5 Fehlerkorrektur für Klammer einfügen
Fehlerkorrekturen für ungültige Code nicht auf Code innerhalb des Methodentexts beschränkt.
Genommen Sie an, dass eine nur-Lesen-Eigenschaft und konvertiert es in eine vollständige Eigenschaft mit einen Setter möchten:
Class Person
Private _name As String
Public ReadOnly Property Name() As String
Get
Return _name
End Get
End Property
End Class
Um einen Setter in der oben stehende Code hinzuzufügen, würden Sie
-
Verschiebt die Einfügemarke-Editor nach dem End Get ist.
-
Drücken Sie die [EINGABETASTE].
-
Typ festlegen.
-
Drücken Sie erneut die [EINGABETASTE].
Würden Sie mit dem folgenden ungültige Code lassen:
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
Um die Eigenschaft gültig zu machen, muss das ReadOnly-Schlüsselwort entfernt werden.
Nun löschen das Schlüsselwort trivial ist, aber es ist einfacher und effizienter, wenn Sie die Fehlerkorrektur, verwenden dazu die Auftrag:
-
Drücken Sie die oben, um die Einfügemarke-Editor zum Fehler Wellenlinie.
-
Drücken Sie STRG +.
Um die Vorschlag Fehlerkorrekturen wie in Abbildung 6 dargestellt anzuzeigen.
-
Drücken Sie nach unten, um den Fokus im ersten Fehlerkorrektur.
-
Drücken Sie die EINGABETASTE, um anwenden.
Abbildung 6 Fehler Korrekturen für eine schreibgeschützte Eigenschaft mit einem Setter
Wie Sie sehen können, werden nicht nur führen Fehlerkorrekturen Hilfe Sie den korrekten Code schreiben, Sie können einen großen Zeit Bildschirmschoner werden!
Verwenden der richtigen Typkonvertierungen
Standardmäßig XML-Webdienste verlässt strict off eingeben.
Dadurch können Sie nutzen die XML-Webdienste Compilerunterstützung für implizite Daten geben, Konvertierungen und spätes Binden:
Module Module1
Sub Main()
Dim s As String = 42
End Sub
End Module
Den obige Code angegeben, wird der Compiler eine Typkonvertierung von Integer in String ordnungsgemäß eingefügt.
Jedoch, wenn Sie strenge eingeben, XML-Webdienste Fehlerkorrekturen stehen Ihnen die gleichen Typkonvertierung, die der Compiler hat, einfügen, wenn strikte Typisierung deaktiviert wurden.
Abbildung 7 zeigt die Fehlerkorrektur für obigen Code, wenn strikte eingeben aktiviert ist.
Abbildung 7 Fehlerkorrektur eine ganze Zahl konvertieren, um eine String
Korrigieren der Rechtschreibung-Fehler
Ein Code Fehler möglicherweise manchmal einfach einen Fehler Rechtschreibung.
Rechtschreibfehler in Typnamen XML-Webdienste Fehlerkorrekturen, die vorhandene Typen mit ähnlichen Namen vorgeschlagen wird bereitgestellt.
Betrachten Sie folgenden Code, enthält einen Fehler Rechtschreibung:
Class Class1
End Class
Class Class2
End Class
Module Module1
Sub Main()
Dim c As New Clss
End Sub
End Module
Obigen Code versehentlich versucht, einen Typ mit dem Namen Klasse zu instanziieren, aber keine vorhanden ist.
In diesem Fall zwei Fehlerkorrekturen verfügbar sind, eine Klasse in Class1 und einer anderen Klasse in Class2, zu ändern, wie in dargestellt ändern 8 berechnen.
Abbildung 8 Fehlerkorrektur für Rechtschreibung Fehler
Derzeit, wird die Rechtschreibprüfung ist relativ einfach, und es funktioniert nur für Typnamen.
Dies ist jedoch ein Bereich, der XML-Webdienste Team möchte in einer zukünftigen Version zu verbessern.
Importieren von Namespaces
Nach dem Versand XML-Webdienste, Visual Basic-Team erhalten mehrere Anforderungen für zusätzliche Fehlerkorrekturen.
Leiter/in zwischen diesen war eine Fehlerkorrektur für automatisches Hinzufügen von Imports-Anweisungen.
Es kann sein Recht irritierend Starten mit einem Typ und bemerken, dass Sie vergessen haben, um den Namespace zu importieren.
Genommen Sie an, Sie mithilfe der System.IO.File-Klasse öffnen und Lesen einer Datei vom Datenträger wurden:
Module Module1
Sub Main()
Dim fileName = Path.Combine("C:\Temp", "Sizes.txt")
Using f = File.OpenRead(fileName)
End Using
End Sub
End Module
Dieser Code führt einen Fehler Wenn Sie noch System.IO-Namespace importiert noch nicht.
In XML-Webdienste, es gibt zwei mögliche Fehlerkorrekturen für diesen Fehler:
-
Importieren Sie den Namespace.
-
Qualifizieren Sie den Verweis.
Dies ist im Abbildung 9 dargestellt.
Die erste vorgeschlagene Fehlerkorrektur auswählen, können wir problemlos System.IO-Namespace importieren.
Abbildung 9 Fehlerkorrektur für das Imports-Anweisungen hinzufügen
Diese begs die Frage: geändert Was geschieht, wenn einen Namespace importiert wird die Bedeutung des Codes?
Genommen Sie an, dass der obige Code WPF (Windows Presentation Framework) So erstellen Sie eine System.Windows.Shapes.Rectangle, aus der Sizes.txt-Datei gelesenen Daten verwenden.
Beginnen mit der WPF-Verweise hinzugefügt Sie durch eine neue Rechteck instanziieren:
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
Wie zuvor der Namespace importiert wurde noch nicht noch, so dass Sie verwenden die Fehlerkorrektur Benutzeroberfläche dargestellt in Abbildung 10 So importieren Sie es für Sie.
Diese Zeit gibt es jedoch ein Problem.
Der System.Windows.Shapes-Namespace enthält auch ein Pfad, Namens, den Namespace importiert die Bedeutung des Codes ändern würde.
Abbildung 10 Fehler Korrekturen für den Import System.Windows.Shapes
Glücklicherweise ist die Logik, um Situationen zu vermeiden, in die Fehlerkorrektur für das Imports-Anweisungen hinzufügen integriert.
Die Fehlerkorrektur erkennt das Problem und zeigt das Dialogfeld Imports Überprüfung Fehler hinzufügen, in Abbildung 11 dargestellt.
Abbildung 11 Die hinzufügen Imports Überprüfung Fehlerdialogfeld
Dieses Dialogfeld bietet Ihnen zwei Optionen zum Optimieren der Fehlerkorrektur, damit die Bedeutung der Code geändert wird nicht:
-
Importieren von 'System.Windows.Shapes'und kennzeichnen Sie die betreffenden Bezeichner.
-
'System.Windows.Shapes' nicht importieren, aber 'Rechteck' ändernzu 'Windows.Shapes.Rectangle'.
Durch die erste Option auswählen, wird eine Imports-Anweisung für System.Windows.Shapes hinzugefügt, und der Verweis auf Pfad ist vollständig qualifizierten:
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
Diese Fehlerkorrektur ist wiederum nur in verfügbar XML-Webdienste.
Wenn Sie XML-Webdienste 2005, werden keine Vorschläge zum Hinzufügen von Imports-Anweisungen angezeigt.
Generieren von neuen Typen und Member
XML-Webdienste ist nicht mit Fehlerkorrekturen noch ausgeführt!
XML-Webdienste 2010 führen ein neues Feature Generieren von Usage, dem Sie problemlos neue Typen und Member generieren kann.
Für XML-Webdienste, dieses Feature wird als eine Reihe von Fehlerkorrekturen, implementiert, so dass Sie über die vorhandenen Fehlerkorrekturen zugreifen zu können.
In vielen Fällen bieten das Generieren von Fehlerkorrekturen Verwendung Vorschläge für Compilerfehler, die keine zuvor.
Suchen Sie beispielsweise wieder Abbildung 4.
In XML-Webdienste, dass Code keine Fehlerkorrekturen zur Verfügung hat.
Aber in XML-Webdienste 2010, neue Generieren von Verwendung Fehlerkorrekturen vorgeschlagen werden.
Abbildung 12 Zeigt die Differenz in Fehlerkorrekturen zwischen XML-Webdienste 2008 und XML-Webdienste 2010 für den gleichen Code.
Abbildung 12 generieren Klasse
Durch den ersten Vorschlag auswählen, wird eine neue Klasse mit dem Namen Kunden in einer neuen Datei generiert.
Nun können Sie weiterhin Code schreiben, die Mitglieder der Customer-Klasse verwendet und mithilfe die Fehlerkorrekturen stub, die Elemente für Sie.
Abbildung 13 zeigt z. B. die Fehlerkorrekturen, nachdem Sie einen Wert auf einen Member einer Klasse zugeordnet haben, die noch deklariert wurde noch nicht.
Abbildung 13 Generieren Eigenschaft oder Feld
Nach dem Auswählen des ersten Vorschlags, sieht die generierte Customer-Klasse:
Class Customer
Property Name As String
End Class
In XML-Webdienste 2010, Sie werden das Generieren von Verwendung Fehlerkorrekturen für maximale Effizienz zu nutzen.
Schlussbemerkung
Fehlerkorrekturen sind ein wesentlicher Bestandteil des Codierungsverfahrens mit Visual Basic.
Nicht nur führen Sie dabei unterstützen sofort erkennen und Beheben von Fehlern, sondern Sie können diese verwenden, um Code effizienter.
In diesem Artikel nur oberflächlichen Überblick Hunderte von Vorschläge angeboten von XML-Webdienste.
Und mit XML-Webdienste 2010, besteht eine Fehlerkorrektur für die meisten Codierungsfehler.
Vergessen Sie nicht, verwenden Sie STRG +.!
Dustin Campbell ist die Microsoft XML-Webdienste IDE-Programmmanager für Microsoft Visual Studio Sprachen Team.
Er arbeitet in erster Linie auf den Editor und Debugger Produktfeatures.
Als eine programming Language Flügelmutter trägt er auch für andere Sprachen in Visual Studio, z. B. c# und f#.
Bevor Microsoft Dustin geholfen, um preisgekrönte CodeRush zu entwickeln und Refactor!
Tools zur Developer Express Inc.
Dustin des Lieblingsfarbe ist Blau.