我收到上述错误,无法解决。我用谷歌搜索了一下,但不能摆脱它。场景:我有类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)。然后,当您读取和写入此属性时,编译器会将这些操作转换为对那些生成的方法的调用。
考虑到这一点,很明显为什么不能将属性作为输出参数传递-实际上,您将传递对方法的引用,而不是对变量的对象的引用,这是输出参数所期望的。
索引器也存在类似情况。
- 3 回答
- 0 关注
- 1982 浏览
添加回答
举报
0/150
提交
取消