ページの先頭行へ戻る
NetCOBOL for .NET V8.0 メッセージ集
FUJITSU Software

2.5.180 JMN5725I-S

@1@で指定したパラメタで呼出し可能なメソッドが複数存在するため,メソッド'@2@'を決定できません.
@1@を無効とします.

引数の説明

@1@:

INVOKE文またはメソッドの行内呼出し.

@2@:

エラーの原因となったメソッド名.

      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 ユーザーズガイド”の“適合”を参照してください.