4

複数の割り当てを行う動的ラムダ式(テキストから解析)を作成しようとしています。個々の課題の作成はかなり簡単でしたが、私はそれらを組み合わせる方法に固執しています。したがって、私が達成しようとしていることは、次のようになります。

Action<Entity> action = (entity) => 
{ 
    entity.Property1 = "1"; 
    entity.Property2 = "2";
};

複数のExpression.Assign式を1つに結合する方法はありますか(Expression.Lambdaは1つの式のみを入力として受け取るため)?

-編集:明確にするために、私が書いたコードは単なる擬似コードだったので、タイプミス(現在は修正されています)は何も変更しません。私が今持っているコードは次のようなものです:

Expression parameter = Expression.Parameter(typeof(Entity), "param");
Expression firstProperty = Expression.Property(parameter, "Property1");
Expression first = Expression.Assign(firstProperty, "1");
Expression secondProperty = Expression.Property(parameter, "Property2");
Expression second = Expression.Assign(secondProperty, "2");
Expression final = [INSERT MAGIC HERE]
Action<Entity> action = Expression.Lambda<Action<Entity>>(final, entity).Complie();

プロパティ名は実際にはテキスト入力に由来し、割り当て式の数は2つに制限されていないことに注意してください。これは、デモンストレーションのみを目的としています。私の質問は、割り当て式を組み合わせることができる式がありますか、それともそれぞれに異なるラムダを作成する必要がありますか?

4

1 に答える 1

4

この魔法を試してください:

Expression.Block(first, second);
于 2012-05-07T14:47:23.263 に答える