myCSharp.de - DIE C# und .NET Community
Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 
 | Suche | FAQ

» Hauptmenü
myCSharp.de
» Startseite
» Forum
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Suche
» Regeln
» Wie poste ich richtig?
» Forum-FAQ

Mitglieder
» Liste / Suche
» Wer ist wo online?

Ressourcen
» openbook: Visual C#
» openbook: OO
» Microsoft Docs

Team
» Kontakt
» Übersicht
» Wir über uns

» myCSharp.de Diskussionsforum
Du befindest Dich hier: Community-Index » Diskussionsforum » Entwicklung » Grundlagen von C# » Wie beim Start des programms eine Liste erstellen, auf die ich immer zugreifen kann?
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | Thema zu Favoriten hinzufügen

Antwort erstellen
Zum Ende der Seite springen  

Wie beim Start des programms eine Liste erstellen, auf die ich immer zugreifen kann?

 
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
Alessandro211 Alessandro211 ist männlich
myCSharp.de-Mitglied

Dabei seit: 27.10.2020
Beiträge: 7


Alessandro211 ist offline

Wie beim Start des programms eine Liste erstellen, auf die ich immer zugreifen kann?

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Hallo zusammen,
Ich habe bei meinem Programm eine Liste von Objekten, da auf diese Liste immer zugegriffen wird, bräuchte ich Hilfe, wie das gehen soll. Zur Zeit habe ich gedacht, dass ich einfach eine neue Klasse MitarbeiterListe mache, über welche ich die Liste aufrufen kann, allerdings bekomme ich einen NullPointer, wenn ich darauf zugreife.
Hier ist mal der Code. Also ich bräuchte eine Liste, welche am Anfang des Programms erstellt wird und dauerhaft die gleichen Objekte beinhaltet. Das Speichern und Lesen beim schliessen und öffnen habe ich bereits gemacht. Allerdings kann ich dies nicht testen, da wie oben beschrieben ich NullPointer bekomme.

C#-Code:
using System;
using System.Collections.Generic;
using System.Text;

namespace TicketSystem
{
    public class MitarbeiterListe
    {


        public List<Mitarbeiter> Mliste { get; set; }

        public MitarbeiterListe()
        {

        }
        public void AddMl(Mitarbeiter m)
        {
            Mliste.Add(m);
        }

        public void DelMl(Mitarbeiter m)
        {
            Mliste.Remove(m);
        }



    }
}
06.11.2020 08:48 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
T-Virus T-Virus ist männlich
myCSharp.de-Mitglied

Dabei seit: 17.04.2008
Beiträge: 1.703
Entwicklungsumgebung: Visual Studio, Codeblocks, Edi
Herkunft: Nordhausen, Nörten-Hardenberg


T-Virus ist offline Füge T-Virus Deiner Kontaktliste hinzu

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Das Problem ist, dass du zwar die Eigenschaft Mliste in deiner Klasse anbietest, diese ist aber per Definition (Default Wert) null.
Entsprechend musst du diese initalisieren.

Entwede im Konstruktor oder diekt bei der Deklaration, was i.d.R. sauberer ist.

C#-Code:
public List<Mitarbeiter> Mliste { get; set; } = new List<Mitarbeiter>();

Schau dir dazu mal das Thema Referenz und Wetetypen an.
Dann wird das ggf. etwas klarer für dich.

T-Virus

Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von T-Virus am 06.11.2020 09:03.

06.11.2020 09:02 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
HansFred
myCSharp.de-Mitglied

Dabei seit: 19.10.2020
Beiträge: 48


HansFred ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

06.11.2020 09:08 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Alessandro211 Alessandro211 ist männlich
myCSharp.de-Mitglied

Dabei seit: 27.10.2020
Beiträge: 7

Themenstarter Thema begonnen von Alessandro211

Alessandro211 ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Ok, habe ich gemacht, allerdings wenn ich jetzt die Liste durchsuche, finde ich immernoch keine Elemente? Bei meiner Eingabe lasse ich dieses hinzufügen. Liegt es daran, dass ich mehrmals MitarbeiterListe mitarbeiterListe = new MitarbeiterListe(); habe oder kann man das so machen. Beim debuggen habe ich mir extra eine Markierung bei int k = ml.Mliste.Count() gesetzt und da steht die Länge 0. Allerdings ist doch bereits ein Objekt in die Liste hinzugefügt worden? Würde mich nochmal über Hilfe freuen, bei Bedarf kann ich gerne noch mehr Quellcode posten.

C#-Code:
                        Mitarbeiter m = new Mitarbeiter(u, vorname, nachname, d);
                        m.Passwort = pw;
                        MitarbeiterListe mitarbeiterListe = new MitarbeiterListe();
                        mitarbeiterListe.AddMl(m);

C#-Code:
        public Boolean Pw(int mitarbeiterNr, String passwortE)
        {

            MitarbeiterListe ml = new MitarbeiterListe();
            int k = ml.Mliste.Count();
            for(int i = 0; i < ml.Mliste.Count(); i++)
            {
                if(ml.Mliste[i].MitarbeiterNr == mitarbeiterNr)
                {
                    return ml.Mliste[i].Passwort == passwortE;
                }
            }
            return false;
        }
06.11.2020 10:02 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
T-Virus T-Virus ist männlich
myCSharp.de-Mitglied

Dabei seit: 17.04.2008
Beiträge: 1.703
Entwicklungsumgebung: Visual Studio, Codeblocks, Edi
Herkunft: Nordhausen, Nörten-Hardenberg


T-Virus ist offline Füge T-Virus Deiner Kontaktliste hinzu

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Du erzeugst bei jedem Methoden Aufruf ein neues Objekt, weshalb dann auch die Einträge nicht vorhanden sind.
Lies dich am besten in die Grundlagen ein, sonst führen wir diesen Thread bis in alle Ewigkeiten mit Grundlagen fort!

T-Virus
06.11.2020 10:08 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Alessandro211 Alessandro211 ist männlich
myCSharp.de-Mitglied

Dabei seit: 27.10.2020
Beiträge: 7

Themenstarter Thema begonnen von Alessandro211

Alessandro211 ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Ja und meine Frage ist einfach wodran das liegt und wie man das beheben kann. Hättest du wenigstens ein Stichwort oder einen Artikel, welchen ich lesen kann? Wäre sehr nett.
06.11.2020 10:12 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
HansFred
myCSharp.de-Mitglied

Dabei seit: 19.10.2020
Beiträge: 48


HansFred ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

das sind die grundlagen von objektorientierter programmierung
 https://docs.microsoft.com/en-us/dotnet/...ted-programming
06.11.2020 10:31 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
123thomas
myCSharp.de-Mitglied

Dabei seit: 21.12.2012
Beiträge: 124
Entwicklungsumgebung: Visual Studio 2017 Community


123thomas ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Hallo,

bei deiner Methode Pw erzeugst du in der ersten Zeile eine neue leere Liste. Diese Leere Liste kann nichts enthalten.

Du musst also die Liste mit dem Hinzugefügten Mitarbeiter übergeben oder diese in deiner Klasse als Variable initialisieren und dann mit Hinzufügen und Suchen auf diese EINE Liste zugreifen.

Gruß
06.11.2020 11:29 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
MrSparkle MrSparkle ist männlich
myCSharp.de-Team

avatar-2159.gif


Dabei seit: 16.05.2006
Beiträge: 5.605
Herkunft: Leipzig


MrSparkle ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Zitat von Alessandro211:
Hättest du wenigstens ein Stichwort oder einen Artikel, welchen ich lesen kann? Wäre sehr nett.

Du mußt wirklich erst einmal von vorne anfangen. Wenn du nicht den Unterschied zwischen Deklaration und Zuweisung von Variablen kennst, dann mußt du dich mit objektorientierter Programmierung beschäftigen. Das sind Konzepte, die in fast allen Sprachen gleich sind.

Hier gibt es ein paar Links für den Einstieg:  [FAQ] Wie finde ich den Einstieg in C#?
06.11.2020 18:25 Beiträge des Benutzers | zu Buddylist hinzufügen
Baumstruktur | Brettstruktur       | Top 
myCSharp.de | Forum Der Startbeitrag ist älter als 2 Monate.
Der letzte Beitrag ist älter als 2 Monate.
Antwort erstellen


© Copyright 2003-2021 myCSharp.de-Team | Impressum | Datenschutz | Alle Rechte vorbehalten. | Dieses Portal verwendet zum korrekten Betrieb Cookies. 27.01.2021 07:40