Frage zu Klassen und Initialisierung



  • Hallo,

    habe bisher Ansic C programmiert und versuche mich nun in C#, benutze Visual Studio 2008.

    Ich habe meine erste Klasse erstellt: CKunde.

    Nun sollte bei Click auf einen Button die Klasse mit Kundendaten initialisert werden. Auf Klassenebene für das Form1 habe ich die Zeile private CKunde kunde1; eingefügt.

    In der Methode ist es notwendig , dass vor der Initialisierung kunde1 = new CKunde(); da steht, wie unten gezeigt:

    private void button1_Click(object sender, EventArgs e)
            {
                kunde1 = new CKunde();      // Objekt erzeugen ???
    
                //Objektfelder initialisieren
                kunde1.anrede     = "Herr";
                ....
    

    Kann mir das mal jemand erkären, bin davon ausgegangen, dass die Instanz schon auf Klassenebene angelegt wird, warum muss ich den gleichen Namen nochmal mit new verwenden. Für mich sieht die Zeile irgendwie nur andersherum geschrieben aus.

    Vielen Dank



  • Klassen sind referenzen. Das kannst du dir in etwa wie Zeiger vorstellen.

    kunde1 ist also erstmal eine Referenz, die auf null verweist.

    Mit new erzeugst du dann erst eine Instanz der Klasse (ein wenig so wie malloc).



  • Danke für die Turboantwort, glaube das hilft mir weiter.


Anmelden zum Antworten