我有一个设置是这样的:无法从列表<Bar>转换到列表<Foo>
abstract class Foo {}
class Bar : Foo {}
这种形式的其他地方的方法:
void AddEntries(List<Foo>) {}
我试图用调用此方法对象列表Bar
List<Bar> barList = new List<Bar>()
AddEntries(barList);
但这给了我错误:
cannot convert from List<Bar> to List<Foo>
反正有这个问题吗?我需要使用抽象类来保持方法定义。
C#有类似语法'名单<?扩展Foo>'就像Java一样? – dbush
@dbush是的,C#的版本是在接受的答案 – Harrichael
@harrichael虽然不像Java,C#支持泛型协变,所以有一个更好的选择(见罗布的回答) –