共用方式為


編譯器錯誤 CS1940

更新:2007 年 11 月

錯誤訊息

找到來源型別 'type' 的多個查詢模式實作。模稜兩可的呼叫 'method'。

如果定義了多個查詢方法實作 (Implementation),而編譯器 (Compiler) 無法釐清哪個實作最適合用於查詢,則會產生這個錯誤。在下列範例中,因為兩個版本的 Select 都接受一個 int 做為輸入參數,而且具有 int 做為傳回值,所以它們具有相同的簽章 (Signature)。

若要更正這個錯誤

  • 每個方法只提供一個實作。

範例

下列程式碼會產生 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;
    }
}

請參閱

概念

標準查詢運算子概觀