Error del compilador CS0845

Actualización: noviembre 2007

Mensaje de error

Un elemento lambda de un árbol de expresión no puede contener un operador de incorporación con un literal nulo en la parte izquierda.
An expression tree lambda may not contain a coalescing operator with a null literal left-hand side.

Porque el literal nulo por sí mismo no tiene un tipo, el operador de incorporación no puede funcionar en él.

Para corregir este error

  • Convierta el literal nulo en un objeto.

Ejemplo

El código siguiente genera el error CS0845:

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

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            Expression<Func<object>> e = () => null ?? null; // CS0845
            // Try the following line instead.
            // Expression<Func<object>> e = () => (object)null ?? null;
        }
    }
}