タグ

関連タグで絞り込む (1)

タグの絞り込みを解除

Expressionに関するJHashimotoのブックマーク (3)

  • 第2回 ラムダ式と型推論(3/3) - @IT

    using System; class Program { static void Output(Func<double> f) { Console.WriteLine("Output by double: {0}",f()); } // 新規追加メソッド static void Output(Func<int> f) { Console.WriteLine("Output by int: {0}", f()); } static void Main(string[] args) { Output(() => 123); // 出力:Output by int: 123 } } 見てのとおり、呼び出しのラムダ式は一切変更していないが、別のメソッドを呼び出すようになった。これは、ラムダ式がオーバーロードの解決に影響を与えているためである。ラムダ式が持つ型が、オーバーロードの解決メカニズムに影

    JHashimoto
    JHashimoto 2016/07/16
    "ラムダ式がオーバーロードの解決に影響を与えているためである。ラムダ式が持つ型が、オーバーロードの解決メカニズムに影響を与え、より適したメソッドを選択させたのである。"
  • 式ツリー (C# および Visual Basic)

    式ツリーには、コードがツリー形式で表示されます。各ノードは 1 つの式に対応しています。たとえば、メソッドの呼び出しや x < y のような二項演算などです。 式ツリーで表されるコードはコンパイルおよび実行できます。これによって、実行可能なコードの動的な変更、多様なデータベースの LINQ クエリの実行、および動的クエリの作成が可能になります。LINQ の式ツリーの詳細については、「方法: 式ツリーを使用して動的クエリをビルドする (C# および Visual Basic)」および「チュートリアル : IQueryable LINQ プロバイダーの作成」を参照してください。 また、式ツリーを動的言語ランタイム (DLR: Dynamic Language Runtime) に使用することで、動的言語と .NET Framework 間の相互運用性が実現し、コンパイラ ライターで Micro

    式ツリー (C# および Visual Basic)
    JHashimoto
    JHashimoto 2016/07/16
    “C# および Visual Basic コンパイラは、式形式のラムダ (つまり単一行のラムダ) からのみ式ツリーを生成できます。 ステートメント形式のラムダ (つまり複数行のラムダ) は解決できません。 ”
  • LINQ で動的に OR 検索するやつ - 鷲ノ巣

    Entity Framework なんかを使っていて、データを検索したいとき。 検索フォームからユーザーに検索条件を入力してもらって、それで OR 検索をしたいとなると、ちょっと面倒です。 もちろん、何も入力しなかった項目ではフィルタリングを行いません。 AND 検索だけなら、Where メソッドをチェーンさせて行けばいいのですが、OR 検索が絡むと、そう簡単にはいきません。 こういう場合は Expression Tree を頑張って組み立てなければいけないわけですが、やり方はこのへんを見て頂いてですね… LINQ文で動的にWhere句を組み立てるには?[3.5、C#、VB] - @IT Expressionを使った動的なOR文の生成 - Architect Life いや、いやいやいや。わけがわからないし面倒くさい。そんなのやってらんない。 もうちょっと簡単に、こんな感じでやりたいわけで

    LINQ で動的に OR 検索するやつ - 鷲ノ巣
  • 1