我有一个名为PokerPiece的课程,它是来自Piece类的继承。
那么,如果我可以让List<Piece> pieces =new List<PokerPiece>()
工作?如果没有,我该怎么做呢?
答案 0 :(得分:2)
您所说的问题与Covariant / Contravariant有关。
IEnumerable<Piece> piece = new List<PokerPiece>();
以下链接可以帮助您
https://docs.microsoft.com/en-us/dotnet/standard/generics/covariance-and-contravariance
答案 1 :(得分:0)
我认为你以某种方式得到了错误的方式 - 通常你可能想要这样的东西:
var myList =new List<Message> ();
var myChildObject = new ChildMessage();
myList.add(myChildObject)
myList[0] as ChildMessage == null // should not return null
答案 2 :(得分:0)
您可以执行类似
的操作List<Piece> pieces = new List<Piece>(new List<PokerPiece>());
但你应该做的只是
List<Piece> pieces = new List<Piece>();
或者
List<PokerPiece> pieces = new List<PokerPiece>();