引数の説明
INVOKE文またはメソッドの行内呼出し. |
エラーの原因となったメソッド名. |
例
000001 IDENTIFICATION DIVISION. 000002 PROGRAM-ID. P5725. 000003 ENVIRONMENT DIVISION. 000004 CONFIGURATION SECTION. 000005 REPOSITORY. 000006 CLASS MATH AS "System.Math". 000007 DATA DIVISION. 000008 WORKING-STORAGE SECTION. 000009 01 INT1 PIC S9(9) COMP-5. 000010 01 COBNUM1 PIC S9(9). 000011 01 COBNUM2 PIC S9(18). 000012 01 WANS1 PIC S9(9) COMP-5. 000013 01 WANS2 PIC S9(9) COMP-5. 000014 PROCEDURE DIVISION. 000015 INVOKE MATH "MAX" USING BY VALUE INT1 000016 BY VALUE COBNUM2 000017 RETURNING WANS1 000018 INVOKE MATH "MAX" USING BY VALUE COBNUM1 000019 BY VALUE COBNUM2 000020 RETURNING WANS2 000021 END PROGRAM P5725.
P5725.cob (18) : JMN5725I-S INVOKE文で指定したパラメタで呼出し可能なメソッドが複数存在するため,メソッド'Max'を決定できません.INVOKE文を無効とします.
詳細な説明
NetCOBOL for .NETではINVOKE文やメソッドの行内呼出しに指定した実パラメタの型と呼び出すメソッドの仮パラメタの型が一致せずとも,実パラメタの型が仮パラメタの型に適合するなら,メソッドを呼び出すことができます.オーバロードされた複数のメソッドの中に適合するメソッドが複数存在する場合,コンパイラは個々の実パラメタと仮パラメタの間の適合の適切さを調べ,呼び出すメソッドを決定しようとしますが,次のような場合は呼び出すメソッドを決定できません.
オーバロードされたメソッドの中で他のメソッドよりも適切な適合を持つメソッドが存在しない.
オーバロードされたメソッドの中で,引数の順次位置ごとに他のメソッドよりも適切な適合を持つメソッドが異なる.
引数を正しい型で渡すことで翻訳エラーを避けることができます.型をあわせるには,一時変数を使用します. 適切な適合についての詳細は,“NetCOBOL for .NET ユーザーズガイド”の“適合”を参照してください.