我正在创建一个可以存储任何类型数据的容器。
要从容器获取数据,我可以使用以下方法:
AnyTypeResult<T> Get<T>(string name)
-从注册为“名称”的容器数据返回并将其强制转换为T。
业务逻辑要求,当我们将数据作为DerivedClass的GenericType添加到容器时,可以将其作为BaseClass的GenericType获取。
最好的方法是什么。
同样的问题是当我们要将List<B>
强制转换为List<A>
时。可以通过Linq扩展方法Cast<T>
public class A {}
public class B : A {}
public class C<T> {}
var a = new C<A>();
var b = new C<B>();
var x = (C<A>)b; // cannot convert type