İngilizce dilinde oku

Aracılığıyla paylaş


Derleyici Hatası CS1938

'name' adı, 'equals' öğesinin sağ tarafındaki kapsamda değil. 'equals' öğesinin her iki tarafındaki ifadeleri değiştirmeyi göz önünde bulundurun.

equals anahtar sözcüğü, iki ifade arasındaki eşitliği belirlemek için yan tümcesinde kullanılan özel bir join işleçtir. Sol taraftaki kaynak dizisinin aralık değişkeni eşittir'in sol tarafındaki kapsamdadır ve sağ taraftaki kaynağın aralık değişkeni yalnızca eşittir öğesinin sol tarafındaki kapsam içindedir. Aşağıdaki kod örneğinde IntelliSense ile denemeler yaparak bunu doğrulayabilirsiniz.

Bu hatayı düzeltmek için

  1. Aşağıdaki örnekteki açıklama satırına gösterildiği gibi iki aralık değişkeninin konumunu değiştirin:

Örnek

Aşağıdaki kod CS1938 oluşturur:

// 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 };  
    }  
}  

Ayrıca bkz.