Farseer

导航

表变量作为返回值

表变量和类最大的区别是表变量中的字段是public类型的,而类的成员变量是protected,并且两者的访问级别都是不可更改的,只能用默认的访问级别。
刚刚在写代码的时候遇到了一个问题,如下代码所示:

static void ReturnValueTest(Args _args)
{
    ;
    CustTable::find(
'4001').AccountNum = '4002';
}

编译该代码得到报错信息:
*** 错误: 31,字段必须是允许赋值的数据元素。
也就是说这样赋值是不行的,该函数返回的是一个表变量,我们知道表变量中的字段是public类型的,但通过CustTable::finde('4001')返回的值是只读的,也就是说通过方法返回的表变量是一个常量指针,那如何是好那?X++中一般的做法如下:

static void ReturnValueTest(Args _args)
{
    CustTable custTable;
    ;
    custTable 
= CustTable::find('4001');
    custTable.AccountNum 
= '4002';
}
如果说返回一个常量指针是怕函数返回的对象被客户端代码修改,但在X++里这个常量指针又可以赋值给一般的(非常量)指针,从而修改原有的对象,何必绕这个弯那?

posted on 2007-07-05 12:47  佛西亚  阅读(269)  评论(0编辑  收藏  举报