是否有可能投下List<Subclass>到List<Superclass>在C#4.0?
这些方面的东西:
class joe : human {}
List<joe> joes = GetJoes();
List<human> humanJoes = joes;
Run Code Online (Sandbox Code Playgroud)
这不是协方差的意思吗?
如果你能做到:
human h = joe1 as human;
Run Code Online (Sandbox Code Playgroud)
你为什么不能这样做
List<human> humans = joes as List<human>;
Run Code Online (Sandbox Code Playgroud)
因为那个项目已经被贬低了,所以做人类[0]是不合法的,每个人都会很高兴.现在唯一的选择是创建一个新的List