none
Objekt einer Klasse als Array RRS feed

  • Frage

  • Hallo,

    ich arbeite zur Zeit an einer Technikerarbeit. Hierzu zählt die Erstellung einer Software, welche ich mit Visual Studio 2005 und C# programmiere.

    Momentan habe ich Probleme mit der Erstellung der Benutzerverwaltung für die Software. Die Benutzer sollen in einem Array mit Name und Personalnummer angelegt werden. Hierfür habe ich eine neue Klasse erstellt. Jedoch soll auf die Benutzerdaten nur über Methoden zugegriffen werden können. Also enthält meine Klasse die Eigenschaften "Benutzername" und "Personalnummer" und zudem eine "get-" und "set-" Methode zum einlesen und auslesen der Benutzerdaten.

    --------------------------------------------------
    class Benutzerdaten
        {
            private string Benutzername = null;
            private string Personalnummer = null;
           
            public void Benutzer_anlegen (string username, string userid)
            {
                Benutzername = username;
                Personalnummer = userid;
            }
            public void Benutzer_auslesen(ref string username, ref string userid)
            {
                username = Benutzername;
                userid = Personalnummer;
            }

    --------------------------------------------------------------

     

    Das Anlegen des Objektes (Array für mehrere Benutzer):

    Benutzerdaten[] Array_Benutzer = new Benutzerdaten[100];

     

    Den Aufruf der Funktion zum Einlesen der Benutzerdaten in das Array:

    Array_Benutzer[itemcount].Benutzer_anlegen(username, userid);

    -------------------------------------------------------------

    Itemcount ist eine int-Variable, welche hochgezählt wird.
    username und userid sind vom Typ string und enthalten eine Folge von Buchstaben oder Zahlen.

    Beim Funktionsaufruf zum Anlegen eines Benutzers erhalte ich nun folgende Fehlermeldung:
    "Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt."

    Ich wäre dankbar, wenn mir jemand helfen könnte, falls erkennbar ist, worin die Ursache des Problems besteht.

    Viele Grüße

     

    Mittwoch, 20. April 2011 10:52

Antworten

  • Hallo Techniker-2011,

    zusätzlich zum instanzieren des Arrays mit new musst Du auch jedes einzelne Element das Du benutzen willst ( also jedes Object Benutzerdaten im Array ) mit new instanzieren.


    Hannes

    If you have got questions about this, just ask.

    In a perfect world,
    users would never enter data in the wrong form,
    files they choose to open would always exist
    and code would never have bugs.

    C# to VB.NET: http://www.developerfusion.com/tools/convert/csharp-to-vb/
    Mittwoch, 20. April 2011 11:05
  • Hi,

    // Array instanzieren:
    Benutzerdaten[] Array_Benutzer = new Benutzerdaten[100];
    
    // ArrayElement instanzieren:
    
    Benutzerdaten[0] = new BenutzerDaten();
    

     


    Hannes

    If you have got questions about this, just ask.

    In a perfect world,
    users would never enter data in the wrong form,
    files they choose to open would always exist
    and code would never have bugs.

    C# to VB.NET: http://www.developerfusion.com/tools/convert/csharp-to-vb/
    Mittwoch, 20. April 2011 11:14

Alle Antworten

  • Hallo Techniker-2011,

    zusätzlich zum instanzieren des Arrays mit new musst Du auch jedes einzelne Element das Du benutzen willst ( also jedes Object Benutzerdaten im Array ) mit new instanzieren.


    Hannes

    If you have got questions about this, just ask.

    In a perfect world,
    users would never enter data in the wrong form,
    files they choose to open would always exist
    and code would never have bugs.

    C# to VB.NET: http://www.developerfusion.com/tools/convert/csharp-to-vb/
    Mittwoch, 20. April 2011 11:05
  • Hallo Heslacher,

    vielen vielen Dank für die schnelle Antwort.

    Könntest du mir noch erklären, wie ich diese einzelnen Elemente mit new instanziere?

    Das Prinzip hab ich soweit verstanden, ich habe praktisch bis jetzt nur das Array instanziert, jdeoch nicht die einzelnen Elemente des Arrays.

    Da ich bisher nur Grundlagen in C/C++ habe und mit C# erst begonnen habe, wäre ich dir über eine ergänzende Antwort dankbar.

    Viele Grüße.

    Mittwoch, 20. April 2011 11:11
  • Hi,

    // Array instanzieren:
    Benutzerdaten[] Array_Benutzer = new Benutzerdaten[100];
    
    // ArrayElement instanzieren:
    
    Benutzerdaten[0] = new BenutzerDaten();
    

     


    Hannes

    If you have got questions about this, just ask.

    In a perfect world,
    users would never enter data in the wrong form,
    files they choose to open would always exist
    and code would never have bugs.

    C# to VB.NET: http://www.developerfusion.com/tools/convert/csharp-to-vb/
    Mittwoch, 20. April 2011 11:14
  • Alles klar,

    vielen Dank.

    Werde es nacher gleich ausprobieren.

    Viele Grüße

    Mittwoch, 20. April 2011 11:21