0

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

我得到错误

 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
{
 .....
 }

我正在努力弄清楚如何将类型转换为通用父类,对于如何做到这一点的任何帮助将不胜感激!

4

1 回答 1

1

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

于 2013-08-27T04:54:39.857 回答