c# 以類名為參創(chuàng)建父類相同的類的實(shí)例代碼
以下為例:
Form1,F(xiàn)orm2,F(xiàn)orm3……繼承自Form,可以通過Form f=new Form1();等建立Form子類的實(shí)例,如果太多子類,希望通過傳遞一個(gè)參數(shù),比如子類類名就可以建立實(shí)例,有什么辦法?
方法一:利用反射
string str=“命名空間.Form1(Form2……)”; Type t=Type.GetType(str); Form f=Activator.CreateInstance(t);
這樣就可以實(shí)現(xiàn)想要的了,str為變量,當(dāng)然,傳參時(shí)需要加上命名空間
方法二:利用泛型
T CreateForem<T>() where T : Form, new()//這里的new用作約束 { return new T(); }
然后可以調(diào)用Form f=CreateForm<參數(shù)>();//參數(shù)為Form1,F(xiàn)orm2,F(xiàn)orm3等。
以上這篇c# 以類名為參創(chuàng)建父類相同的類的實(shí)例代碼就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
C#反射調(diào)用dll文件中的方法操作泛型與屬性字段
這篇文章介紹了C#反射調(diào)用dll文件中的方法操作泛型與屬性字段,文中通過示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-05-05C#讀取XML中元素和屬性值的實(shí)現(xiàn)代碼
用C#讀取xml有很多方式,這里我就先使用XmlDocument讀取Xml,用一段代碼遍歷所有元素,并打印student的所有屬性和子節(jié)點(diǎn)的值2013-04-04C#使用Socket實(shí)現(xiàn)心跳的方法示例
這篇文章主要介紹了C#使用Socket實(shí)現(xiàn)心跳的方法示例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-02-02Winform學(xué)生信息管理系統(tǒng)主頁(yè)面設(shè)計(jì)(2)
這篇文章主要為大家詳細(xì)介紹了Winform學(xué)生信息管理系統(tǒng)主頁(yè)面設(shè)計(jì)思路,感興趣的小伙伴們可以參考一下2016-05-05