İngilizce dilinde oku

Aracılığıyla paylaş


Derleyici Hatası CS0837

'is' veya 'as' işlecinin ilk işleneni bir lambda ifadesi, anonim yöntem veya yöntem grubu olmayabilir.

Lambda ifadeleri, anonim yöntemler ve yöntem grupları, veyaöğesinin sol tarafında kullanılamayabilir.

Bu hatayı düzeltmek için

  • Hata işlecini is içeriyorsa, bir değer ve tür aldığını ve bir başvuru, kutulama veya kutulama dönüştürmesi ile bu türe değer yapılıp yapılamayacağını bildirdiğini unutmayın is . Lambdalar değer olmadığından ve başvuru, kutulama veya kutu açma dönüştürmeleri olmadığından, lambda'lar için isaday değildir.

  • Kod yanlış kullanılıyorsa as, düzeltme büyük olasılıkla bunu bir yayın olarak değiştirmektir.

Örnek

Aşağıdaki örnek CS0837 oluşturur:

C#
// cs0837.cs
namespace TestNamespace
{
    public delegate void Del();

    class Test
    {
        static int Main()
        {
            bool b1 = (() => { }) is Del;   // CS0837
            bool b2 = delegate() { } is Del;// CS0837
            Del d1 = () => { } as Del;      // CS0837  
            Del d2 = delegate() { } as Del; // CS0837
            return 1;
        }
    }
}