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 alt
Ein 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 True
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.3
So führst du den Code aus: Datei Program.vb in einem Projekt (dotnet new console -lang VB) speichern und mit dotnet run ausführen (.NET SDK von dotnet.microsoft.com).
Merke
- 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
Aufgabe
Berechne die Fläche eines Kreises mit Radius 2,5 und gib sie mit zwei Nachkommastellen aus.