欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
利用C#將Lambda表達式轉化成Expression樹(shù)

Lambda表達式不僅可以用來(lái)創(chuàng )建委托實(shí)例,C#編譯器也能夠將它們轉換成表達式樹(shù)。我們可以通過(guò)編譯器把Lambda表達式轉換成一個(gè)表達式樹(shù),并創(chuàng )建一個(gè)Expression<TDelegate>的一個(gè)實(shí)例。

代碼演示1

using System;

using System.Linq.Expressions; 

namespace LambdaSample08

{

    class Program

    {

        static void Main(string[]args)

        {

            //將Lambda表達式轉換為Expression<T>表達式樹(shù)

            //Expression不是可執行代碼

            Expression<Func<int, int, int>>expression = (a, b) => a + b;

            Console.WriteLine(expression);

            //獲取Lambda表達式的主體

            BinaryExpressionbody = expression.Body as BinaryExpression;

            Console.WriteLine(body);

            //獲取Lambda表達式的參數

            ParameterExpressionleft = body.Left as ParameterExpression;

            ParameterExpressionright = body.Right as ParameterExpression;

            Console.WriteLine("param1:{0}", expression.Parameters[0]);

            Console.WriteLine("param2:{0}", expression.Parameters[1]);

            Console.WriteLine("left body of expression:{0}",left.Name);

            Console.WriteLine("NodeType:{0}", body.NodeType);

            Console.WriteLine("right body of expression:{0}",right.Name);

            //將表達式樹(shù)轉換成委托并執行

            Func<int, int, int> addDelegate = expression.Compile();

            Console.WriteLine(addDelegate(10,16));

        }

    }

}

見(jiàn)代碼:LambdaSample08.cs

代碼演示2

using System;

using System.Linq.Expressions; 

namespace LambdaSample10

{

    class Program

    {

        static void Main(string[] args)

        {

           //表示 -a

           ParameterExpression a = Expression.Parameter(typeof(int), "a");

           UnaryExpression body = Expression.Negate(a);

           Expression<Func<int, int>> d = Expression.Lambda<Func<int, int>>(body, a);

           Func<int,int> f = d.Compile();

           Console.WriteLine(d.Body);

           Console.WriteLine(f(5));

        }

    }

}

見(jiàn)代碼:LambdaSample10.cs

演示代碼3

using System;

using System.Linq.Expressions; 

namespace LambdaSample11

{

    class Program

    {

        privatestatic voidMain(string[] args)

        {

            //表示 a+2*b

            ParameterExpressiona = Expression.Parameter(typeof(int), "a");

            ParameterExpressionb = Expression.Parameter(typeof(int), "b");

            ConstantExpressionc = Expression.Constant(2);

            BinaryExpressionbe1 = Expression.Multiply(c, b);

            BinaryExpressionbe2 = Expression.Add(a, be1);

            Expression<Func<int, int, int>> lamb= Expression.Lambda<Func<int, int, int>>(be2,a,b);

            Func<int, int, int> f = lamb.Compile();

            Console.WriteLine(lamb);

            Console.WriteLine(f(10,20));

        }

    }

}

見(jiàn)代碼:LambdaSample11.cs

演示代碼4

using System;

using System.Linq.Expressions; 

namespace LambdaSample09

{

    class Program

    {

        static void Main(string[]args)

        {

            //創(chuàng )建一個(gè)表達式樹(shù)中的參數,作為一個(gè)結點(diǎn),這里是最下層的結點(diǎn)

            ParameterExpressiona = Expression.Parameter(typeof(int), "i");

            ParameterExpressionb = Expression.Parameter(typeof(int), "j");

            BinaryExpressionbe = Expression.Multiply(a, b);

            ParameterExpressionc = Expression.Parameter(typeof(int), "w");

            ParameterExpressiond = Expression.Parameter(typeof(int), "x");

            BinaryExpressionbe1 = Expression.Multiply(c, d);

            //運算兩個(gè)中級結點(diǎn),產(chǎn)生終結點(diǎn)

            BinaryExpressionsu = Expression.Add(be, be1);

            Expression<Func<int, int, int, int, int>>lambda = Expression.Lambda<Func<int, int, int, int, int>>(su,a, b,

                                                                                                               c, d);

            Console.WriteLine(lambda);

            //將表達式樹(shù)描述的Lambda表達式,編譯為可執行代碼,并生成該Lambda表達式的委托

            Func<int, int, int, int, int> f = lambda.Compile();

            Console.WriteLine(f(1,1, 1, 1));

        }

    }

}


通過(guò)微信學(xué)習的知識只能是碎片化的知識,作為新時(shí)代的我們希望能夠構建自己的知識結構,使我們的知識體系化,系統化,以后在遇到碎片化的知識,我們做的只是融合到自己的知識結構中,故我們將推出“與LSGO一起學(xué)”系列課程,幫助大家來(lái)構建知識框架,初步規劃有:

  1. “與LSGO一起學(xué)C++”;

  2. “與LSGO一起學(xué)C#”;

  3. LSGO一起學(xué)Matlab”;

  4. “與LSGO一起學(xué)數據結構”;

  5. “與LSGO一起學(xué)設計模式”;

  6. “與LSGO一起學(xué)可視化建模語(yǔ)言(UML)”;

  7. “與LSGO一起學(xué)線(xiàn)性代數”;

  8. “與LSGO一起學(xué)高等數學(xué)”

  9. “與LSGO一起學(xué)概率論與數理統計”;

  10. “與LSGO一起學(xué)抽象代數;

  11. “與LSGO一起學(xué)點(diǎn)集拓撲”

  12. “與LSGO一起學(xué)數字圖像處理”;

  13. “與LSGO一起學(xué)智能計算”;

如果對這些內容感興趣,可以一起來(lái)學(xué)習討論。

我們的官網(wǎng): www.lsgogroup.com

本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
c#編程指南(二) LINQ表達式 (LINQ Expression)
C# Lambda表達式詳解,及Lambda表達式樹(shù)的創(chuàng )建
LINQ與DLR的Expression tree(5):用lambda表達式表示常見(jiàn)控制結構 (轉 rednaxelafx.javaeye.com)
Linq之Expression進(jìn)階
由淺入深表達式樹(shù)(一)
打造自己的LINQ Provider(上):Expression Tree揭秘
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久