HObject和HTuple的两种数据结构各有两种初始化方式,下面就来总结一下:
HObject hobject=null;
表示HObject是没有对象,对象不存在。在halcon算子中,只能作为输出变量(即out位置),作为输入变量就会报错。
HObject hobject; HOperatorSet.GenEmptyObj(out hobject);
表示hobject是有对象,对象存在,但是对象是空的。在halcon算子中,可以作为输出变量和输入变量。
HTuple htuple=null;
表示htuple是没有对象,对象不存在。在halcon算子中,可以作为输出变量和输入变量。
HTuple htuple = new HTuple();
表示htuple是有对象,对象存在,但是对象是空的。在halcon算子中,可以作为输出变量和输入变量。
需要注意的是:
数组初始化一定要HTuple htuple = new HTuple(),如下例:
HTuple tempRow=20; //HTuple tempRowAry=null;会报错没有实例 HTuple tempRowAry=new HTuple(); tempRowAry.Append(tempRow);
不建议下面这种用法:
HOperatorSet.TupleConcat(tempRowAry, tempRow, out tempRowAry);