Error del compilador CS1946
Actualización: noviembre 2007
Mensaje de error
Una expresión de método anónimo no se puede convertir en un árbol de expresión.
An anonymous method expression cannot be converted to an expression tree.
Un método anónimo representa un conjunto de instrucciones, pero un árbol de expresión no debe contener una instrucción. Por lo tanto, un árbol de expresión no puede representar un método anónimo.
Para corregir este error
- Cambie el método anónimo a una expresión lambda.
Ejemplo
El ejemplo siguiente genera el error CS1946:
// cs1946.cs
using System;
using System.Linq.Expressions;
public delegate void D();
class Test
{
static void Main()
{
Expression<D> tree = delegate() { }; //CS1946
// Try using a lambda expression instead.
// Expression<D> tree = (x) => x + 1;
}
}