コンパイラ エラー CS1946Compiler Error CS1946

匿名メソッド式を式のツリーに変換することはできません。An anonymous method expression cannot be converted to an expression tree.

匿名メソッドは一連のステートメントを表しますが、式ツリーにステートメントを含めることはできません。An anonymous method represents a set of statements but an expression tree must not contain a statement. したがって、匿名メソッドを式のツリーで表すことはできません。Therefore an anonymous method cannot be represented by an expression tree.

このエラーを修正するには、匿名メソッドをラムダ式に変更します。To correct this error, change the anonymous method to a lambda expression.

Example

次の例では CS1946 が生成されます。The following example generates 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;  
        }  
    }  

関連項目See also