看板 C_Sharp 關於我們 聯絡資訊
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