Example #1
0
        /*/// <summary>
         * /// Fügt der Klasse einen neuen Schüler hinzu
         * /// </summary>
         * /// <param name="s">Schüler als fertiges Objekt</param>
         * public void AddSchueler(Schueler s)
         * {
         *  if(s != null)
         *  {
         *      if (Schueler.Count < 5)
         *      {
         *          Schueler.Add(s);
         *
         *          //"Prüft" ob es dem Schüler gibt und löscht ihn dann, mit ? wird das klassiche != null überprüft
         *          s.Klasse?.Schueler.Remove(s);
         *
         *          //vgl. mit Diagramm --> NICHT VERGESSEN!!! --> Referenzen (Rückreferenz null, Schüler ohne Klasse)!!!
         *          s.Klasse = this;
         *      }
         *
         *  }
         *
         *  /*
         *      oder:
         *      if(s == null) { return; } //geht auch am Anfang vom Code, beispielsweise 3-4 Fehler prüfen und dann den logischen Code
         */
        //}


        //Auf boolean setzen für UnitTests
        public bool AddSchueler(Schueler s)
        {
            if (s == null)
            {
                return(false);
            }

            if (s.Klasse == null && Schule.FindSchuelerById(s.Id) != null)
            {
                return(false);
            }

            if (Schueler.Count < 5)
            {
                Schueler.Add(s);
                s.Klasse?.Schueler.Remove(s);
                s.Klasse = this;
                return(true);
            }
            return(false);
        }
 public bool AddSchueler(Schueler s)
 {
     if (s == null)
     {
         return(false);
     }
     if (s.Klasse == null &&
         Schule.FindSchuelerById(s.Id) != null)
     {
         return(false);
     }
     if (Schueler.Count < 5)
     {
         Schueler.Add(s);
         /* NICHT VERGESSEN, sonst bleibt die Rückreferenz NULL!! */
         s.Klasse?.Schueler.Remove(s);
         s.Klasse = this;
         return(true);
     }
     return(false);
 }