构造函数中的类型转换时的泛型类问题base()调用c#

时间:2013-08-27 04:42:02

标签: c# asp.net generics

我在理解如何将对象强制转换为使用泛型的父对象时遇到了问题。

我收到错误

 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 个答案:

答案 0 :(得分:1)

唯一的方法是使用协变通用接口(但你仍然只能转换为接口,而不是基类)。请查看C# Generics Interface Covariancehttp://blogs.msdn.com/b/csharpfaq/archive/2010/02/16/covariance-and-contravariance-faq.aspx