C#通過反射創(chuàng)建自定義泛型
本文以實(shí)例形式講述了C#通過反射創(chuàng)建自定義泛型的實(shí)現(xiàn)方法,分享給大家供大家參考。具體如下:
比如有這樣一個泛型:Demo.GenericsSimple<T,TT> 我想要通過反射創(chuàng)建一個Demo.GenericsSimple<string,int>的實(shí)例可以通過下面的格式進(jìn)行創(chuàng)建:
System.Reflection.Assembly.GetExecutingAssembly().CreateInstance("命名空間.User`形參數(shù)量N[[1形參類型全名,形參類型所在的程 序集名稱],[2形參類型全名,形參類型所在的程序集名稱],[3形參類型全名,形參類型所在的程序集名稱]......N]")
實(shí)例代碼如下:
namespace Demo { public class GenericsSimple<T,TT> where T:class where TT:struct {} class Program { static void Main(string[] args) { var o = System.Reflection.Assembly.GetExecutingAssembly().CreateInstance("Demo.GenericsSimple`2[[System.String, mscorlib],[System.Int32, mscorlib]]"); Console.WriteLine("{0}",o==null?"null":o.GetType().FullName); Console.WriteLine("===end==="); Console.Read(); } } }
希望本文實(shí)例對大家的C#程序設(shè)計(jì)有所幫助。
相關(guān)文章
c# Invoke和BeginInvoke 區(qū)別分析
這篇文章主要介紹了c# Invoke和BeginInvoke 區(qū)別分析,需要的朋友可以參考下2014-10-10c#基礎(chǔ)知識---委托,匿名函數(shù),lambda
這篇文章主要介紹了c# 委托,匿名函數(shù),lambda的相關(guān)知識,文中講解非常細(xì)致,代碼幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下2020-06-06C#實(shí)現(xiàn)FTP文件下載及超時(shí)控制詳解
這篇文章主要為大家詳細(xì)介紹了C#實(shí)現(xiàn)FTP文件下載及超時(shí)控制的相關(guān)知識,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2024-03-03C#編程自學(xué)之?dāng)?shù)據(jù)類型和變量三
C#語言類型系統(tǒng)提出的一個核心概念裝箱(boxing)拆箱(unboxing)。裝箱和取消裝箱的概念是C#的類型系統(tǒng)的核心。它在“值類型”和“引用類型”之間的架起了一座橋梁,使得任何“值類型”的值都可以轉(zhuǎn)換為object類型的值,反過來轉(zhuǎn)換也可以。2015-10-10在C#里面給PPT文檔添加注釋的實(shí)現(xiàn)代碼
平常開會或者做總結(jié)報(bào)告的時(shí)候我們通常都會用到PowerPoint演示文稿,我們可以在單個幻燈片或者全部幻燈片里面添加注釋,這樣觀眾可以從注釋內(nèi)容里面獲取更多的相關(guān)信息,需要的朋友可以參考下2017-01-01WPF利用TabControl控件實(shí)現(xiàn)拖拽排序功能
在UI交互中,拖拽操作是一種非常簡單友好的交互,這篇文章主要為大家介紹了WPF如何利用TabControl控件實(shí)現(xiàn)拖拽排序功能,需要的小伙伴可以參考一下2023-10-10c#靜態(tài)方法和非靜態(tài)方法詳細(xì)介紹
這篇文章主要介紹了c#靜態(tài)方法和非靜態(tài)方法,需要的朋友可以參考下2014-02-02RSA密鑰--JAVA和C#的區(qū)別及聯(lián)系
這篇文章主要介紹了關(guān)于RSA密鑰事件JAVA和C#的區(qū)別及聯(lián)系,文章從RSA語法介紹開始展開詳細(xì)介紹了C#轉(zhuǎn)JAVA及JAVA轉(zhuǎn)C#,需要的小伙伴可以可以參考一下2021-10-10