国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > .NET > 正文

解讀.Net基礎:學習反射中的動態創建對象_.Net教程

2024-07-10 12:51:25
字體:
來源:轉載
供稿:網友

推薦:談如何使用 Lambda 表達式做抽象代表
Lambda表達比代表定義和帶外方法定義的結合更清楚,且相關的額外工作只需要滿足語言定義即可。不過,它也有一些不足之處。如果某個方法的參數包含System.Delegate 這樣的抽象類型,用lambda表達式介紹特殊的問題:C#編譯器不能將lambda表達式轉換成還未明確

Assembly的CreateInstance有三個重載。

第一個參數需要是一個字符串表示的完整的類名。

第二個參數是一個bool類型,如果為true,表示對第一個參數不區分大小寫。

第三個影響執行搜索的方式的位屏蔽。此值是 System.Reflection.BindingFlags 中的位標志的組合。

// binder: 一個啟用綁定、參數類型強制、成員調用以及通過反射進行 MemberInfo 對象檢索的對象。如果 binder 為 null,則使用默認聯編程序。// args: Object 類型的數組,包含要傳遞給構造函數的參數。此參數數組在數量、順序和類型方面必須與要調用的構造函數的參數匹配。如果需要默認的構造函數,則 args 必須是空數組或 null。

// culture: 用于控制類型強制的 CultureInfo 的實例。如果這是 null,則使用當前線程的 CultureInfo。(例如,這對于將表示 1000 的 String 轉換為

Double 值是必需的,因為不同的區域性以不同的方式表示 1000。

// activationAttributes: 包含一個或多個可以參與激活的屬性的數組。通常為包含單個 System.Runtime.Remoting.Activation.UrlAttribute 對象的數組。

System.Runtime.Remoting.Activation.UrlAttribute 指定激活遠程對象所需的 URL。有關客戶端激活的對象的詳細說明,請參見客戶端激活。

Activator類的靜態方法CreateInstance。

CreateInstance的第一個參數說明是程序集的名稱,為null時表示當前程序集;第二個參數說明要創建的類型名稱。Activator.CreateInstance返回的是一個ObjectHandle對象,必須進行一次Unwrap()才能返回Object類型,進而可以強制轉換成我們需要的類型(本例中是MathClass)。ObjectHandle包含在System.Runtime.Remoting命名空間中,可見它是Remoting相關的,實際上ObjectHandle類只是一個對原類型進行了一個包裝以便進行封送。

無參構造:

有參構造:

動態調用 :

.使用InvokeMember調用方法

InvokeMember("方法名", BindingFlags.InvokeMethod, null,對象實例,方法參數);
靜態:InvokeMember("方法名", BindingFlags.InvokeMethod, null,.類型Type.,方法參數);
.MethodInfo.Invoke調用方法
MethodInfo mi = t.GetMethod("方法名"", BindingFlags.Instance | BindingFlags.Public);
mi.Invoke(對象實例, null);
靜態
MethodInfo mi1 = t.GetMethod("方法名"", BindingFlags.Static | BindingFlags.Public);
Mi1.Invoke(null, 方法參數 );
用反射可以達到最大程度上的多態

 

分享:淺析C# 2010命名和可選參數的新特性
1.命名參數允許調用者通過提供參數的名稱來為其賦值,這樣參數的位置就不在重要了。可選參數允許在定義時為某些參數賦值,在調用時可以忽略這些

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 广丰县| 深州市| 天等县| 高碑店市| 江陵县| 凤凰县| 乌拉特前旗| 常山县| 远安县| 家居| 宁波市| 沙湾县| 浦东新区| 太白县| 祥云县| 伊金霍洛旗| 金平| 烟台市| 普陀区| 襄城县| 昌江| 信宜市| 合阳县| 万山特区| 垫江县| 库尔勒市| 梓潼县| 湾仔区| 蒲城县| 江城| 德惠市| 丽江市| 曲水县| 高淳县| 清涧县| 建瓯市| 台安县| 林芝县| 宣恩县| 大港区| 亚东县|