Lezen in het Engels

Delen via


Compilerfout CS0837

De eerste operand van een operator 'is' of 'as' is mogelijk geen lambda-expressie, anonieme methode of methodegroep.

Lambda-expressies, anonieme methoden en methodegroepen kunnen niet worden gebruikt aan de linkerkant van is of als.

Deze fout corrigeren

  • Als de fout betrekking heeft op de is operator, moet u er rekening mee houden dat is een waarde en een type worden gebruikt en wordt aangegeven of de waarde in dat type kan worden gemaakt door een verwijzing, boksen of conversie uit te schakelen. Omdat lambdas geen waarden zijn en geen verwijzings-, boks- of uitboxingconversies hebben, zijn lambdas geen kandidaten voor is.

  • Als de code misbruikt as, is de correctie waarschijnlijk om deze te wijzigen in een cast.

Opmerking

In het volgende voorbeeld wordt CS0837 gegenereerd:

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