Ich habe diese Klassen, teilweise Auflistung der relevanten Bits.C# Casting funktioniert nicht
public class IVRTopology {}
public abstract class SANSwitch
{ public string name { get; set; }
}
public class CiscoSwitch : SANSwitch
{
public IVRTopology IVRTop = new IVRToplogy()
}
class SwitchViewModel : INotifyPropertyChanged
{
public SANSwitch sanswitch { get; set; }
}
Wenn ich etwas tun, wie folgt aus:
SwitchViewModel svm = new SwitchViewModel();
svm.sanswitch = new CiscoSwitch();
IVRTopology topo = svm.sanswitch.IVRTop;
der Compiler mir warnt davor, dass svm.sanswitch vom Typ SANSwitch und haben keine Definition für IVRTop wenn ich versuche IVRTop zugreifen thusly:
IVRTopology topo = (CiscoSwitch)svm.SANSwitch.IVRTop
funktioniert auch nicht. Ich möchte der abstrakten Klasse keine Definition für IVRTopology hinzufügen, da ich andere Unterklassen davon haben werde, die sie nicht verwenden. Stimmt etwas nicht mit der Besetzung? Wie kann ich das schaffen? Ich möchte, dass das Ansichtsmodell schließlich verschiedene Arten von Switches unterstützt.