I am failing to see why my attempt to cast to a generic base class is not working.
The basic structure of the code is as follows.
interface ICmd
{
}
class Context
{
}
class Cmd<TContext> : ICmd
where TContext : Context
{
}
class MyContext : Context
{
}
class MyCmd : Cmd<MyContext>
{
}
So now I have an instance of ICmd and want to cast it to Cmd as follows
var base = cmd as Cmd<Context>
base is always null after this line is executed.
changing cast to be specific for the context only and it works.
var base = cmd as Cmd<MyContext> -- this works ???
Hope I have provided enough information, is this a covariancecontravariance issue?
Thanks
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…