value is null
использует постоянный шаблон. Сопоставление с образцом было введено в C# 7, задолго после деревьев выражений, и не может (в настоящее время) использоваться в деревьях выражений. Возможно, что это будет реализовано в какой-то момент, но на данный момент это недействительно. Обратите внимание, что это только для деревьев выражений, а не лямбда-выражений, которые преобразуются в делегаты. Например:
using System;
using System.Linq.Expressions;
class Program
{
static void Main()
{
object x = null;
Func<bool> func = () => x is null; // Fine
Expression<Func<bool>> expression = () => x is null; // CS8122
}
}
Существуют различные ограничения кода в деревьях выражений. Например, вы не можете использовать операции Dynami c или литералы кортежей. Ограничение на сопоставление с образцом является еще одним примером этого.