我無法理解爲什麼我嘗試轉換爲泛型基類不工作。Casting to Generic基類失敗
代碼的基本結構如下。
interface ICmd
{
}
class Context
{
}
class Cmd<TContext> : ICmd
where TContext : Context
{
}
class MyContext : Context
{
}
class MyCmd : Cmd<MyContext>
{
}
所以現在我有ICMD的實例,並希望將其轉換爲Cmd的如下
var base = cmd as Cmd<Context>
基地執行這條線後始終爲空。
更改爲僅針對上下文特定的轉換,它工作。
var base = cmd as Cmd<MyContext> -- this works ???
希望我已經提供了足夠的信息,這是一個協變\逆變問題嗎?
謝謝