3
A
答えて
2
public class Foo
{
public Bar Bar { get; set; }
}
public class Bar
{
public string Fizz { get; set; }
}
private Expression<Func<Bar, bool>> BarExp()
{
return b => b.Fizz == "fizz";
}
private Expression<Func<Foo, bool>> BarToFoo(Expression<Func<Bar, bool>> barExp)
{
Expression<Func<Foo, Bar>> barMemberAccessExpression = foo => foo.Bar;
var fooParam = Expression.Parameter(typeof(Foo), "foo");
var invokeExpression = Expression.Invoke(
barExp,
Expression.Invoke(barMemberAccessExpression, fooParam)
);
var result = Expression.Lambda<Func<Foo, bool>>(invokeExpression, fooParam);
return result;
//Expression<Func<Foo, bool>> result =
// foo => barExp.Compile().Invoke(foo.Bar);
//return result;
}
[Test]
public void TestBarToFoo()
{
var fooInstance = new Foo { Bar = new Bar() { Fizz = "fizz" } };
var barExpr = this.BarExp();
Console.WriteLine(
barExpr.Compile().Invoke(fooInstance.Bar)); // = True
Console.WriteLine(
this.BarToFoo(barExpr).Compile().Invoke(fooInstance)); // = True
}
関連する問題
- 1. は、私はそのような何かを達成しようとしているコールバック関数
- 2. 変数名が正しくないときに私のJavaScriptを校正して教えてもらうにはどうすればよいですか?
- 3. 私は、次のレイアウトを達成しようとしている
- 4. 私はこれを達成しようとしています
- 5. は私が達成しようとしている何のNSNumber
- 6. のlog4j、私はそれがサポートされているかわからないのlog4jでの構成に到達しようとしている
- 7. は、他のオーディオ私が達成しようとしているものの
- 8. 私はのように見える私の入力データに変換しようとしている行
- 9. は、どのように私にはわからないXamarin.Forms
- 10. 私はこのようなものを作成しようとしている
- 11. ジャンゴ - get_by_natural_keyは()私は、ユーザーのログを作成しようとしている正確に3つの引数(2は、与えられた)
- 12. は、どのように私は、私はすでにしようとしている変数
- 13. PHPはどのように「動的」変数を正確に達成していますか?私は今日、次のコードをテストしたとき
- 14. は、私はそのような何かをしようとしているSRC
- 15. 私はのようなものを変換したい
- 16. セットブートストラップモーダル内部のボタンにフォーカスそれは私には、次の達成しようとしています
- 17. は、どのように私は知っていますし、どのように私はそれを
- 18. strtodは私の引数をどのように変換しますか?
- 19. のfile_get_contentsは私が達成しようとしているどのブラウザ
- 20. このコードはpython2.7でのみ動作しますか?私はちょうどそれがマップ()関数は、それはそれは私がちょうど更新され、今すべてのヘルプ:)</p> <p>に感謝を働いている理由が、少なくとも私にはわからない、正しく実行しないように引き起こしていたものであったものを考え出し
- 21. ルートは、私は次のことを達成しようとしている
- 22. CDIは、私はGlassfishの3.1 CDIを評価しようとしていると私は私のコードを分割しようとしているとき、私は、それがうまく動作させるために達成しているにもかかわらず、エラー「WELD-001408不満の依存関係」
- 23. 私はこのようになり、「レーダー」のようなものを作成しようとしています
- 24. Javascriptを私は単にこのような何かを達成しようとしていますURL
- 25. 私は私がやろうとしていますどのような変数
- 26. 私は私はそれを使用しようとしていますサブでのMsgBoxでそれを印刷することができますように成功し、このグローバル文字列変数を作成しているように見える
- 27. 可変引数テンプレートは、私はそれがこのように、別のクラスのテンプレート引数だ転送ジェネリッククラステンプレートを実装しようとしている
- 28. 私は次のように私もそれは私のhtmlファイルにリンクされているGoogleのフォントを使用しようとしています
- 29. のdivは、私はこのような斜めのレイアウトを達成しようとしている側
- 30. LESS - 私はポジティブにしてlesscssの負の変数を変換しようとしている正
w/oコンパイルしないでください。 –
コンパイルなし:私の編集を参照してください... btw:素敵な質問。 – ulrichb
'Assert.Equal(expectedExp()、BarToFoo(barExpr));' == '期待:f =>(f.Bar.Fizz ==" fizz ");実際:foo =>呼び出し(b =>(b.Fizz == "fizz")、呼び出し(foo => foo.Bar、foo)) '。実際に私が探しているものではありません(それはもはや必要ありませんが、とにかくこれを理解するのは楽しいでしょう)。 –