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

首頁 > 開發 > 綜合 > 正文

實現運行時從字符串動態創建對象

2024-07-21 02:19:46
字體:
來源:轉載
供稿:網友
在運行時任意指定對象的創建類型,甚至是用表示類型的名字的字符串創建所需的對象,.net framwork的反射機制給我們帶來了解決問題的方法。這里,若只需要創建一般的對象,我們可以通過system.activator來實現,而較復雜的我們可以通過獲取構造方法來實現。

反射reflection是.net中重要機制,通過反射,可以在運行時獲得.net中每一個類型(包括類、結構、委派、接口、枚舉)的成員,包括方法、屬性、事件以及構造函數等,還可以獲得每個成員的名稱、限定符和參數等,有了反射,就可以對每一個類型了如指掌。如果獲得了構造函數的信息,就可以直接創建對象,即使這個對象的類型在編譯的時候還不知道。

/// <summary>
/// createnewcontrols 根據空間的名稱,類型字符串,大小、位置去動態的生成一個控件
/// </summary>
/// <param name="targetcontrol"> 控件加載到的容器</param>
/// <param name="ctlname">生成的控件實例名稱</param>
/// <param name="ctltype">生成的控件類型字符串如(textbox、button等)</param>
/// <param name="ctlsize">控件的大小</param>
/// <param name="ctllocation">控件的位置</param>
/// <returns>生成的控件實例</returns>
private control createnewcontrols(control.controlcollection targetcontrol,string ctlname,type ctltype, system.drawing.size ctlsize,system.drawing.point ctllocation)
{
control tocreate;
tocreate = (control)system.activator.createinstance(ctltype);
tocreate.name = ctlname;
tocreate.size = ctlsize;
tocreate.location = ctllocation;
targetcontrol.add(tocreate);

return tocreate;
}




size cbsize = new size(160,40);

point cbpoint = new point(64,206);

control c1 = createnewcontrols(this.controls,"control1",type.gettype("system.windows.forms.checkbox, system.windows.forms, version=1.0.5000.0, culture=neutral, publickeytoken=b77a5c561934e089"),cbsize,cbpoint);

c1.text =" check box";



.ne tframework 1.1上,type.gettype("system.windows.forms.checkbox, system.windows.forms,version=1.0.5000.0,culture=neutral, publickeytoken=b77a5c561934e089")。

我們如何取得所用windows.form程序集的版本和強名稱?可以用gettype(checkbox).assemblyqualifiedname這樣的語法,一旦得到了這些信息,我們就可以將這些信息用于其它任何控件,因為他們都來自于同一個版本windows.forms程序集。
國內最大的酷站演示中心!
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 梅河口市| 昌都县| 太保市| 田阳县| 敦煌市| 乌鲁木齐县| 瑞昌市| 康保县| 霍州市| 阿图什市| 新田县| 双牌县| 天台县| 兰州市| 泸溪县| 博客| 扎囊县| 汤阴县| 游戏| 蕉岭县| 寿阳县| 莲花县| 临沭县| 焦作市| 诸城市| 白朗县| 和田市| 武威市| 霍城县| 高雄县| 保亭| 广饶县| 丹巴县| 郑州市| 葫芦岛市| 泉州市| 湘西| 镇安县| 镇安县| 九寨沟县| 托里县|