为了账号安全,请及时绑定邮箱和手机立即绑定

属性或索引器可能无法作为out或ref参数传递

属性或索引器可能无法作为out或ref参数传递

跃然一笑 2019-11-02 14:16:47
我收到上述错误,无法解决。我用谷歌搜索了一下,但不能摆脱它。场景:我有类BudgetAllocate,其属性为double类型的budget。在我的dataAccessLayer中,在我的一堂课中,我试图做到这一点:double.TryParse(objReader[i].ToString(), out bd.Budget);哪个抛出此错误:在编译时,属性或索引器可能不会作为out或ref参数传递。我什至尝试了这个:double.TryParse(objReader[i].ToString().Equals(DBNull.Value) ? "" : objReader[i].ToString(), out bd.Budget);其他一切工作正常,并且存在层之间的引用。
查看完整描述

3 回答

?
千巷猫影

TA贡献1829条经验 获得超7个赞

其他人为您提供了解决方案,但要说明为什么这样做是必要的:属性只是方法的语法糖。


例如,当您声明Name使用getter和setter 调用的属性时,编译器实际上会生成称为get_Name()和的方法set_Name(value)。然后,当您读取和写入此属性时,编译器会将这些操作转换为对那些生成的方法的调用。


考虑到这一点,很明显为什么不能将属性作为输出参数传递-实际上,您将传递对方法的引用,而不是对变量的对象的引用,这是输出参数所期望的。


索引器也存在类似情况。


查看完整回答
反对 回复 2019-11-02
  • 3 回答
  • 0 关注
  • 1982 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信