[C#] statische ID

rampf

Aktives Mitglied
Hallo zusammen

Ich habe mal wieder ein Problem mit den Hausaufgaben ;)

Ich habe eine neue Klasse Person erstellt.
Danach habe ich im Hauptprogramm zwei Objekte mit der Klasse erstellt
Person p1 = new Person();
Person p2 = new Person();

Jetzt zum Problem:
Ich habe die Aufgabe bekommen eine statische Variabel ID in der Klasse Person zu erstellen, welche bei jedem neuen Klassenobjekt automatisch um 1 erhöt wird.
p1.ID sollte also = 0 sein, während p2.ID = 1 sein sollte, das alles automatisch und statisch.

Die Variabel konnte ich gerade noch erstellen, aber mit dem autom. setzen der ID bin ich überfragt. ;)

Hat vielleicht jemand von euch einen Lösungsansatz.

THX im Vorab.

Gruss
 

zplan

Stammgast
Also deine Aufgabenstellung tönt nicht ganz logisch:
Wenn du eine statische Variabel erstellt, dann wird logischweise die ID bei allen Personen immer gleich sein, d.h. beim Erstellen der ersten Person ist p1.ID = 0. Beim erstellen der zweiten Person ist p1.ID =1 und p2.ID = 1, da id ja statisch ist und du diese hochzählst. Der Name ID wäre dann auch sehr unsinnig, da ID per se eindeutig zu einer Person zuweisbar sein sollte.

Hier eine Lösung, die ich für sinnvoll halte :)

public class Person
{
private static int count;
private int id;

public Person()
{
count++;
id = count;
}
}

Das wäre etwa das, was du beschreibst, aber dann mit den id's nicht stimmen würde.

public class Person
{
private static int id;

public Person()
{
id++;
}
}

Aber nicht einfach abschreiben und Hausaufgaben als erledigt beiseite legen sondern noch etwas darüber nachdenken, gell! ;)
 

rampf

Aktives Mitglied
Das mit der Aufgabenstellung hat mir eben auch nicht ganz eingeleuchtet.
Habs mal ausprobiert und festgestellt, dass jetzt alles wunderbar funktioniert. :)

Vielen Dank für deine Hilfe.

Gruss
 
Oben