HObject和HTuple的兩種數據結構各有兩種初始化方式,下面就來總結一下:
- HObject第一種初始化
HObject hobject=null;
表示HObject是沒有對象,對象不存在。在halcon算子中,只能作為輸出變量(即out位置),作為輸入變量就會報錯。
- HObject第二種初始化
HObject hobject; HOperatorSet.GenEmptyObj(out hobject);
表示hobject是有對象,對象存在,但是對象是空的。在halcon算子中,可以作為輸出變量和輸入變量。
- HTuple第一種初始化
HTuple htuple=null;
表示htuple是沒有對象,對象不存在。在halcon算子中,可以作為輸出變量和輸入變量。
- HTuple第二種初始化
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);