泛型、隐式转换 求助

傻大宝 2012-11-27 10:49:36
...全文
238 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
傻大宝 2012-11-27
  • 打赏
  • 举报
回复
引用 6 楼 Chinajiyong 的回复:
仔细检查接口,是不是没有继承过来?
所有的继承关系都在图里
EnForGrass 2012-11-27
  • 打赏
  • 举报
回复
仔细检查接口,是不是没有继承过来?
傻大宝 2012-11-27
  • 打赏
  • 举报
回复
引用 3 楼 bdmh 的回复:
你怎么传递的参数D,你两个泛型参数,都限定了类型,你仔细对一下,估计是不符合泛型约定
D里的IDAL.ITSheetPriceDetail和IDAL.ITSheetPriceMaster的定义是一样的 我现在就是不知道哪里不行,按道理IDAL.ITSheetPriceMaster是从IDALBaseTable<Entity.TSheetPriceMaster>过来的,Entity.TSheetPriceMaster是有EntityBase过来的,为什么IDAL.ITSheetPriceMaster会不符合IDALBaseTable<Entity.EntityBase>约束,不能做隐式转换?
傻大宝 2012-11-27
  • 打赏
  • 举报
回复
引用 2 楼 hard_learner 的回复:
从名字看貌似形参是实体,而你传递的是接口
我试过在SheetFoodPrice里传递实体也是一样的错误
bdmh 2012-11-27
  • 打赏
  • 举报
回复
你怎么传递的参数D,你两个泛型参数,都限定了类型,你仔细对一下,估计是不符合泛型约定
hard_learner 2012-11-27
  • 打赏
  • 举报
回复
从名字看貌似形参是实体,而你传递的是接口
傻大宝 2012-11-27
  • 打赏
  • 举报
回复
在线等,有没人知道这里面犯了什么错?
mq2003hwj 2012-11-27
  • 打赏
  • 举报
回复
确实是4.0才有 但是用in out还是尝试下 4.0有不大 装一个赛
傻大宝 2012-11-27
  • 打赏
  • 举报
回复
引用 17 楼 mq2003hwj 的回复:
引用 16 楼 mq2003hwj 的回复:IDALBaseSheet<M,D> 你改成IDALBaseSheet<out M, out D>试试? 如果不行改成IDALBaseSheet<in M, in D> 如果还不行的话看下逆变量和协变量或许对你有帮助 接上, 里面的接口都给它加全部out关键字或者in 关键字, 倾向于out关键字 ……
好像.net4才有这东东,我用的是3.5,不过据说用in和out也不行,具体我没有试过
mq2003hwj 2012-11-27
  • 打赏
  • 举报
回复
引用 16 楼 mq2003hwj 的回复:
IDALBaseSheet<M,D> 你改成IDALBaseSheet<out M, out D>试试? 如果不行改成IDALBaseSheet<in M, in D> 如果还不行的话看下逆变量和协变量或许对你有帮助
接上, 里面的接口都给它加全部out关键字或者in 关键字, 倾向于out关键字
mq2003hwj 2012-11-27
  • 打赏
  • 举报
回复
IDALBaseSheet<M,D> 你改成IDALBaseSheet<out M, out D>试试? 如果不行改成IDALBaseSheet<in M, in D> 如果还不行的话看下逆变量和协变量或许对你有帮助
傻大宝 2012-11-27
  • 打赏
  • 举报
回复
http://bbs.csdn.net/topics/390011621 据说class1<type1>和class1<bypebase>是不同的类,不能做隐式转换
傻大宝 2012-11-27
  • 打赏
  • 举报
回复
引用 13 楼 xz_lm_fly 的回复:
看错了。。。。。。。。。。。。
帮我好好看看,不解决这个问题,接下来的活没法干了
xz_lm_fly 2012-11-27
  • 打赏
  • 举报
回复
看错了。。。。。。。。。。。。
傻大宝 2012-11-27
  • 打赏
  • 举报
回复
引用 10 楼 xz_lm_fly 的回复:
IDALBase<IEntity>和IEntity明显不是一个概念吧
这里不存在IDALBase<IEntity>到IEntity的转换 ITSheetPriceMaster --> IDALBaseTable<Entity.TSheetPriceMaster> --> IDALBaseTable<Entity.EntityBase>
傻大宝 2012-11-27
  • 打赏
  • 举报
回复
引用 9 楼 xz_lm_fly 的回复:
很明显你定义的IDALBaseSheet<M,D>,M,D必须是IDALBaseTable<Entity.EntityBase>,而你传入的是ITSheetPriceMaster和ITSheetPriceDetail,1个是IDALBase<T>类型,一个是EntityBase类型,明显无法相互转换。
ITSheetPriceMaster是IDALBaseTable<Entity.TSheetPriceMaster>继承而来 Entity.TSheetPriceMaster是EntityBase继承而来 不知道是你看错了,还是我没看懂你的话
xz_lm_fly 2012-11-27
  • 打赏
  • 举报
回复
IDALBase<IEntity>和IEntity明显不是一个概念吧
xz_lm_fly 2012-11-27
  • 打赏
  • 举报
回复
很明显你定义的IDALBaseSheet<M,D>,M,D必须是IDALBaseTable<Entity.EntityBase>,而你传入的是ITSheetPriceMaster和ITSheetPriceDetail,1个是IDALBase<T>类型,一个是EntityBase类型,明显无法相互转换。
傻大宝 2012-11-27
  • 打赏
  • 举报
回复
有人能给点具体的建议吗?

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧