引数の説明
配列オブジェクトの一意名 |
配列要素が格納される一意名 |
例
000001 IDENTIFICATION DIVISION. 000002 PROGRAM-ID. C3546. 000003 ENVIRONMENT DIVISION. 000004 CONFIGURATION SECTION. 000005 REPOSITORY. 000006 CLASS STGAR AS "System.String[]" 000007 INTERFACE IDISP AS "System.IDisposable" 000008 . 000009 DATA DIVISION. 000010 WORKING-STORAGE SECTION. 000011 01 OBJSTGAR OBJECT REFERENCE STGAR. 000012 01 OBJIDISP OBJECT REFERENCE IDISP. 000013 LINKAGE SECTION. 000014 PROCEDURE DIVISION. 000015 PERFORM VARYING OBJIDISP THRU OBJSTGAR 000016 INVOKE OBJIDISP "Dispose" 000017 END-PERFORM. 000018 . 000019 END PROGRAM C3546.
C3546I.cob (15) : JMN3546I-S 'OBJSTGAR'のコレクション要素は'OBJIDISP'に格納できません.
詳細な説明
コレクションを操作するPERFORM文では,THRUの前に記述された一意名-1は,THRUの後に記述された一意名-2が示すコレクションの,個々の要素を格納できるデータ型である必要があります.
この組み合わせの選択の目安は,「代入の適合」の規則です.一意名-2のコレクション要素から一意名-1への代入を想定したとき,型の組み合わせが「代入の適合」の規則に反していなければ,翻訳でエラーになることはありません.
なお規則を満足していない場合でも,必ず翻訳エラーになるわけではありません.例えばコレクション要素がSystem.Object型などの場合には,それが保持するオブジェクト自体は一意名-1に格納可能な型である可能性があります.このような場合は翻訳エラーとはせずに,暗黙のAS修飾(キャスト)を展開します.