例
000001 IDENTIFICATION DIVISION. 000002 DELEGATE-ID. D5730. 000003 ENVIRONMENT DIVISION. 000004 DATA DIVISION. 000005 LINKAGE SECTION. 000006 01 LK1 PIC S9(9) COMP-5. 000007 01 LK2 PIC S9(9) COMP-5. 000008 01 LK3 PIC S9(9) COMP-5. 000009 PROCEDURE DIVISION USING BY VALUE LK1 000010 BY VALUE LK2 000011 RETURNING LK3. 000012 END DELEGATE D5730.
000001 IDENTIFICATION DIVISION. 000002 PROGRAM-ID. P5730. 000003 ENVIRONMENT DIVISION. 000004 CONFIGURATION SECTION. 000005 REPOSITORY. 000006 CLASS MATH AS "System.Math" 000007 DELEGATE D5730. 000008 DATA DIVISION. 000009 WORKING-STORAGE SECTION. 000010 01 WOBRDT OBJECT REFERENCE D5730. 000011 PROCEDURE DIVISION. 000012 INVOKE D5730 "NEW" USING BY REFERENCE MATH 000013 "Max" 000014 RETURNING WOBRDT 000015 END PROGRAM P5730.
P5730.cob (12) : JMN5730I-S デリゲートの"NEW"を呼び出すINVOKE文では,USING指定は'BY VALUE'でなければなりません.INVOKE文を無効とします.
詳細な説明
デリゲートのNEWメソッド(コンストラクタ)の呼出しは通常と異なるINVOKE文を使用します.
このINVOKE文は,通常のINVOKE文と異なり,次の規則があります.
BY指定はBY VALUEしか指定できない.また,BY指定を省略した場合,BY VALUEが指定されたと見なす.
USING指定に記述するパラメタの数は2つでなければならない.
USING指定に記述した1つ目のパラメタは,クラス名,オブジェクト参照項目または,定義済みオブジェクト一意名SELFでなければならない.
USING指定に記述した2つ目のパラメタは,文字定数または日本語定数でなければならない.
このINVOKE文の詳細については,“COBOL 文法書”の“11.8.3.9 INVOKE文”を参照してください.