none
Deklaration einer Variablen RRS feed

  • Frage

  • Hallo zusammen,

    ich habe Probleme bei der Wertzuweisung einer Variablen:

    Private P_P_Zaehler As Integer

    Public Property PP_Zaehler As Integer Get Return P_P_Zaehler End Get Set(ByVal Value As Integer) P_P_Zaehler = Value End Set End Property

    Das klappt soweit. PP_Zaehler erhält beim Aufruf des Fensters den richtigen Wert.

    Aber die Zuweisung klappt nicht:

    Dim _Zaehler As Integer = PP_Zaehler
    Dim _Bez(PP_Zaehler + 1) As String
    Dim _Num(PP_Zaehler - 1, PP_Zaehler + 1) As Double

    Woran liegt das?

    Dirk

    Donnerstag, 3. September 2015 14:20

Antworten

  • Hallo Dirk,

    das würde theoretisch schon gehen. Zu dem Zeitpunkt hat PP_Zaehler aber noch keinen Wert, daher dann auch 0. Deklarier die Arrays daher dynamisch auf Klassenebene und setz die Größen dann, wenn PP_Zaehler seinen Wert erhalten hat.

    Frage am Rande: Was willst Du eigentlich mit so einem Konstrukt? In den allermeisten Fällen ist man mit einer List( Of T ) oder ähnlichem besser dran.


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET
    http://www.asp-solutions.de/ - Consulting, Development
    http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community

    • Als Antwort markiert Dirk2006 Donnerstag, 3. September 2015 17:23
    Donnerstag, 3. September 2015 16:36
    Moderator

Alle Antworten

  • Hallo Dirk,

    was hast du vor? Eine normale Zuweisung wird wie folgt vorgenommen

    Private _zähler As Integer
        Public Property Zähler() As Integer
            Get
                Return _zähler
            End Get
            Set(ByVal value As Integer)
                _zähler = value
            End Set
        End Property
    
        Sub Main()
    
            Dim _Zähler As Integer = Zähler
            Dim _Bez As String = Zähler.ToString()
            Dim _Num As Integer = Zähler + 1
    
            Console.WriteLine(_Zähler)
            Console.WriteLine(_Bez)
            Console.WriteLine(_Num)
            Console.ReadLine()
        End Sub

    Donnerstag, 3. September 2015 14:46
  • Hallo Dirk,

    nutz doch die Möglichkeit der Kurzschreibweise für Standardeigenschaften.

    Public Property PP_Zaehler As Integer

    Mehr musst Du dann für die Eigenschaft nicht schreiben.

    Warum deine Arraydeklaration nicht funktioniert, kann man so nicht sagen. Erhältst Du einen Fehler? Falls ja, poste bitte die genaue und vollständige Fehlermeldung.


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET
    http://www.asp-solutions.de/ - Consulting, Development
    http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community

    Donnerstag, 3. September 2015 14:48
    Moderator
  • Hallo, 

    ich habe die Zuweisungen oben in der Klasse vorgenommen, also nicht in einer Sub oder Funktion.

    Geht das etwa nicht?

    Eine Fehlermeldung bekomme ich nicht.....

    Es wird einfach der Wert "0" zugewiesen....

    Dirk

    Donnerstag, 3. September 2015 16:26
  • Hallo Dirk,

    das würde theoretisch schon gehen. Zu dem Zeitpunkt hat PP_Zaehler aber noch keinen Wert, daher dann auch 0. Deklarier die Arrays daher dynamisch auf Klassenebene und setz die Größen dann, wenn PP_Zaehler seinen Wert erhalten hat.

    Frage am Rande: Was willst Du eigentlich mit so einem Konstrukt? In den allermeisten Fällen ist man mit einer List( Of T ) oder ähnlichem besser dran.


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET
    http://www.asp-solutions.de/ - Consulting, Development
    http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community

    • Als Antwort markiert Dirk2006 Donnerstag, 3. September 2015 17:23
    Donnerstag, 3. September 2015 16:36
    Moderator
  • Hallo Stefan,

    erstmal Danke.

    Ich habe früher einiges am PC gemacht. Da gab es eine List( Of T) noch nicht.

    Steige jetzt langsam wieder ein :-).

    Dirk

    Donnerstag, 3. September 2015 17:23