Compiler Error CS1946

无法将匿名方法表达式转换为表达式树。

匿名方法表示一组语句,而表达式树不能包含任何语句。因此,匿名方法不能由表达式树表示。

更正此错误

  1. 将匿名方法更改为 lambda 表达式。

下面的示例生成 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;
        }
    }

请参阅

匿名方法(C# 编程指南)

表达式树(C# 和 Visual Basic)