Ich habe eine Frage zu Singletons, von der ich denke, dass ich die Antwort darauf kenne... aber jedes Mal, wenn das Szenario auftaucht, habe ich irgendwie Zweifel an mir selbst, also würde ich gerne die konkrete Antwort wissen.
Sagen wir, ich habe zwei Klassen, die wie folgt eingerichtet sind...
public class ClassA
{
private static ClassA _classA;
public static ClassA Instance { get { return _classA ?? LoadClassA(); } }
private ClassA(){}
public static ClassA LoadClassA()
{
_classA = new ClassA();
return _classA;
}
private ClassB _classB = new ClassB();
public ClassB ClassB { get { return _classB; } set { _classB = value; } }
}
public class ClassB
{
}
Meine Frage ist einfach.
Ich frage mich, ob das Feld _classB auch als statisch behandelt wird, wenn ich auf das Singleton für ClassA zugreife? Auch wenn ich _classB nicht als statisches Mitglied deklariert habe.
Ich habe immer nur vermutet, dass _classB als statisch behandelt wird (ein Speicherplatz), aber ich würde es gerne genau wissen. Liege ich falsch? Wird für _classB jedes Mal ein neues Objekt erstellt, wenn man von der Singleton-KlasseA darauf zugreift, obwohl es nur eine KlasseA im Speicher gibt? Oder liegt es daran, dass ich _classB bei der Deklaration neu angelegt habe, was dazu führt, dass es nur eine Instanz von _classB gibt?
Vielen Dank im Voraus, -Matt