Kurz: Visual Basic .NET (VB.NET, 2002) ist der Nachfolger von Visual Basic und läuft auf der .NET-Plattform. Die Sprache ist an das englische Alltagsvokabular angelehnt (If … Then, End If, For Each) und deshalb sehr leicht lesbar.
Teil des Kurses Visual Basic .NET
Kapitel 1 von 8 im Kurs Visual Basic .NET. Mit Fortschritt, Quiz und Zertifikat auf der Lernseite.
Was ist Visual Basic .NET?
Visual Basic .NET (VB.NET, 2002) ist der Nachfolger von Visual Basic und läuft auf der .NET-Plattform. Die Sprache ist an das englische Alltagsvokabular angelehnt (If ... Then, End If, For Each) und deshalb sehr leicht lesbar. VB.NET nutzt dieselben Bibliotheken wie C# und F#.
Eingesetzt wird VB.NET vor allem in Windows-Desktopanwendungen (WinForms), in der Büroautomatisierung und in großen, gewachsenen Unternehmenslösungen. Microsoft entwickelt die Sprache nicht mehr aktiv weiter („stabil und unterstützt“), sie bleibt aber vollständig nutzbar – und ist ein guter Einstieg in .NET.
Ausführen
dotnet new console -lang VB -o hallo # Projekt anlegen
cd hallo && dotnet run # bauen und starten
dotnet build # nur bauen
dotnet add package Newtonsoft.Json # NuGet-PaketDas erste Programm
Module Program
Sub Main()
Console.WriteLine("Hallo, Welt!")
Console.WriteLine("1 + 2 = " & (1 + 2))
Console.Write("ohne Zeilenumbruch")
Console.WriteLine()
Dim name As String = "Mia"
Console.WriteLine("Hallo, " & name & "!")
Console.WriteLine($"Interpoliert: {name} hat {name.Length} Buchstaben")
Console.WriteLine("{0} ist {1} Jahre alt", name, 17)
End Sub
End ModuleAusgabe:
Hallo, Welt!
1 + 2 = 3
ohne Zeilenumbruch
Hallo, Mia!
Interpoliert: Mia hat 3 Buchstaben
Mia ist 17 Jahre altEin Programm besteht aus einem Module mit einer Sub Main(). Blöcke enden mit End .... Strings verkettet man mit &. VB.NET unterscheidet Groß- und Kleinschreibung nicht.
Variablen und Datentypen
Module Program
Sub Main()
Dim alter As Integer = 17
Dim preis As Double = 9.99
Dim name As String = "Mia"
Dim ok As Boolean = True
Dim z As Char = "z"c
Dim gross As Long = 9000000000L
Dim dezimal As Decimal = 1.5D
Dim datum As Date = #3/15/2024#
Const MAXIMUM As Integer = 100
Console.WriteLine($"{alter} {preis} {name} {ok} {z}")
Console.WriteLine($"{gross} {dezimal} {datum:yyyy-MM-dd} {MAXIMUM}")
Console.WriteLine(alter.GetType().Name & " " & preis.GetType().Name & " " & name.GetType().Name)
Dim x = 5 ' Typinferenz
Dim y = 2.5
Console.WriteLine(x.GetType().Name & " " & y.GetType().Name)
Console.WriteLine(Integer.MaxValue)
Console.WriteLine(Double.MaxValue > 1.0E+300)
Dim nichts As String = Nothing
Console.WriteLine(nichts Is Nothing)
Console.WriteLine(String.IsNullOrEmpty(nichts))
End Sub
End ModuleAusgabe:
17 9.99 Mia True z
9000000000 1.5 2024-03-15 100
Int32 Double String
Int32 Double
2147483647
True
True
TrueHinweis
Mit
Option Strict On(im Projekt aktivierbar) verbietet der Compiler gefährliche implizite Umwandlungen. Wir nutzen diesen Modus, weil er Fehler früh meldet.
Rechnen
Module Program
Sub Main()
Console.WriteLine(7 + 2)
Console.WriteLine(7 - 2)
Console.WriteLine(7 * 2)
Console.WriteLine(7 / 2) ' / liefert immer Double
Console.WriteLine(7 \ 2) ' \ ist die Ganzzahldivision
Console.WriteLine(7 Mod 3)
Console.WriteLine(2 ^ 10) ' ^ ist die Potenz (Double)
Console.WriteLine(Math.Sqrt(16))
Console.WriteLine(Math.Abs(-5))
Console.WriteLine(Math.Max(3, 9))
Console.WriteLine(Math.Round(2.5))
Console.WriteLine(Math.Round(3.5))
Console.WriteLine(Math.Floor(-2.1))
Console.WriteLine(Math.Ceiling(2.1))
Console.WriteLine(CInt(3.7))
Console.WriteLine(CDbl("3.5") * 2)
Console.WriteLine(CStr(42) & "!")
Console.WriteLine(Int(3.99))
Console.WriteLine(Math.PI.ToString("F4"))
Dim a As Integer = 5
a += 3
a *= 2
Console.WriteLine(a)
Console.WriteLine(12 And 10)
Console.WriteLine(12 Or 10)
Console.WriteLine(12 Xor 10)
Console.WriteLine(1 << 4)
Console.WriteLine(256 >> 4)
Console.WriteLine(0.1 + 0.2)
Console.WriteLine(0.1D + 0.2D)
End Sub
End ModuleAusgabe:
9
5
14
3.5
3
1
1024
4
5
9
2
4
-3
3
4
7
42!
3
3.1416
16
8
14
6
16
16
0.30000000000000004
0.3Merke
- Ein Programm ist ein
ModulemitSub Main(); Blöcke enden mitEnd ... Dim name As Typ = Wertdeklariert Variablen,ConstKonstanten/ergibtDouble,\ist die Ganzzahldivision,Modder Rest,^die Potenz&verkettet Strings,$"..."interpoliert
Übungsaufgabe
Berechne die Fläche eines Kreises mit Radius 2,5 und gib sie mit zwei Nachkommastellen aus.
Quiz zur Selbstkontrolle
Wie verkettet man Strings in VB.NET?
- Mit & (richtig)
- Mit +
- Mit .
- Mit ,
Was ist 7 \ 2?
- 3 (Ganzzahldivision) (richtig)
- 3.5
- 4
- 2
Wodurch endet ein If-Block?
- End If (richtig)
- }
- Next
- Stop
Weiter im Kurs
Weiter: Kontrollfluss, Prozeduren und Funktionen
Alle Kapitel: Visual Basic .NET im Überblick