vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Zippen wie die Profis!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Ein- und Umsteiger
Re: Referenz auf Structure zurückgeben 
Autor: keco
Datum: 17.01.10 18:00

Das liegt daran, dass die Person einen falschen Index hat. In der Zeile, wo du die Indizies überprüfst in GetPupilByID ist der Index der Person 0, gesucht wird aber 1.

Ich frage mich sowieso, wieso du das so umständlich machst. Du verwaltest alle Seminare in einer Liste in School. Und alle Schüler in einer Liste in Seminar. Die Liste hat bereits eine Eigenschaft zum abrufen der entsprechenden Person an einem Index.

So in etwa:
   Public Class Pupil
      Private myName As String
      Private myId As Integer
 
      Public Sub New(ByVal Name As String, ByVal ID As Integer)
         myName = Name
         myId = ID
      End Sub
 
      Property ID() As Integer
         Get
            Return myId
         End Get
         Set(ByVal value As Integer)
            myId = value
         End Set
      End Property
 
      Property Name() As String
         Get
            Return myName
         End Get
         Set(ByVal value As String)
            myName = value
         End Set
      End Property
 
      Public Sub ChangeName(ByVal newname As String)
         myName = newname
      End Sub
   End Class
 
   Public Class Seminar
      Private myPupils As List(Of Pupil)
      Private myID As Integer
      Private myName As String
 
      Public Sub New(ByVal Name As String, ByVal ID As Integer)
         myPupils = New List(Of Pupil)
         myName = Name
         myID = ID
      End Sub
 
      Public Sub AddPupil(ByVal Name As String)
         myPupils.Add(New Pupil(Name, myPupils.Count))
      End Sub
 
      Public Sub ChangeName(ByVal NewName As String)
         myName = NewName
      End Sub
 
      Public Function GetPupilByID(ByVal SearchID As Integer) As Pupil
         Return myPupils(SearchID)
      End Function
 
      Public Property ID() As Integer
         Get
            Return myID
         End Get
         Set(ByVal value As Integer)
            myID = value
         End Set
      End Property
 
      Public Property Name() As String
         Get
            Return myName
         End Get
         Set(ByVal value As String)
            myName = value
         End Set
      End Property
 
      Public ReadOnly Property Pupils() As List(Of Pupil)
         Get
            Return myPupils
         End Get
      End Property
   End Class
 
   Public Class SchoolHandler
      Private mySeminars As List(Of Seminar)
 
      Public Sub New(ByVal StartID As Integer)
         mySeminars = New List(Of Seminar)
      End Sub
 
      Public Sub Add(ByVal Name As String)
         mySeminars.Add(New Seminar(Name, mySeminars.Count))
      End Sub
 
      Public Function GetSeminarByID(ByVal SearchID As Integer) As Seminar
         Return mySeminars(SearchID)
      End Function
 
      Public Sub ShowAllPupils()
         For Each CurrSem As Seminar In mySeminars
            Debug.Print(CurrSem.Name)
 
            For Each CurrPup As Pupil In CurrSem.Pupils
               Debug.Print(CurrPup.Name)
            Next
 
            Debug.Print(vbNewLine)
         Next
      End Sub
   End Class
 
   Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As  _
     System.EventArgs) Handles MyBase.Load
 
      Dim school As New SchoolHandler(1)
 
      school.Add("Mathe")
      school.Add("Deutsch")
 
      school.GetSeminarByID(0).AddPupil("Hans")
      school.GetSeminarByID(1).AddPupil("Bernd")
 
      school.ShowAllPupils()
 
      school.GetSeminarByID(0).GetPupilByID(0).Name = "Georg" ' EDIT
      school.GetSeminarByID(0).Name = "Sport" ' EDIT
 
      school.ShowAllPupils()
   End Sub
EDIT: Wertezuweisung geändert. In diesem Fall kannst du auch die ChangeName-Methoden löschen. Sind überflüssig.

Beitrag wurde zuletzt am 17.01.10 um 18:03:06 editiert.
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Referenz auf Structure zurückgeben2.788Friedel8417.01.10 17:33
Re: Referenz auf Structure zurückgeben1.140keco17.01.10 17:40
Re: Referenz auf Structure zurückgeben1.262Friedel8417.01.10 17:48
Re: Referenz auf Structure zurückgeben1.161keco17.01.10 18:00
Re: Referenz auf Structure zurückgeben1.097Friedel8417.01.10 18:06
Re: Referenz auf Structure zurückgeben1.085keco17.01.10 18:16
Re: Referenz auf Structure zurückgeben1.222Friedel8417.01.10 18:23
Re: Referenz auf Structure zurückgeben1.127keco17.01.10 18:28
Re: Referenz auf Structure zurückgeben1.168Friedel8417.01.10 18:31
Re: Referenz auf Structure zurückgeben1.112keco17.01.10 18:33
Re: Referenz auf Structure zurückgeben1.152Friedel8417.01.10 18:36

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel