成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Linq參數(shù)類型分析

開發(fā) 后端
這里介紹您可指定的可選Linq參數(shù)類型將是您要調(diào)用的方法的Linq參數(shù)類型(如果存在),如果我想獲得無參數(shù)方法的MethodInfo。

Linq有很多值得學(xué)習(xí)的地方,這里我們主要介紹Linq參數(shù)類型,包括介紹通過Linq進(jìn)行強(qiáng)類型反射等方面。

大家都知道Linq引入了標(biāo)準(zhǔn)查詢操作符,從而使查詢成為C#語言中最重要的概念。但不知您是否意識到,Linq還可用于查詢外的其他用途。下面我將***探討Linq用于查詢外的其他領(lǐng)域。

反射問題:遠(yuǎn)離類型安全錯誤

至少就我自己而言,使用C#這種類型安全語言時,每當(dāng)按下Ctrl+Shift+B(或Shift+F6)鍵進(jìn)行編譯時,會有一種輕松和放心的感覺。我知道,由于使用錯誤的類型而產(chǎn)生的怪異且難于調(diào)試的運(yùn)行時錯誤,以及像“方法缺失”這種提示幾乎從未出現(xiàn)。但是使用反射時,如果我不小心,就會出現(xiàn)臭名昭著的TargetInvocationException和一些NullReferenceException之類的異常。下面正是我所遇到的:

  1. MethodInfo method = typeof(Mock).GetMethod("PublicMethodParameters",
    newType[]{ typeof(string), typeof(int) })); 

如果對Mock類應(yīng)用重構(gòu)以便重命名該方法,會發(fā)生什么情況呢?如果Linq參數(shù)類型發(fā)生更改,會發(fā)生什么情況呢?毫無疑問,會發(fā)生運(yùn)行時異常!如果采用一個使用大量反射的插入式靈活框架,這決不是一個小問題。由于害怕出錯而不敢應(yīng)用重構(gòu)(或者使其代價昂貴)必然會限制您改進(jìn)設(shè)計(jì)和完善代碼的能力。那么,試著替換魔力字符串(magic strings)和松散類型的Type數(shù)組將會如何呢?

  1. MethodInfo info = Reflector.Method<Mock, string, 
    int
    >((x, y, z) => x.PublicMethodParameters(y, z)); 

通過Linq進(jìn)行強(qiáng)類型反射

其工作原理是作為參數(shù)傳遞的λ表達(dá)式(就像前一版本.NET中的委托一樣)不一定要執(zhí)行。上面的代碼基本上構(gòu)造了一個可以調(diào)用類型上給定方法的λ表達(dá)式。聲明方法的目標(biāo)類型的類型就是Method<> static generic方法的***個類型參數(shù)。您可指定的可選Linq參數(shù)類型將是您要調(diào)用的方法的Linq參數(shù)類型(如果存在)。如果我想獲得無參數(shù)方法的MethodInfo,則表達(dá)式將是:

  1. MethodInfo info = Reflector.Method<Mock>(x => x.PublicMethodNoParameters()); 

這比您以前見到的任何λ表達(dá)式都典型。在λ表達(dá)式中,如果您需要傳遞附加參數(shù),則必須將所有內(nèi)容放到括號中(上例中的x、y和z)。用于屬性和字段的類型映射功能是相同的:

  1. PropertyInfo property = Reflector.Property<Mock>(x => x.PublicProperty);  
  2. FieldInfo field = Reflector.Field<Mock>(x => x.PublicField); 

【編輯推薦】

  1. LINQ to SQL Table淺談
  2. Linq語句問題的解決方法
  3. Ling to sql更新實(shí)體概述
  4. Linq實(shí)體繼承簡單描述
  5. Linq Library概述
責(zé)任編輯:佚名 來源: IT168
相關(guān)推薦

2009-09-10 14:21:58

LINQ匿名類型

2009-09-07 16:44:28

Linq String

2009-09-14 15:50:52

Linq匿名委托類型

2009-09-10 14:37:57

LINQ匿名類型

2009-09-14 10:09:26

LINQ查詢結(jié)果

2009-09-08 13:16:01

Linq to SQL

2009-09-09 17:02:05

LINQ Expres

2009-09-09 18:03:47

LINQ to SQL

2009-09-15 10:46:04

LINQ to SQL

2009-09-15 15:09:50

Linq本質(zhì)

2009-09-09 11:07:52

LINQ to SQL

2009-09-08 14:56:55

強(qiáng)類型DataContLinq to SQL

2009-09-17 11:35:40

Linq匿名類型

2009-09-11 10:16:07

Linq匿名類型

2009-09-08 17:01:54

Linq源元素

2009-09-10 17:53:50

LINQ是什么

2009-09-15 14:58:26

Linq查詢本質(zhì)

2009-09-16 10:48:32

LINQ查詢操作

2009-09-16 15:41:45

LINQ查詢XML文檔

2009-09-17 11:29:50

Linq擴(kuò)展方法
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 最新国产视频 | 伊人久久伊人 | 久久日韩精品一区二区三区 | 日本一区二区三区免费观看 | 精品久久久久久久久久 | 99热在线播放| 亚洲免费在线视频 | 精品一区二区三区在线观看 | 黄色一级大片在线免费看产 | 精久久| 午夜电影网站 | 久草久| 亚洲男女激情 | 91免费观看国产 | 亚洲一区电影 | 看一级黄色毛片 | 亚洲精品日韩综合观看成人91 | 黄色毛片免费看 | 国户精品久久久久久久久久久不卡 | 国产精品久久久久久模特 | 可以免费观看的av片 | 久久这里有精品 | 激情免费视频 | 亚洲一区二区电影网 | 性天堂网 | 久久久久国产一区二区三区 | 手机av在线 | 毛片99 | 久久久久久国产一区二区三区 | 精品国产乱码久久久久久88av | 99久视频 | 日韩一及片 | 一级黄在线观看 | 爱爱免费视频网站 | 亚洲一区二区免费视频 | 国产成人综合一区二区三区 | 亚洲成人av | 一级黄色片网址 | 91一区二区三区 | 久久久久久久久久一区二区 | av播播 |