作者Cloud (抓不住...)
看板C_Sharp
标题Re: [问题] Collection内容的转型问题
时间Sun Oct 11 10:23:54 2009
List<CharacterCard> theCharCards = new List<CharacterCard>();
List<Card> theCard = theCharCards.ConvertAll<Card>(
delegate(CharacterCard item)
{
return (Card)(object)item;
} );
应该就可以了~~
※ 引述《Killercat (杀人猫™)》之铭言:
: 请问一下,我设计碰到一个比较麻烦的问题
: 可能有点新手,不过以往比较没碰过
: class CharacterCard : Card
: {
: ...
: ...
: ...
: }
: class DistrictCard : Card
: {
: ...
: ...
: ...
: }
: 也就是他们两个有共通的父类别
: 现在他们两个各有一个List
: List<CharacterCard> theCharCards = new List<CharacterCard>();
: List<DistrictCard> theDistCards = new List<DistrictCard>();
: 然後我希望能用一个List<Card>指向他们两个
: List<Card> theCards;
: 当然这转不过去(所以我就上来问问各位有经验的人了)
: theCards = theCharCards; //error
: theCards = theDistCards; //error
: theCards = (List<CharCards>)theCharCards; //一样error
: 因为某些因素,无法写成
: List<Cards> theCharCards = new List<CharacterCard>();//这稳死的 应该不用try了
: 或者
: List<Cards> theCharCards = new List<Cards>(); //里面塞CharacterCards
: 请问有没有什麽方法可以直转?还是得重新设计系统让他们全部用List<Card>装?
: 先谢谢各位
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 218.174.36.165
1F:推 liunate:水喔 10/11 11:57
2F:推 Killercat:匿名函式...这个漂亮 XD 10/11 12:52
3F:推 Killercat:不过这种转法仍然有warning,请问有没有办法安全转? 10/11 13:00
4F:→ Cloud:为什麽会有Warning? 想要安全就用as转~~ 10/11 14:48