Baca dalam bahasa Inggris

Bagikan melalui


Kesalahan Pengompilasi CS1938

Nama 'nama' tidak ada dalam cakupan di sebelah sisi kiri 'sama dengan'. Pertimbangkan untuk menukar ekspresi di kedua sisi 'sama dengan'.

Kata kunci equals adalah operator khusus yang digunakan dalam klausul join untuk menentukan kesetaraan antara dua ekspresi. Variabel rentang untuk urutan sumber sisi kiri berada dalam cakupan di sisi kiri yang sama, dan variabel rentang untuk sumber sisi kanan hanya dalam cakupan di sisi kiri yang sama. Anda dapat memverifikasi ini dengan bereksperimen dengan IntelliSense dalam contoh kode berikut.

Untuk memperbaiki kesalahan ini

  1. Tukar posisi dua variabel rentang seperti yang ditunjukkan pada baris komentar dalam contoh berikut:

Contoh

Kode berikut menghasilkan CS1938:

// cs1938.cs  
using System.Linq;  
class Test  
{  
    static void Main()  
    {  
        int[] sourceA = { 1, 2, 3, 4, 5 };  
        int[] sourceB = { 3, 4, 5, 6, 7 };  
  
        var query = from a in sourceA  
                    join b in sourceB on b equals a // CS1938  
                    // Try the following line instead.  
                    // join b in sourceB on a equals b  
                    select new { a, b };  
    }  
}  

Lihat juga