我有許多類都從基類繼承 - 這實際上是一個簡單的包裝器的接口,以允許串行化從而:鑄造列表<baseclass>到列表<derivedclass>
public abstract class VoucherRuleBase : IRule{
public abstract bool Save(int nodeID);
}
public class ActiveDateRule : VoucherRuleBase{
public DateTime ActiveDateRuleProperty{get;set;}
...etc
}
我然後有一個List<VoucherRuleBase>
其中包含一些ActiveDateRule
對象,或其他派生類的數量。該列表總是充滿相同的類型,即。所有的ActiveDateRules或其他派生類之一。
我需要將List轉換爲列表,因爲我試圖將列表綁定到網格,但是由於網格只能看到它沒有找到任何屬性的基類。在運行時,.NET知道'真實'類型,只是在編譯時我無法將其轉換。這是因爲它是不可能的 - 沒有每個派生類都有一些構造函數來執行轉換?
我搜索過這裏確實有類似這樣的其他問題,但我沒有與任何解決方案運氣..
任何幫助非常感謝如初.. 感謝
這就是他們已經擁有的。 – Jon
道歉它將列表傳遞給一個沒有重新編譯並設置爲基類的控件.. doh! both:.OfType()和.Cast ()工作.. –
nat