2013-08-27 22 views
0

我在理解如何將對象轉換爲使用泛型的父類時遇到問題。當構造函數中的類型轉換base()調用c時的泛型類問題#

我得到的錯誤

Cannot convert type 'TeamTrackerExposure.TTFileUploadDict' to 'JadeSoftware.Joob.MemberKeyDictionary<JadeSoftware.Joob.JoobDictionaryKey,JadeSoftware.Joob.JoobObject>' 

在構造

public AC_TTFileUploadDict(DbJoobContext proc, TTFileUploadDict obj, TTPage page) 
     : base(proc, (MemberKeyDictionary<JoobDictionaryKey,JoobObject >) obj, page) 
    { 

TTFileUploadDict有下面的類定義

public partial class TTFileUploadDict : MemberKeyDictionary<TTFileUploadDictKey, TTFileUpload> 
{ 
..... 
} 

TTFileUploadDictKey的類定義是

public class TTFileUploadDictKey : JadeSoftware.Joob.JoobDictionaryKey 
{ 
..... 
} 

,最後TTFileUpload的

public partial class TTFileUpload : JoobObject 
{ 
..... 
} 

我竭力要弄清楚如何強制轉換爲一個通用的父類,就如何做到這一點的任何援助將不勝感激!

回答

1

做到這一點的唯一方法是使用協通用接口(但你仍然可以只投給接口,而不是基類)。看看C# Generics Interface Covariancehttp://blogs.msdn.com/b/csharpfaq/archive/2010/02/16/covariance-and-contravariance-faq.aspx

+0

感謝尼古拉,我試圖讓我的頭周圍,這樣我就可以一個接口的基類中添加如 '接口IBASE { }' 然後從'class Base:IBase {}'中訪問對象? –

+0

是的,但它應該是IBase {}。然後,您將能夠將TTFileUploadDict轉換爲IBase Nikolay

相關問題