System.NullReferenceException Problem



  • Hallo ! Mein Problem ist das ich eine Fehlermeldung "System.NullReferenceException" bekomme. Ich weiss nicht was ich falsch gemacht habe. Hier erstmal der Code.

    Mitarbeiter.h

    #pragma once
    
    using namespace System;
    
    ref class Mitarbeiter
    {
    	int id;
    	String ^name;
    	String ^vorname;
    	String ^geburtstag;
    	String ^geburtsort;
    	String ^strasse;
    	String ^stadt;
    	int postleitzahl;
    public:
    	Mitarbeiter(int id, String ^name, String ^vorname, String ^geburtstag, String ^geburtsort, String ^strasse, String ^stadt, int postleitzahl);
    };
    

    Mitarbeiter.cpp

    #include "StdAfx.h"
    #include "Mitarbeiter.h"
    
    Mitarbeiter::Mitarbeiter(int id, String ^name, String ^vorname, String ^geburtstag, String ^geburtsort, String ^strasse, String ^stadt, int postleitzahl){
    	this->id = id;
    	this->name = name;
    	this->vorname = vorname;
    	this->geburtstag = geburtstag;
    	this->geburtsort = geburtsort;
    	this->strasse = strasse;
    	this->stadt = stadt;
    	this->postleitzahl = postleitzahl;
    }
    

    Form1.h

    Oberer Teil:

    public:
    		Form1(void)
    		{
    			InitializeComponent();
    			//
    			//TODO: Konstruktorcode hier hinzufügen.
    			//
    			array<Mitarbeiter^> ^neuMitarbeiter = gcnew array<Mitarbeiter^>(100);
    		}
    

    Unterer Teil

    #pragma endregion
    		private:
    			array<Mitarbeiter^> ^neuMitarbeiter;
    			int index;
    	private: System::Void button_mitarbeiter_anlegen_Click(System::Object^  sender, System::EventArgs^  e) {
    				 if(!index){index = 0;}
    				 index++;
    				 try{
    
    					 neuMitarbeiter[0] = gcnew Mitarbeiter(22,"Name","Vorname","GebOrt","GebTag","Strasse","Was auch immer",33);
    				 }
    				 catch(SystemException ^e){
    					 MessageBox::Show("Falsche Eingabe !"+ e->Message);
    				 }
    				 catch(FormatException ^e){
    					 MessageBox::Show("Falsches Format");
    				 }
    
    			 }
    

    Ich möchte um C++ besser zu lernen sozusagen eine Mitarbeiterverwaltung aufbauen und hänge leider mal wieder.

    Ich Danke schonmal im Vo rr aus



  • Du legst die Variable "neuMitarbeiter" in jeder Methode separat an... somit können die nie auf die gleichen Daten zeigen... lege es als Field an, dann geht es...

    Form1(void)
            {
                InitializeComponent();
                //
                //TODO: Konstruktorcode hier hinzufügen.
                //
                neuMitarbeiter = gcnew array<Mitarbeiter^>(100);
            }
    

    PS: Du lernst hier nicht C++ sondern C++/CLI!



  • Danke für die schnelle Antowrt !
    Nun funzt es 🙂

    Echt Super Forum. Schnelle Antworten 😉


Anmelden zum Antworten