Lassen Sie uns sagen, ich habe:Wie kann ich auf eine statische Eigenschaft in einer Unterklasse zugreifen, wenn sich die Eigenschaft in einer Basisklasse befindet?
public class Fruit
{
public static List<String> Suppliers { get; protected set; }
static Fruit()
{
Suppliers = new List<String>();
Suppliers.Add("Company A");
}
}
public class Banana : Fruit
{
static Banana()
{
Suppliers.Add("Company B");
}
}
Wenn ich dies tun, nur im Telefonvorwahl:
foreach(String supplier in Banana.Suppliers)
Console.WriteLine(supplier);
ich:
- Firma A
Während, wenn Ich mache:
Banana b = new Banana();
foreach(String supplier in Banana.Suppliers)
Console.WriteLine(supplier);
I (das gewünschte Ergebnis) erhalten:
- Firma A
- Firma B
Edit: Nachdem die Antworten zu lesen Ich verstehe, dass dies nicht funktionieren wird .
Was ich in meinem Produktionscode möchte, ist eine Liste von Werten, die dem Objekttyp gemein ist, und ich möchte dynamisch zu dieser Liste von Zeichenfolgen basierend auf dem Untertyp verschiedene Werte hinzufügen. (Der Kontext ist LDAP - alle Einträge haben objectClass = top und alle Benutzerobjekte haben objectClass = user, top, organizationPerson, person). Vermute ich muss eine Schnittstelle oder verschiedene Listen in jeder Unterklasse oder etwas verwenden, wenn niemand einen besseren Vorschlag hat?
Sie sollten eine neue Frage für Ihre Bearbeitung stellen. – JoshBerke
@Josh - Ich denke, der Kontext ist immer noch derselbe, ich dachte nur, dass ich glaube, dass es einen triftigen Grund gibt zu versuchen, was ich versuche ... – antirysm
Ich glaube nicht, dass @Josh die Gültigkeit Ihrer Frage in Frage stellt nur, dass Sie wahrscheinlich bessere Antworten erhalten, wenn Sie die Bearbeitung auf eine eigene Frage mit einem passenden Titel und ohne das Gepäck des ursprünglichen Kontextes aufteilen. –