エクスプレッションについてもう少し学ぶために、黄金の時間をとることにしました。私は非常に簡単な演習、つまり2つの数値を追加しようとしています。検索が難しいことが判明している例外に遭遇しました。
これが私のコードです
Expression<Func<int,int,int>> addExpr = (x, y) => x + y;
var p1 = Expression.Parameter(typeof(int), "p1");
var p2 = Expression.Parameter(typeof(int), "p2");
var lambda = Expression.Lambda<Func<int,int,int>>(addExpr, p1, p2); //<-here
var del = lambda.Compile();
var result = del(2,3); //expect 5
しかし、これはArgumentExceptionをスローしています:タイプ'System.Func`3 [System.Int32、System.Int32、System.Int32]'の式はリターンタイプ'System.Int32'には使用できません
上記の行で。私は何を間違えましたか?