Fragen und Antworten zum zweiten Webcast "Get the BASICs, VB.NET für Einsteiger und Umsteiger"











































































Da ich nach dem letzten Webcast direkt an den Flughafen musste und leider keine Zeit hatte Fragen zu beantworten, anbei die gestellten Fragen und Antworten:
 
Q: Kann ich auch “System.Console” importieren?
A: In VB.NET ja, in C# nicht.
 
Q: Ist der Stack ein für das Programm reservierter Speicherbereich?
A: Ja.
 
Q: Wer legt die Stack-Größe fest? VB oder ich als Programmierer selbst?
A: Die CLR legt die Größe des Stacks fest. Meines Wissens nach können Sie die Größe des Stacks nur mit Hilfe des Programms EDITBIN.exe ändern.
 
Q: Wenn ich eine Variable deklariere ist der Wert der Variable ohne Initialisierung 0 oder Nothing (Nothing ist das Äquivalent von NULL in C#)?
A:

Die Antwort auf diese Frage hängt davon ab, ob es sich bei der deklarierten Variablen um einen Wertetyp oder um einen Referenztyp handelt.
Wertetypen werden bei der Deklaration mit einem Defaultwert initialisiert (bsp. 0 bei numerischen Typen, False für Boolean, etc.) und können daraufhin direkt verwendet werden. Referenztypen hingegen müssen, im Unterschied zu Wertetypen, bevor sie das erste Mal verwendet werden, mit einem Wert initialisiert werden.


Public Class Kunde


 


    Public Vorname As String


    Public Nachname As String


 


End Class


 


Public Shared Sub main()


 


    ‘ Referenztype deklarieren


    Dim myKunde As Kunde


 


    ‘ Wertetyp deklarieren


    Dim Ergebnis As Integer


 


    System.Console.WriteLine(Ergebnis)


 


    ‘ in der nächsten Zeile passiert der Fehler da


    ‘ myKunde vor dem Zugriff initialisiert werden muss


    System.Console.WriteLine(myKunde.Vorname)


 


End Sub

 
Q: Wie funktioniert das “casten”?
A: Unter „casten“ wird das Umwandeln von einem Typ in einen anderen verstanden. Beispielsweise muss eine Zeichenkettenfolge in einen numerischen Typ umgewandelt werden wenn zu diesem Wert ein weiterer Wert addiert werden soll.


Public Shared Sub main()


 


    Dim Summand1 As Integer


    Dim Summand2 As Integer


    Dim Summe As Integer


 


    ‘ Den ersten Summanden einlesen


    Console.Write(“Bitte geben Sie den ersten Summanden ein: “)


    Summand1 = Convert.ToInt32(Console.ReadLine())


 


    ‘ Den zweiten Summanden einlesen


    Console.Write(“Bitte geben Sie den zweiten Summanden ein: “)


    Summand2 = Convert.ToInt32(Console.ReadLine())


 


    ‘ Die Summe aus dem ersten und dem zweiten Summanden bilden


    Summe = Summand1 + Summand2


 


    ‘ Das Ergebnis ausgeben


    Console.WriteLine(“{0} + {1} = {2}”, Summand1, Summand2, Summe)


 

End Sub
 
Q: Welche Vorschriften bestehen bei der Vergabe von Variablennamen?
A: Auf http://msdn2.microsoft.com/en-us/library/ms229002.aspx findet sich eine gute Abhandlung zu diesem Thema.
 
Q: Kann ich einer Variablen den Wert einer anderen Variablen zuweisen? Beispielsweise dim i as integer = j. Funktioniert das so?
A: Auch hier muss unterschieden werden ob es sich um einen Wertetyp oder um einen Referenztyp handelt.
Wertetypen „leben“ auf dem Stack, der Wert einer Wertetyp-Variablen wird also direkt auf dem Stack gespeichert.
Referenztypen hingegen werden sowohl auf dem Stack als auch im Heap gespeichert und zwar insofern, als dass auf dem Stack die Speicheradresse des Inhaltes der Variable im Heap gespeichert wird. Die Adresse auf dem Stack „zeigt“ demnach auf den Speicherbereich in dem der Wert der Variable gespeichert wird.


Option Explicit On


Option Strict On


 


Imports System


 


Public Class Test


 


    Public Shared Sub main()


 


        ‘ Zwei WerteTyp-Variablen deklarieren


        Dim Ergebnis1 As Integer


        Dim Ergebnis2 As Integer


 


        Ergebnis1 = 5


 


        ‘ Der Wert von Ergebnis1 wird in die Variable Ergebnis2 kopiert.


        ‘ Beide Variablen enthalten daraufhin den Wert 5.


        Ergebnis2 = Ergebnis1


 


 


 


 


        ‘ Zwei Referenztypen-Variablen deklarieren


        Dim Kunde1 As New Kunde


        Dim Kunde2 As Kunde


 


        ‘ Die Speicheradresse, die in Kunde1 gespeichert ist,


        ‘ in der Variablen Kunde2 speichern.


        ‘ Beide Variablen “zeigen” daraufhin auf den gleichen


        ‘ Speicherbereich. => Auch Kunde2.Vorname = “Daniel”


        Kunde1.Vorname = “Daniel”


        Kunde2 = Kunde1


 


    End Sub


 


    Public Class Kunde


 


        Public Vorname As String


        Public Nachname As String


 


    End Class


 

End Class
 
Q: Wie lang kann der Name einer Variablen sein?
A: Maximal 1023 Zeichen.
 

Viel Erfolg beim Programmieren!

Comments (0)