我在理解如何将对象强制转换为使用泛型的父对象时遇到了问题。
我收到错误
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
{
.....
}
我正在努力弄清楚如何对一个通用的父类进行类型转换,任何有关如何做到这一点的帮助都将受到高度赞赏!!
答案 0 :(得分:1)
唯一的方法是使用协变通用接口(但你仍然只能转换为接口,而不是基类)。请查看C# Generics Interface Covariance或http://blogs.msdn.com/b/csharpfaq/archive/2010/02/16/covariance-and-contravariance-faq.aspx