コンパイラ エラー CS1940
ソース型 'type' に対してクエリ パターンの複数の実装が見つかりました。 'method' の呼び出しがあいまいです。
このエラーは、クエリ メソッドの実装が複数定義されていて、クエリに使用する最適な実装をコンパイラが判断できない場合に発生します。 次の例では、 Select
の両方のバージョンが入力パラメーターとして int
を受け取り、戻り値として int
を使用するため、両方とも同じシグネチャを使用することになります。
- メソッドごとに 1 つの実装のみ用意します。
次のコードでは CS1940 が生成されます。
C#
// 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;
}
}
GitHub で Microsoft と共同作業する
このコンテンツのソースは GitHub にあります。そこで、issue や pull request を作成および確認することもできます。 詳細については、共同作成者ガイドを参照してください。
.NET に関するフィードバック
.NET はオープンソース プロジェクトです。 フィードバックを提供するにはリンクを選択します。