91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Linq參數類型有哪些

發布時間:2021-08-10 17:57:57 來源:億速云 閱讀:115 作者:Leah 欄目:編程語言

這篇文章將為大家詳細講解有關Linq參數類型有哪些,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。

反射問題:遠離類型安全錯誤

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

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

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

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

通過Linq進行強類型反射

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

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

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

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

關于Linq參數類型有哪些就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

万安县| 潢川县| 施秉县| 固阳县| 樟树市| 南召县| 东海县| 江阴市| 安国市| 玉门市| 北碚区| 大同县| 金沙县| 扎赉特旗| 视频| 平乐县| 都安| 卫辉市| 榆中县| 海盐县| 扎赉特旗| 金华市| 建宁县| 连山| 吉林市| 遂昌县| 万年县| 平江县| 嘉义市| 陇西县| 旬邑县| 来宾市| 郑州市| 吴江市| 正定县| 岑巩县| 芦溪县| 南投县| 定安县| 怀安县| 肇庆市|