Meine Situation:Unconstrained Parameter Art Casting
interface ISomeInterface {
void DoSmth<T>(T other);
}
class Base : ISomeInterface
{
public virtual void DoSmth<T>(T other){
// for example do nothing
}
}
class Derived<T2> : Base {
Action<T2> MyAction {get;set;}
public override void DoSmth<T>(T other){
if(typeof(T2).IsAssignableFrom(typeof(T)))
MyAction((T2) other);
}
}
Das gibt mir eine Fehlermeldung: Cannot cast expression of type 'T' to type 'T2'
(oder Cannot convert type 'T' to 'T2'
)
Ich verstehe, dass es ist, weil weder T oder T2 mit class
eingeschränkt sind, aber wenn ich weiß ich - wegen IsAssignableFrom
- dass ich T verwenden kann, wo ich T2 brauche, wie kann ich Compiler davon überzeugen, es zu erlauben?
'(T2) (Objekt) andere' – PetSerAl
' (T2) (Objekt) andere' – leppie
Yup, ihr habt recht - ich habe diese Idee nur Sekunden nach dem Posten;) Schreibe eine Antwort und ich akzeptiere es:) – Gerino