我有Func<>
具有泛型类作为输入参数。问题是如何将其转换为类似的Func,但是具有派生自前一个参数的类?现在下面的代码在fu2中给我null。Func与通用类参数和铸造
var fu = new Func<Envelope<Base>, object>(Simple);
var fu2 = fu as Func<Envelope<Derived>, object>;
public class Envelope<T>
{
public T Enveloped { get; set; }
}
public class Base
{
}
public class Derived: Base
{
}
“FU2”似乎病命名,幸好C#编译器有厚的皮肤。也就是说,你不能做你想做的事。 'Envelope'在任何意义上都不是'Envelope '的子类;这是一个无关的班级。 –