作者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
推 liunate:水喔 10/11 11:57
推 Killercat:匿名函式...這個漂亮 XD 10/11 12:52
推 Killercat:不過這種轉法仍然有warning,請問有沒有辦法安全轉? 10/11 13:00
→ Cloud:為什麼會有Warning? 想要安全就用as轉~~ 10/11 14:48