Compartir a través de


Error del compilador CS0835

Actualización: noviembre 2007

Mensaje de error

No se puede convertir una expresión lambda en un árbol de expresión cuyo argumento de tipo 'tipo' no sea un tipo de delegado.
Cannot convert lambda to an expression tree whose type argument 'type' is not a delegate type.

Si una expresión lambda se convierte en árbol de expresión, dicho árbol debe tener un tipo delegado para su argumento. Además, la expresión lambda debe poder convertirse en el tipo delegado.

Para corregir este error

  • Cambie el parámetro de tipo de int a un tipo delegado, por ejemplo Func<int,int>.

Ejemplo

El ejemplo siguiente genera el error CS0835:

// cs0835.cs
using System;
using System.Linq;
using System.Linq.Expressions;

public class C
{
    public static int Main()
    {
        Expression<int> e = x => x + 1; // CS0835

        // Try the following line instead.
       // Expression<Func<int,int>> e2 = x => x + 1;

        return 1;
    }
}