Visual Basic .NET

14 wichtige Verbesserungen in Visual Basic 14

Lucian Wischik

Visual Basic 14 ist die neueste Version von Visual Basic und wird einen Teil des Lieferumfangs von Visual Studio 2015 bilden. Diese Version wurde von Grund auf in ca. 1,3 Millionen Zeilen VB-Code neu erstellt – frühere Versionen waren tatsächlich in C++ programmiert. Das Team hat die Neuerstellung genutzt, um jeden Bestandteil von VB von Grund auf neu zu denken. Ich habe das Team gebeten, die 14 wichtigsten Verbesserungen zu benennen. Es hat seine Favoriten aus allen Bereichen ausgewählt – aus der Codeerstellung, aus den Grundlagen des Projektsystems und aus der Sprache selbst.

Besseres Verhalten bei der Codeerstellung

1. Umgestaltungen "Schon allein die Tatsache, dass wir Umgestaltung direkt in das Produkt integrieren können, ist ein Riesenschritt" – .NET MVP Jim Wooley

Bisher war es so, dass Sie Add-On-Produkte erwerben mussten, um grundlegende Umgestaltungen für Visual Basic, wie das Extrahieren von Methoden oder das Inlining von temporären Variablen, vornehmen zu können. Es gab eine Reihe von Umgestaltungen für C#, und Microsoft hat sich Developer Express zum Partner genommen, um deren Refactor!-Add-In seit Visual Studio 2005 für Visual Basic-Benutzer verfügbar zu machen. Jetzt sind Umgestaltungen in Visual Studio 2015 integriert! Um sie zu verwenden, klicken Sie auf einen Bezeichner, oder heben Sie einen Unterausdruck hervor. Drücken Sie dann STRG+PUNKT, oder klicken Sie mit der rechten Maustaste, und wählen Sie "+++Schnelle Aktionen" aus. Dadurch wird ein Glühbirnen-Kontextmenü mit relevanten Aktionen angezeigt, wie in Abbildung 1 dargestellt.

Visual Basic 14 enthält jetzt integrierte Umgestaltung
Abbildung 1 Visual Basic 14 enthält jetzt integrierte Umgestaltung

Beachten Sie, dass Umgestaltungen kontextbezogen erfolgen. Wenn Sie beispielsweise die rechte Seite von "Dim circleArea = Math.PI * radius * radius" in eine Methode extrahieren, schlägt Visual Basic für diese Methode den Namen "GetCircleArea" vor. Und es versetzt Sie in den Inline-Umbenennungsmodus, für den Fall, dass Sie diesen Namen ändern möchten. Das intelligente Feature bei dieser Inline-Umbenennung ist, dass sie Namenskonflikte erkennen und Sie warnen kann, wenn Sie einen bereits verwendeten Namen auswählen. Sie kann Konflikte vermeiden, wo das möglich ist, und sie funktioniert außerdem übergreifend in der gesamten Projektmappe, selbst bei der Änderung von Namen in C#-Projekten.

2. Analyzer "Das Feature ist spektakulär. Ich habe so viele Ideen, wie wir dieses Feature verwenden können... die ganzen Kleinigkeiten, die ich im Code von anderen finde" – unbemerkt mitgehörte Aussage eines Windows PowerShell-MVPs

Analyzer stellen eine Möglichkeit dar, Ihnen die Funktion von Glühbirnen, Codeaktionen und Fehlerschnörkeln in die Hände zu legen. Sie können sie verwenden, um Richtlinie für die Codeerstellung im Team durchzusetzen. Wenn man Sie eingeflogen hat, um ein Problem zu debuggen, können Sie einen Analyzer einstöpseln, um schnell allgemeine Codedefekte in der gesamten Projektmappe aufzuspüren. Und viele der von Ihnen verwendeten Bibliotheken können mithilfe eigener, integrierter Analyzer "codesensitiv” werden. Nehmen wir beispielsweise an, Sie haben die Microsoft Azure Storage-Bibliothek noch nicht verwendet oder keine Artikel zu bewährten Methoden gelesen. Da die Bibliothek jetzt einen Analyzer enthält, der häufige Fallstricke in der Verwendung der APIs erkennt, können Sie von Anfang an zuversichtlich sein, dass Sie sie ordnungsgemäß verwenden. Es ist fast so, als blickte Ihnen bei der Eingabe ein Experten für Codeüberprüfung über die Schulter.

Sie können Ihrem Projekt unter dem neuen Knoten "Referenzen" | "Analyzer" (oder per NuGet) Analyzer hinzufügen. Sobald sie Teil der Kompilierung Ihres Projekts geworden sind... – werden sie live ausgeführt, während Sie Code eingeben, um Fehlerschnörkel in Echtzeit anzuzeigen. Sie werden ausgeführt, während Sie Ihr Projekt in Visual Studio oder auf der Befehlszeile erstellen, ja sogar auf Buildservern können sie ausgeführt werden. Analyzer erhalten die Möglichkeit, die Interna des Compilers "aufzubrechen" und die Syntaxstrukturen des Quellcodes eines Projekts und seine Typen und Elemente zu untersuchen. Für Entwickler ist es eine angenehme Überraschung, wenn ihnen bewusst wird, wie einfach es ist, ihre Expertenkenntnisse von Fachgebieten in Analyzercode zu fassen, dank der Syntaxstrukturen und Typen und Elemente. Mein liebster Analyzer erkennt, an welchen Stellen mein Team Async Sub-Methoden anstelle von "Async Function … As Task" verwendet hat, und gibt eine Warnung aus. Das ist eine windige Ecke bei der asynchronen Programmierung, die vielen Programmierern nicht bekannt ist und zu schwer aufzuspürenden Bugs bei der parallelen Ausführung führt, daher ist es eine gute Nachricht, dass mein Team den Fehler jetzt bei der Kompilierung finden kann. Wenn Sie mit dem Erstellen eigener Analyzer beginnen möchten, navigieren Sie zu roslyn.codeplex.com.

3. Keine Notwendigkeit, den Cursor aus der Zeile zu bewegen "Wir machen es jetzt richtig" – Dustin Campbell, Visual Basic-Teammitglied

Als VB-Benutzer haben Sie sich schon lange daran gewöhnt, dass sie etwas Code eingeben konnten und dann einmal kurz "den Cursor nach unten und wieder hoch" bewegen mussten, um zu sehen, ob Fehler anzeigende Schnörkel auftauchen. Oder Sie schrieben Code, um einen Fehlerschnörkel loszuwerden, aber anschließend mussten Sie "den Cursor nach unten und wieder hoch" bewegen, damit der Schnörkel auch verschwand.

Das brauchen Sie sich jetzt nicht mehr anzutun. Lassen Sie den Cursor einfach, wo er ist – und die Fehlerschnörkel erscheinen oder verschwinden ganz ohne Ihr Zutun.

4. Verweise in XML-Dok-Kommentaren "Für Leute, denen Doks am Herzen liegen, ist das ein Riesenschritt in die richtige Richtung" – NET-MVP Sam Harwell

Sind Ihnen XML-Dok-Kommentare wichtig? Hier ein kleines Beispiel:

''' <summary>
''' Similar to <see cref="List(Of Integer).Count"/>
''' </summary>
''' <param name="e">Thing to count</param>
''' <remarks></remarks>
Sub Count(e As IEnumerable)
End Sub

Wenn Sie in früheren Versionen von VB "cref" und "param-name" in Ihren Kommentaren ausgeschrieben haben, hatten Sie Hilfe in Form von Vervöllständigungslisten zur Verfügung, aber abgesehen davon waren Sie ganz auf sich gestellt. Der Compiler nahm eine minimale Überprüfung vor, um herauszufinden, ob die Namen existierten, aber sie wurden grau dargestellt und waren nicht leicht zu finden, nachzuschlagen oder umzugestalten.

In Visual Basic 14 sind die Argumente "cref" und "param-name" jetzt sinnvoll farbig hervorgehoben. Beim Draufzeigen mit der Maus werden QuickInfos angezeigt. Wenn Sie eine Umgestaltung in Form einer Symbolumbenennung (STRG+R, STRG+R) vornehmen, benennt Visual Basic alle Verweise auf ein Symbol um, einschließlich derer in "cref" und "param-name". Sie können mit der rechten Maustaste auf einen Verweis und dann auf "Gehe zu Definition" oder "Alle Verweise suchen" klicken. Wenn Sie auf eine mehrfach überladene Methode verweisen möchten, können Sie jetzt unzweideutig auf die eine Überladung verweisen, die Sie wünschen. Alle diese Änderungen machen es einfacher, in Ihren XML-Dok-Kommentaren Verweise einzugeben – und sie ordnungsgemäß auszuführen.

Projektsystemgrundlagen

5. Knoten "Verweise" im Projektmappen-Explorer Es ist doch so, wir müssen täglich Feinarbeit an Verweisen leisten" – Lucian Wischik, Visual Basic-Teammitglied

Abbildung 2 zeigt, wie ein typisches Visual Basic 14-Projekt im Projektmappen-Explorer aussieht.

Der Knoten "Verweise" wird jetzt im Projektmappen-Explorer angezeigt
Abbildung 2 Der Knoten "Verweise" wird jetzt im Projektmappen-Explorer angezeigt

Das eigentlich Neue ist der Knoten "Verweise". Er war normalerweise ausgeblendet, und Sie mussten auf "Alle Dateien anzeigen" klicken, um ihn zu sehen – aber zugleich damit wurde auch eine Menge irrelevanter Dateien angezeigt.

Dieses bisherige Verhalten war vor 10 Jahren vielleicht sinnvoll, wenn Sie von einem Windows Forms-Projekt ausgingen, das im allgemeinen die richtigen Verweise mitbrachte. Aber die Realität in der modernen Entwicklung ist einfach, dass der Knoten "Verweise" häufig verwendet wird – insbesondere, um NuGet-Verweise zu verwalten. Es ist eine kleine, aber willkommene Annehmlichkeit, dass man ihn leicht im Projektmappen-Explorer findet.

6. Freigegebene Projekte "Dabei geht es einfach nur um gute Tools für verknüpfte Dateien, die den Umgang damit erleichtern" – Windows Developer-MVP Morten Nielsen

Angenommen, Sie möchten Code zwischen zwei oder mehr Projekten freigeben. Das ist eine ziemlich häufige Situation, beispielsweise, wenn sowohl eine WPF- (Windows Presentation Foundation) als auch eine Windows Phone-Version einer App besteht und gewartet wird. Das Ziel ist stets dasselbe: Maximieren der Wiederverwendung von Code, sodass z. B. eine Programmfehlerbehebung, die Sie für ein Projekt durchführen, automatisch auch dem anderen Projekt zugute kommt.

Bisher standen dabei zwei Techniken zur Wahl: Verknüpfte Dateien zur gemeinsamen Verwendung des gemeinsamen Quellcodes oder Umgestaltung des freigegebenen Codes in eine portable Klassenbibliothek um eine gemeinsame Binary zu nutzen. Jetzt bietet Visual Basic 14 eine dritte, leistungsfähige Technik: Freigegebene Projekte.

Warum sollten Sie freigegebene Projekte verwenden? Die Aufgabe der gemeinsamen Verwendung von Code greift tief und steckt voller Tücken – und bietet keine Einheitslösung für alle Fälle. Portable Klassenbibliotheken sind eine gute, saubere Lösung, sie zwingen Sie allerdings dazu, die Architektur Ihres Codes so zu gestalten, dass der gemeinsame Code niemals Aufrufe an die WPF- oder Phone-Projekte ausgibt; er ruft lediglich System-APIs auf, die sowohl bei WPF als auch bei Phone vorhanden sind. Gemeinsame Projekte sind einfacher zu verwenden, da sie ohne diese Neugestaltung der Architektur auskommen.

Zum Einrichten eines freigegebenen Projekts klicken Sie mit der rechten Maustaste auf Ihre Projektmappe und wählen "Hinzufügen" | "Neues Projekt" | "VB" | "Freigegebenes Projekt" aus. Klicken Sie anschließend mit der rechten Maustaste der Reihe nach auf den Knoten "Verweise" jedes der Projekte, und wählen Sie "Hinzufügen" | "Freigegebene Projekte" aus. Ein freigegebenes Projekt stellt lediglich eine Sammlung der Quelldateien, XAML-Dateien, Bilder und sonstigen Objekte dar, die in jedem Projekt enthalten sind, das auf es Bezug nimmt.

Für jedes Ihrer Projekte können Sie aber auch "Mein Projekt" | "Kompilieren" | "Erweiterte Kompilierungsoptionen" | "Benutzerdefinierte Konstanten" mit benutzerdefinierten Konstanten auswählen – z. B. WPF und PHONE. Anschließend können Sie im freigegebenen Code Aufrufe von projektspezifischen APIs ausführen, wie hier:

#If WPF Then
  ' nothing needed
#ElseIf PHONE Then
  ShowBatteryStatus()
#End If

7. 50 Prozent kürzere Kompilierungszeiten "50 Prozent sind kein Witz" – .NET-MVP Sam Harwell

Der Visual Basic-Compiler war bisher in C++ geschrieben. Für Visual Basic 14 hat ihn das Team von Grund auf neu in VB erstellt, wodurch er erheblich schneller geworden ist! Hier zwei Vergleiche:

  • Die Erstellung einer umfangreichen Lösung (1,3 Millionen Codezeilen) hat sich von 68 Sekunden auf 41 Sekunden verkürzt.
  • Das "kalte" Laden einer Projektmappe (einer Windows Store-App) hat sich von 6,7 Sekunden auf 4,6 Sekunden verkürzt

Das ist eine erhebliche Zeitersparnis! Es ist schon toll, wenn Ihr Verstand länger bei der Sache bleiben kann, statt in der Verzögerungsschleife zwischen "Codeerstellung abgeschlossen" und "F5 für den nächsten Haltepunkt drücken" festzuhängen.

Die 50-prozentige Leistungssteigerung überrascht vielleicht manchen, der C++ für schneller als VB gehalten hat. Die Wahrheit ist, dass die wirklichen Fortschritte in der Geschwindigkeit bei Algorithmen, Datenstrukturen und Parallelität erzielt werden. Die Leistungssteigerung durch die Neuerstellung in VB stammt aus vielen Quellen: der Neukonzipierung der Datenstrukturen; der Fähigkeit, Algorithmen sauberer auszudrücken und sicherer umzugestalten; der Verwendung asynchroner Methoden und des Threadpools; der Nutzung der Visual Studio-Profilierungstools zum Erkennen von Hotspots bei CPU-Nutzung und Speicherzuweisung; und der Verwendung von Analyzern zum Entdecken einfacher Leistungsfallen in .NET, wie unnötigem Boxing.

8. Lambdas und LINQ-Ausdrücke in Überwachungsfenstern "Irre!" – Visual Studio Uservoice-Benutzer Marco Senn-Haag

LINQ und Lambdas stellen eine großartige Möglichkeit zum Zusammenfassen von Daten dar. Einer der Orte, wo das besonders dringend gebraucht wird, ist beim Debuggen in den Überwachungs- und Direktfenstern. Bisher führte jede Verwendung von LINQ oder Lambdas hier zu einem Fehler:

Evaluation of lambda expressions is not valid in the debugger.

Jetzt aber, wie Sie in Abbildung 3 sehen können, funktioniert es einfach! Wenn Sie z. B. an einem Haltepunkt sind, an dem eine Sammlung mit dem Namen "customers" besteht, können Sie schnell lesend auf die Sammlung zugreifen, indem Sie dies in das Überwachungsfenster eingeben:

From c In customers Where c.OrderStatus = "Unfulfilled" Select c.LastName

Lambdas und LINQ-Ausdrücke im Überwachungsfenster
Abbildung 3 Lambdas und LINQ-Ausdrücke im Überwachungsfenster

Wussten Sie, dass Sie das Direktfenster sogar verwenden können, ohne das Programm zu starten? Wenn Sie z. B. gerade ein Modul mit einer Funktion GetName erstellt haben, können Sie das Direktfenster ("Debuggen" | "Fenster" | "Direkt") öffnen und "? GetName()" eingeben, und das wird ausgewertet.

Visual Studio 2015 weist außerdem bessere Unterstützung für "Bearbeiten" und "Fortfahren" auf, wie etwa in Async- und Iteratormethoden sowie in gängigeren Situationen, wie innerhalb von und in der Umgebung von LINQ-Abfragen und Lambdas – Sie können sogar einer vorhandenen Methode einen neuen Abfrage- oder Lambda-Ausdruck hinzufügen. Das hat es zwar nicht in die Visual Studio 2015-Vorschau geschafft, aber in der veröffentlichten Version wird all das funktionieren.

9. Bessere Fehlerliste "Vorher und nachher geben wirklich ein tolles Bild ab" – Visual Basic-Teammitglied Anthony D. Green

Die Fehlerliste in Visual Basic 14 weist eine Vielzahl von praktischen Verbesserungen auf, von denen einige die Antwort auf seit langem geäußerte Benutzerwünsche sind (siehe Abbildung 4). Bisher wurden in der Fehlerliste vollqualifizierte Typnamen angezeigt; jetzt werden nur minimal qualifizierte Typnamen angezeigt, sodass sich die Fehlermeldungen leichter lesen lassen. Und der Fehlercode wird ebenfalls angezeigt, was zum Sortieren nach Fehlercodes nützlich ist. Noch besser, der Fehlercode stellt einen Link zu einer Internetsuche dar, was häufig besser weiterhilft als ein Link zu einer MSDN-Dokumentationsseite. Darüber hinaus können Sie jede Spalte in der Fehlerliste filtern, wie Sie es aus Excel gewohnt sind.

Die Fehlerliste in Visual Studio 2015 (unten) ist besser lesbar und vielseitiger als in Visual Studio 2013 (oben)
Abbildung 4 Die Fehlerliste in Visual Studio 2015 (unten) ist besser lesbar und vielseitiger als in Visual Studio 2013 (oben)

Bei großen Änderungen geschieht es manchmal leicht, dass Ihre Projektmappe in einen Zustand gelangt, in dem eine Menge von nachgelagertem Code fehlerhaft ist. Bisher konnte VB nur die ersten 101 Fehler anzeigen. Das machte es schwierig, den Umfang des Fehlers einzuschätzen oder sich einen Überblick von der Art der erforderlichen Änderungen zu machen. Visual Basic 14 zeigt jetzt alle Fehler ohne Limit an. (Das kann unter "Tools" | "Options" | "Text-Editor" | "Basic" | "Erweitert" | "Diagnose für geschlossene Dateien anzeigen" konfiguriert werden.)

Sprachverbesserungen

10. Operatoren mit Nullweitergabe "Das Erfordernis der Nullprüfung stellt sowohl beim produktiven Einsatz als auch beim Bugfixen eine bleibende Herausforderung dar" – .NET MVP Deborah Kurata

Angenommen, Sie haben eine Klasse "Customer" mit einem Feld "Address", das legitimer Weise den Wert Null aufweisen kann, vielleicht, weil Ihre App keine Eingabe vorschreibt. Bisher musste jeder Code, der irgendwie mit der Adresse umgehen musste – etwa, sie dem Benutzer anzuzeigen – mithilfe von Nullprüfung abgesichert werden, um diesen Fall zu berücksichtigen. Diese Nullprüfungen sind ziemlich ermüdend. Mit Visual Basic 14 können Sie die Möglichkeit einer solchen Null elegant mithilfe des neuen Operators "?." behandeln:

Console.WriteLine("{0} ({1})",
  customer.Name,
  customer.Address?.Country)

Der Operator "?." ist einfach eine abgekürzte Schreibweise für das häufige, aber mühsame Muster der Zuweisung zu einer temporären Variablen, die dann auf Null überprüft wird:

Dim _temp = customer.Address
Console.WriteLine("{0} ({1})",
  customer.Name,
  If(_temp Is Nothing, Nothing, _temp.Country))

Sie können "?." in einer Sequenz verwenden, auch gemischt mit dem normalen Punktoperator, z. B. so: "a?.b.c?.d". Sie wird von Links nach Rechts gelesen. Jeder von "?." verwendete Nullwert kürzt einfach die Sequenz ab und gibt die Antwort "Nichts" zurück, und jeder von "." verwendete Nullwert gibt wie gewöhnlich eine NullReferenceException aus.

Der Operator "?." ist eine nullbedingte Version des Operators ".". Es bestehen darüber hinaus auch nullbedingte Versionen der meisten anderen Operatoren: Indizierung, array?(i); Delegataufruf, delegate?(args); Wörterbuchsuche, dict?!key; sowie XML-Achseneigenschaften, xml?.@attr, xml?.<Schlüssel>, xml?...<Schlüssel>.

"?." lässt sich auch noch auf andere, praktische Weise verwenden:

If customer?.Age > 50 Then ...
' If branch taken only if customer is non-null AND is older than 50
Dim name = If(customer?.Name, "blank")
' Pick a default name if customer is null
Dim first = customers?.FirstOrDefault()
' Only invoke this method if customers is non-null

11. Mehrzeilige Zeichenfolgenliterale "Ist es eine traurige Sache, dass ich mich so für mehrzeilige Zeichenfolgenliterale begeistern kann?" – Forumbenutzer Scaramouche

So mussten Sie mehrzeilige Zeichenfolgen bisher schreiben, mit jeder Menge "vbCrLf" gewürzt:

Dim json = "{" & vbCrLf &
"  'Name': 'Bad Boys'," & vbCrLf &
"  'ReleaseDate': '1995-4-7T00:00:00'," & vbCrLf &
"  'Genres': ['Action','Comedy']" & vbCrLf &
"}"

Verständlicherweise gab es weit verbreitet den Wunsch, Zeichenfolgenliterale zu ermöglichen, die mehrere Zeilen umfassen. In Visual Basic 14 können Sie jetzt schreiben:

Dim json = "{
  'Name': 'Bad Boys',
  'ReleaseDate': '1995-4-7T00:00:00',
  'Genres': ['Action','Comedy']
}"

Ein damit zusammenhängendes, bemerkenswertes Feature – auch vielfach nachgefragt – ist die neue Möglichkeit, Kommentare in mehrzeiligen Anweisungen zu verwenden. Bisher waren sie innerhalb von LINQ-Ausdrücken, wie dem folgenden, nicht zulässig:

Dim q = From x In y ' This is a from clause
        Where x < z ' And this is the where
        Select x    ' This select is redundant

12. Zeichenfolgeninterpolation "Zeichenfolgeninterpolation ergibt viel einfacheren Code und lässt den Zweck deutlich hervortreten" – Channel9-Benutzer Judah

Zeichenfolgeninterpolation ist ein vereinfachtes Verfahren zum Erstellen von Zeichenfolgen, die Ausdrücke enthalten, etwa in dieser Weise:

Dim s = $"hello {p.Name} you are {p.Height:0.00}m tall"

Das ist einfach die Kurzschreibweise für Folgendes:

Dim s = String.Format("hello {0} you are {1:0.00}m tall", p.Name, p.Height)

Zeichenfolgeninterpolation lässt sich häufig leichter schreiben als ein expliziter Aufruf von String.Format, da das Jonglieren mit den Positionsplatzhaltern {0} und {1} entfällt. Und natürlich gibt es umfassende farbige Syntaxhervorhebung und IntelliSense zum Auffüllen der "Löcher" mit Ausdrücken. Zeichenfolgeninterpolation funktioniert besonders gut mit Programmzeichenfolgen, wie in diesen Beispielen:

Dim fn = $"C:\Documents\{folder}\{file}.{ext}"
Dim url = $"http://{site}/{path}/{file}?search={query}"

Wie bei String.Format üblich, werden die Zeichenfolgen unter Verwendung der aktuellen Kultur formatiert. Wenn Sie eine Programmzeichenfolge erstellen, die eine Gleitkommazahl enthält – etwa beim Übergeben einer Längen- und Breitenangabe an einen Webdienst – werden Sie aber stattdessen wahrscheinlich "InvariantCulture" vorziehen. Das wird in Visual Studio 2015 unterstützt, aber zum Zeitpunkt der Veröffentlichung dieses Artikels war der Entwurf noch nicht festgelegt.

Beachten Sie, dass die Zeichenfolgeninterpolation in Visual Studio 2015 Vorschau noch nicht enthalten ist, sie wird aber vor der endgültigen Version in Visual Studio 2015 aufgenommen.

13. NameOf "Das wird eine große Hilfe für ganz viele Szenarien, die mir in den Sinn kommen" – Roslyn-Forumsmitglied ewwloyd

Der Operator "NameOf" stellt ein besseres Verfahren zum Einbetten von Zeichenfolgenliteralen in Ihren Code dar, wenn das betreffende Zeichenfolgenliteral auf einen Namen in Ihrem Quellcode verweist. Hier sehen Sie ein Beispiel:

Sub f(s As String)
  If s Is Nothing Then Throw New ArgumentNullException(NameOf(s))
End Sub

Der NameOf-Operator wird nicht zur Laufzeit ausgewertet: Er stellt eine Konstante zur Kompilierzeit dar, in diesem Fall die konstante Zeichenfolge "s". Der Grund für die Verwendung von "NameOf" ist, dass sie Ihnen die Folgen von Tippfehlern erspart. Wenn Sie beispielsweise den Methodenparameter umbenennen, wird das NameOf-Argument automatisch umbenannt. Mit einem einfachen Zeichenfolgenliteral geschieht das nicht. Hier ist eine andere Stelle, an der "NameOf" gut funktioniert:

Private _age As Integer
Property Age As Integer
  Get
    Return _age
  End Get
  Set
    _age = Value
    RaiseEvent PropertyChanged(
      Me, New PropertyChangedEventArgs(NameOf(Age)))
  End Set
End Property

Beachten Sie, dass "NameOf" in Visual Studio 2015 Vorschau noch nicht enthalten ist, aber vor der endgültigen Version in Visual Studio 2015 aufgenommen wird.

14. Open Source "Wir versuchen, die Community zu involvieren. Es gibt eine Menge kluger Köpfe da draußen. Wir betrachten die Pull-Anforderungen aus der Community genau so wie unsere eigenen Ideen" – C#/Visual Basic-Architekt Anders Hejlsberg

Die größte Verbesserung liegt nicht in Visual Basic selbst, sondern im Prozess der Arbeit an VB.

Der Quellcode des VB-Compilers ist jetzt quelloffen. Und ebenso ist es der Entwurfsprozess der Sprache selbst. Jeder Vorschlag für ein neues Feature wird unter den Augen der Öffentlichkeit gemacht und unterliegt ihrem Urteil. Die Mitglieder des Microsoft Visual Basic-Sprachentwicklungsteams sind jetzt im wesentlichen Sachwalter der Sprache. Das Team sieht sich Vorschläge an, lotet sie in der Tiefe aus, sucht nach möglichen Fallen oder Ausnahmefällen und entscheidet, ob sie die Messlatte für die Aufnahme in die Sprache überwinden. Die Mitschriften der Sprachentwicklungsbesprechung (Language Design Meeting) werden offen zugänglich veröffentlicht. Es ist wirklich eine spannende Zeit für das Visual Basic Language Design Team und auch eine spannende Zeit für VB-Benutzer.

Zusammenfassung

Es gibt eine Menge Verbesserungen in Visual Basic 14. Dieser Artikel hat etwa die Hälfte davon behandelt. Das allgemeine Motiv war, die Funktion des bestehenden VB für die einfache Verwendung zu verbessern, ohne komplizierte neue Konzepte einzuführen. Weitere Informationen finden Sie unter roslyn.codeplex.com und blogs.msdn.com/vbteam.

Dieser Artikel bezieht sich auf Vorabversionen von Visual Basic 14 und Visual Studio 2015. Alle Informationen können ohne vorherige Ankündigung geändert werden.


Lucian Wischik ist im Visual Basic/C# Language Design Team bei Microsoft und insbesondere für VB zuständig. Bevor er zu Microsoft kam, hat er im universitären Bereich zur Theorie der Parallelität und Asynchronität gearbeitet. Er ist ein begeisterter Segler und Langstreckenschwimmer. Sie können unter lwischik@microsoft.com mit ihm Kontakt aufnehmen.

Unser Dank gilt den folgenden technischen Experten von Microsoft für die Durchsicht dieses Artikels: Dustin Campbell und Anthony D. Green
Dustin Campbell ist ein leitender Programmmanager im Visual Studio-Team, in dem er an den Benutzeroberflächen der Visual Basic- und C#-IDE arbeitet. In den letzten fünf Jahren hat er sich im Rahmen des Roslyn-Projekts auf die Neuentwicklung des VB- und des C#-Compilers sowie der IDEs konzentriert.

Anthony D. Green ist Programmmanager im VB/C#/F#-Team bei Microsoft, der die VB- und C#-Compiler neu erstellt hat (in VB und C#). Anthony hat in BASIC-Programmiersprachen programmiert, seitdem er 14 ist, meistens in QBasic und VB, und ist seit 2004 ein begeistertes Mitglied der VB.NET-Community.