Ich habe zwei Klassen: Superklasse und abgeleitete Unterklasse: Superklasse. Ich habe eine generische Methode:Aufruf generische Methode für Unterklasse von generische Methode für Superklasse
public void DoSmth<T>(T obj)
where T : Superclass
{
if(typeof(T).IsSubclassOf(typeof(Subclass))
{
DoSmth2<T>(obj);
}
//...
}
public void DoSmth2<T>(T obj)
where T : Subclass
{
//...
}
Wie Sie sehen, ich generische Methode für Unterklasse von gattungsgemäßes Verfahren zum übergeordneten Klasse aufrufen möchten. Aber Compiler sagt, dass ich das nicht tun kann:
Ich benutze .Net 3.5. Ich verstehe, dass ich das nicht tun kann, wie ich oben geschrieben habe, aber gibt es irgendeinen Weg das zu tun?
Sie müssen zuerst wie folgt in "Objekt" umwandeln: Unterklasse obj2 = (Subclass) (Objekt) obj; –
Ich denke mein letzter Edit bietet dafür. –
Ja, das funktioniert. Vielen Dank. – mao