KlassenForce-Liste <Base> = Liste <Derived> & Act Wie Liste <Derived>
public class Building
{
public string Name = "Not To Be Seen";
...
}
public class School: Building
{
public int NoOfRooms = 200;
public string Address = "123 Main St.";
...
}
Tor (n einige andere Klasse/Use Case)
// This is a simple example, in reality this code is far more complex
// the class "School" is private from the program
List<Building> city = new List<School>();
// city will only have properties of the class School (or at least those are the only properties seen)
Console.WriteLine(city[0].NoOfRooms.ToString()) // Outputs 200
Console.WriteLine(city[0].Name) // Should not output anything
Dies scheint, wie sollte es durchaus möglich sein, je nach richtig die Listen konvertieren. Aber ich kann mir nicht vorstellen, wie ich das zur Arbeit bringen soll. Es scheint, dass es Kovarianz beinhaltet, aber ich möchte nicht wollen eine unveränderliche Liste oder einen Typ. Bietet C# diese Art der Konvertierung nicht leicht an (d. H. Die Basisklasse kann eine abgeleitete Klasse vollständig nachahmen)?
Dank
Ihr Beispiel ist falsch, 'List Jill' hat keine Eigenschaften' ClassRoom' Es ist eine Liste ... –
Wie erwarten Sie, dass ein 'public' Feld für eine abgeleitete Klasse nicht sichtbar ist? –
Und nein, man kann sich nicht wie ein Lehrer benehmen, der Zugriff auf Eigenschaften, die nur einem Lehrer auf einer Person gehören, wird niemals funktionieren ..... Ich würde wahrscheinlich dein Erbe hier überdenken ... und ich bin der Meinung, dass du es bist Verwenden Sie keine Vererbung –