Errore del compilatore CS0835

Aggiornamento: novembre 2007

Messaggio di errore

Impossibile convertire un'espressione lambda in una struttura ad albero dell'espressione in cui l'argomento 'tipo' del tipo non è un tipo delegato.
Cannot convert lambda to an expression tree whose type argument 'type' is not a delegate type.

Se un'espressione lambda viene convertita in una struttura ad albero dell'espressione, questa deve avere un tipo delegato per l'argomento. Inoltre, l'espressione lambda deve essere convertibile nel tipo delegato.

Per correggere l'errore

  • Cambiare il tipo di parametro da int in un tipo delegato, ad esempio Func<int,int>.

Esempio

Nell'esempio seguente viene generato l'errore 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;
    }
}