Es scheint seltsam, dass Sie eine Klasse definieren können, die ein Member-Feld dieser Klasse hat.Definieren einer Klasse mit einem Feld der gleichen Klasse. Klasse mit Selbstreferenzen?
public class Person
{
public string Name { get; set; }
public Person Spouse { get; set; }
}
Nun, wenn ich nennen diese Klasse:
var jane = new Person();
var jim = new Person();
jane.Spouse = jim;
jim.Spouse.Spouse = jane;
Die letzte Zeile einen Fehler verursacht. Aber ich habe ein paar Probleme damit, zu zeigen, was der jim.Spouse.Spouse-Aufruf macht. Es sollte zuerst jim.spouse evaluieren, was null ist, so dass es einen Fehler verursacht, oder? Wenn ich zuerst jim.spouse = jane anmelde, sollte es funktionieren? Aber dann sage ich im Wesentlichen jane.spouse = jane.
Wenn eine Klasse ein Feld des gleichen Typs hat, was macht sie dann mit der Klasse? Ist es nur möglich, dass zwei Instanzen der Klasse eine Beziehung haben? Die Klasse referenziert sich selbst, so dass sie von sich selbst erbt? Ich bin irgendwie verwirrt und frage mich auch, ob das eine schlechte Übung ist.
Wenn die Antwort funktioniert, sollten Sie auf das Häkchen klicken, um dies anzuzeigen. Da Sie dies noch nicht getan haben, nehmen Sie bitte die [Tour], um einige Details zur Funktionsweise von SO zu sehen. Akzeptierte und aktualisierte Antworten helfen anderen, gute Antworten zu finden – Plutonix