デリゲート '<delegatename>':<suberrorlist> のシグネチャと一致する、アクセス可能なメソッド '<procedurename>' がありません。

更新 : 2007 年 11 月

代入ステートメントは、プロシージャのアドレスをデリゲート変数に代入しますが、コンパイラは、シグネチャの一致するバージョンのプロシージャを見つけることができません。

コードでプロシージャのアドレスが使用されると、コンパイラは、デリゲートとパラメータ リストが一致するバージョンのプロシージャを見つけようとします。プロシージャに複数のオーバーロード バージョンが定義されている場合、コンパイラは、シグネチャが一致するバージョンを見つけようとします。詳細については、「オーバーロードの解決法」を参照してください。

コンパイラは、シグネチャの一致するバージョンのプロシージャを見つけられない場合に、このエラーを生成します。たとえば、プロシージャまたはデリゲートがジェネリックである場合や、渡された型引数が示すシグネチャが他のシグネチャに一致しない場合に、この状態が起こります。

Error ID: BC30950

このエラーを解決するには

  1. パラメータ リストが一致するようにプロシージャまたはデリゲートを再定義します。

    または

    プロシージャと一致するパラメータ リストを持つ新しいデリゲートを定義するか、デリゲートと一致するパラメータ リストを持つ新しいプロシージャを定義します。

  2. プロシージャまたはデリゲートがジェネリックである場合は、シグネチャが他のシグネチャと一致するような型引数をプロシージャまたはデリゲートに渡します。

参照

概念

デリゲートと AddressOf 演算子

オーバーロードの解決法

Visual Basic におけるジェネリック型

参照

AddressOf 演算子

Delegate ステートメント