C# Error
CS0845 – An expression tree lambda may not contain a coalescing operator with a null or default literal left-hand side
Reason for the Error & Solution
An expression tree lambda may not contain a coalescing operator with a null literal left-hand side.
Because null by itself does not have a type, the null coalescing operator cannot operate on it.
To correct this error
- Cast the null literal to an object.
Example
The following code generates 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;
}
}
}