Citation Hunt

Das unten stehende Wikipedia-Snippet wird von keiner verlässlichen Quelle unterstützt. Kannst du eine finden?

Klicke auf Verstanden!, um zu Wikipedia zu gehen und das Snippet zu reparieren, oder Nächstes!, um ein anderes zu sehen. Viel Glück!

In Seite Visual Basic .NET:

"

Als .NET-Sprache unterliegt Visual Basic .NET den Vor- und Nachteilen dieser Plattform. Visual Basic Classic machte viele kleinere Dinge anders als andere Sprachen. Aus Gründen der Abwärtskompatibilität sind viele dieser Punkte als „Altlasten“ in Visual Basic .NET enthalten. Einige Beispiele:

  • Üblicherweise entspricht der in eine Zahl konvertierte logische Wert Falsch bzw. False dem Wert 0, Wahr oder True wird als 1 interpretiert. Visual Basic Classic verwendet für True jedoch den Wert −1 (alle Bits auf 1). Diese Konvention erlaubte es, nicht zwischen einem logischen und einem binären Not-Operator unterscheiden zu müssen. Daher ergibt auch in Visual Basic .NET die Konvertierungen CInt(True) oder CType(True, Int32) noch immer den Wert −1, auch wenn VB.NET inzwischen intern auch mit 0 und 1 arbeitet. Der Aufruf der .NET Framework-Methode Convert.ToInt32(True) evaluiert hingegen auf 1. Die .NET Runtime schaut übrigens 0 als False an, alles andere als True.
  • In den meisten Programmiersprachen ist die Größe in einer Arraydeklaration die Anzahl Einträge, also z. B. int a[5]; deklariert ein Array mit 5 Elementen (in .NET standardmäßig Index 0 bis 4). In VB.NET deklariert Dim a(5) As Integer ein Array mit höchstem Index 5, somit also ein Array mit 6 Elementen (Index 0 bis 5), um abwärtskompatibel zur VB Classic Syntax Dim a([lowerBound To] upperBound) zu bleiben.
  • Sprachunterstützung für XML, z. B. für Literals oder für das Abfragen und Erstellen von neuen Elementen
  • VB.NET ist tolerant bei der Initialisierung von Feldern, sie dürfen Referenzen auf die eigenen Instanz oder andere Felder benutzen
  • VB.NET unterstützt Inner-Interfaces und Inner-Klassen in Interfaces. Dieses Verfahren erlaubt es, weitere Versionen eines Interfaces zu erstellen. Der Konsument des Interfaces erhält durch IntelliSense beim Implementieren der ursprünglichen Version den visuellen Hinweis, dass hier noch weitere Versionen vorhanden sind und kann die entsprechende auswählen.
  • VB.NET braucht keine Unterscheidung zwischen out- und byRef-Parametern
  • VB.NET erlaubt das Überschreiben der Iterationsvariable
  • VB.NET erlaubt das Verwenden von byRef in ExtensionMethods, was es erlaubt, die Originalinstanz zu initialisieren oder zu ersetzen.
  • VB.NET hat mehr Linq-Schlüsselwörter als andere Sprachen, so kann z. B. das Schlüsselwort Distinct verwendet werden anstelle des Aufrufs der gleichnamigen Extensionmethod, und falls der Output vom gleichen Typ ist wie der Input, so kann das Select weggelassen werden. Dies macht Linq-Ausdrücke in der Regel kürzer und somit besser lesbar.