表变量作为返回值
表变量和类最大的区别是表变量中的字段是public类型的,而类的成员变量是protected,并且两者的访问级别都是不可更改的,只能用默认的访问级别。
刚刚在写代码的时候遇到了一个问题,如下代码所示:
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif)
编译该代码得到报错信息:
*** 错误: 31,字段必须是允许赋值的数据元素。
也就是说这样赋值是不行的,该函数返回的是一个表变量,我们知道表变量中的字段是public类型的,但通过CustTable::finde('4001')返回的值是只读的,也就是说通过方法返回的表变量是一个常量指针,那如何是好那?X++中一般的做法如下:
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif)