コンパイラ エラー CS1940

更新 : 2007 年 11 月

エラー メッセージ

ソース型 '型' に対してクエリ パターンの複数の実装が見つかりました。'メソッド' の呼び出しがあいまいです。

このエラーは、クエリ メソッドの実装が複数定義されていて、クエリに対しどの実装を使用するのが最適かコンパイラが判断できない場合に発生します。次の例では、Select の両方のバージョンが入力パラメータとして int を受け取り、戻り値として int を使用するため、両方とも同じシグネチャを使用することになります。

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

  • メソッドごとに 1 つの実装のみ用意します。

使用例

次のコードは CS1940 を生成します。

// cs1940.cs
using System; //must include explicitly for types defined in 3.5
class Test
{
    public delegate int Dele(int x);
    int num = 0;
    public int Select(Func<int, int> d)
    {
        return d(this.num);
    }
    public int Select(Dele d) // CS1940
    {
        return d(this.num) + 1;
    }
    public static void Main()
    {
        var q = from x in new Test()
        select x;
    }
}

参照

概念

標準クエリ演算子の概要