Baca dalam bahasa Inggris

Bagikan melalui


Compiler Error CS1940

Beberapa implementasi pola kueri ditemukan untuk jenis sumber 'type'. Panggilan ambigu ke 'method'.

Kesalahan ini dihasilkan saat beberapa implementasi metode kueri ditentukan dan compiler tidak dapat membedakan mana yang terbaik untuk kueri itu. Dalam contoh berikut, kedua versi Select memiliki tanda tangan yang sama, karena keduanya menerimanya int sebagai parameter input dan memiliki int sebagai nilai pengembalian.

Untuk memperbaiki kesalahan ini

  1. Berikan hanya satu implementasi untuk setiap metode.

Contoh

Kode berikut menghasilkan 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;  
    }  
}  

Lihat juga