亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

表達式:使用API創建表達式樹(6)

2019-11-17 03:17:38
字體:
來源:轉載
供稿:網友

表達式:使用API創建表達式樹(6)

一、ConstantExPRession:表示具有常量值的表達式。因為表達式應用過程中,參數據多是 Expressions 類型,算是對常量值的一種包裝吧。  ConstantExpression使用比較簡單,如Expression constantExpr = Expression.Constant(100);二、MemberExpression:表示訪問字段或屬性。相對來說也是一個比較簡單的表達式了,主要是對 字段或屬性 的包裝

using System;using System.Collections.Generic;using System.Linq;using System.Linq.Expressions;namespace Consoleapplication2{    class Program    {        class MyUser        {            public string Name;            public int Age { get; set; }        }        static void Main(string[] args)        {            MyUser user = new MyUser { Name = "馬七", Age = 20 };            #region  字段實例調用            Console.WriteLine("當前用戶 姓名:{0} 年齡 {1} 歲", user.Name, user.Age);            MemberExpression mbExp = Expression.Field(Expression.Constant(user), "Name");            Console.WriteLine(mbExp.ToString());            Console.WriteLine(Expression.Lambda(mbExp).Compile().DynamicInvoke());        #endregion            //以上輸出            //value(ConsoleApplication2.Program+MyUser).Name            //馬七            #region  Lambda表達式            List<MyUser> users = new List<MyUser>();            users.Add(new MyUser { Name = "張三", Age = 20 });            users.Add(new MyUser { Name = "李四", Age = 23 });            users.Add(new MyUser { Name = "王五", Age = 36 });            users.Add(new MyUser { Name = "劉六", Age = 41 });            user = users.Where(s => s.Name == "張三").FirstOrDefault();            Console.WriteLine("當前用戶 姓名:{0} 年齡 {1} 歲", user.Name, user.Age);        #endregion            //以上輸出            //當前用戶 姓名:張三 年齡 20 歲            //**********************************            //組合如  s => s.Name == "張三"  的表達式            //**********************************            #region  Lambda表達式 使用字段            ParameterExpression paramExpr = Expression.Parameter(typeof(MyUser), "o");            MemberExpression namePropExpr = Expression.Field(paramExpr, "Name");  //字段            BinaryExpression binExp = Expression.Equal(namePropExpr, Expression.Constant("李四"));            LambdaExpression laExp = Expression.Lambda(binExp, paramExpr);            Func<MyUser, bool> func = (Func<MyUser, bool>)laExp.Compile();            user = users.Where(func).FirstOrDefault();            Console.WriteLine(binExp.ToString());            Console.WriteLine(laExp.ToString());            Console.WriteLine("當前用戶 姓名:{0} 年齡 {1} 歲", user.Name, user.Age);            #endregion            //以上輸出            //(o.Name == "李四")            //o => (o.Name == "李四")            //當前用戶 姓名:李四 年齡 23 歲            #region  Lambda表達式 使用屬性            namePropExpr = Expression.Property(paramExpr, "Age");            binExp = Expression.Equal(namePropExpr, Expression.Constant(36));            laExp = Expression.Lambda(binExp, paramExpr);            func = (Func<MyUser, bool>)laExp.Compile();            user = users.Where(func).FirstOrDefault();            Console.WriteLine(binExp.ToString());            Console.WriteLine(laExp.ToString());            Console.WriteLine("當前用戶 姓名:{0} 年齡 {1} 歲", user.Name, user.Age);            #endregion            //以上輸出            //(o.Age == 36)            //o => (o.Age == 36)            //當前用戶 姓名:王五 年齡 36 歲            Console.ReadLine();        }    }}
View Code

三、NewExpression :表示構造函數調用。 如果調用的類是實例類,這個就非常有用,特別是在調用方法表達式時,MethodCallExpression的第一個參數如果是實例類,這要用NewExpression來創建一個實例對象調用其方法,靜態類時,用null。使用時, 用Expression.New(類型)就可以創建了。

四、MethodCallExpression:表示對靜態方法或實例方法的調用。 這個用是比較多,也在這系列中用的多,就不單獨舉例。

五、UnaryExpression :表示包含一元運算符的表達式。如:

     // -100            UnaryExpression aiU1 = Expression.Negate(Expression.Constant(100));            Console.WriteLine(aiU1.ToString());            //Not(Ture)            UnaryExpression aiU2 = Expression.Not(Expression.Constant(true));            Console.WriteLine(aiU2.ToString());            //() => 123456            UnaryExpression aiU3 = Expression.Quote(Expression.Lambda( Expression.Constant(123456)));            Console.WriteLine(aiU3.ToString());            //(123456 As Nullable`1)            UnaryExpression aiU4 = Expression.TypeAs(Expression.Constant(123456), typeof(int?));            Console.WriteLine(aiU4.ToString());            //Convert(123456)            UnaryExpression aiU5 = Expression.Convert(Expression.Constant(123456), typeof(Int16));            Console.WriteLine(aiU5.ToString());            //+123456            UnaryExpression aiU6 = Expression.UnaryPlus(Expression.Constant(123456));            Console.WriteLine(aiU6.ToString());
View Code


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品久久久久久超碰| 国产精品福利小视频| 精品夜色国产国偷在线| 色老头一区二区三区| 亚洲国产精品成人精品| 国产精品成久久久久三级| 中文字幕免费国产精品| 日韩欧美一区视频| 欧美激情精品久久久久久黑人| 亚洲精品欧美日韩专区| 在线a欧美视频| 亚洲成人黄色在线观看| 久久成人精品一区二区三区| 日韩中文在线中文网三级| 欧美亚洲日本网站| 操91在线视频| 奇米成人av国产一区二区三区| 日韩欧美在线免费观看| 欧亚精品在线观看| 疯狂做受xxxx高潮欧美日本| 亚洲国产精品久久久久秋霞不卡| 久久精品国产免费观看| 国产日韩欧美日韩| 亚洲一区二区三区视频| 国产精品久久久久秋霞鲁丝| 亚洲成人av在线播放| 久久免费国产精品1| 久久国产精彩视频| 久久精品中文字幕一区| 欧美理论在线观看| 色综合久久88色综合天天看泰| 欧美成人午夜影院| 日韩国产欧美精品在线| 成人免费午夜电影| 久久精品久久久久久国产 免费| 日韩欧美aⅴ综合网站发布| 成人亚洲欧美一区二区三区| 日本精品va在线观看| 97av视频在线| 成人有码在线播放| 国产亚洲精品久久久久久| 成人性生交大片免费观看嘿嘿视频| 中文在线不卡视频| 97在线观看免费高清| 国产精品久久9| 久久久国产成人精品| 久久久久久久久久久国产| 亚洲国产欧美自拍| 国产mv免费观看入口亚洲| 精品网站999www| 国内免费精品永久在线视频| 欧美理论在线观看| 亚洲网站在线播放| 日韩中文字幕网| 亚洲第一页自拍| 精品国产老师黑色丝袜高跟鞋| 欧美日韩综合视频网址| 久久精品国产2020观看福利| 欧美丝袜美女中出在线| 色噜噜狠狠狠综合曰曰曰| 久久久久久久久久婷婷| 日韩精品视频中文在线观看| 精品久久中文字幕久久av| 中文字幕亚洲字幕| 欧美国产日韩精品| 国产精品爽爽爽爽爽爽在线观看| 欧美黑人国产人伦爽爽爽| 日韩中文字幕在线看| 国产欧美一区二区白浆黑人| 欧美大秀在线观看| 国产精品免费视频久久久| 久久久久久久国产精品视频| 久久久久久久久久亚洲| 日本亚洲欧美成人| 欧美视频在线视频| 欧美午夜丰满在线18影院| 欧美激情精品久久久| 亚洲国产欧美一区二区丝袜黑人| 欧美xxxx综合视频| 成人免费大片黄在线播放| 成人网在线视频| 久久精品视频网站| 国产一区视频在线播放| 亚洲成人网av| 51色欧美片视频在线观看| 国产欧美日韩综合精品| 2019中文字幕免费视频| 欧美野外wwwxxx| 亚洲国产欧美在线成人app| 欧美日韩国产一中文字不卡| 欧美裸体xxxxx| 久久久久久久久久久人体| 成人国产精品免费视频| 久久精品国产成人精品| 国产精品第10页| 欧美日韩亚洲视频| 97精品在线视频| 在线播放日韩精品| 国产成人在线视频| 亚洲精品一区二区三区不| 国产+成+人+亚洲欧洲| 亚洲级视频在线观看免费1级| 国产成人精品a视频一区www| 国产精品国产三级国产专播精品人| 亚洲男女自偷自拍图片另类| 欧美日韩精品国产| 日韩av综合网| 亚洲3p在线观看| 欧美专区第一页| 中文字幕日韩免费视频| 91免费高清视频| 亚洲色图美腿丝袜| 成人精品一区二区三区电影黑人| 久久久久久国产精品美女| 亚洲肉体裸体xxxx137| 日本a级片电影一区二区| 国产精品白嫩美女在线观看| 97久久精品人搡人人玩| 亚洲激情视频在线播放| 日本一区二区三区四区视频| 国产日韩精品在线观看| 国产成人精品优优av| 亚洲精品91美女久久久久久久| 欧美国产高跟鞋裸体秀xxxhd| 91久久嫩草影院一区二区| 欧美寡妇偷汉性猛交| 日韩中文字幕在线视频播放| 亚洲xxx大片| 亚洲女人被黑人巨大进入| 国产日韩av在线| 亚洲国产精品推荐| 91九色综合久久| 国产成人精品一区二区在线| 亚洲精品影视在线观看| 国产精品视频男人的天堂| 一区二区三区国产在线观看| 久久久亚洲成人| 国产98色在线| 在线日韩av观看| 亚洲福利视频久久| 亚洲黄色成人网| 亚洲一级黄色av| 国产高清视频一区三区| 视频在线观看一区二区| 国产亚洲一区二区在线| 国产精品第100页| 久久精品2019中文字幕| 国产日韩欧美综合| 亚洲国产精品久久久久久| 亚洲精品理论电影| 久久久久久久久中文字幕| 成人日韩av在线| 国产日韩在线看| 日韩中文在线不卡| 精品国产1区2区| 欧美大全免费观看电视剧大泉洋| 亚洲va电影大全| 国产成人精品免费久久久久| 97精品国产97久久久久久春色| 国产成人免费av电影| 国产精品igao视频| 97在线视频免费| 久久久午夜视频| 色诱女教师一区二区三区|