İngilizce dilinde oku

Aracılığıyla paylaş


Derleyici Hatası CS1937

'name' adı, 'equals' öğesinin sol 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 örnek CS1937 oluşturur.

// cs1937.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 // CS1937  
                    // Try the following line instead.  
                    //join b in sourceB on a equals b  
                    select new { a, b };  
    }  
}  

Sol tarafa genellikle "dış" taraf, sağ tarafa ise genellikle "iç" taraf denir.

Ayrıca bkz.