C# 泛型方法中反射常用方法淺析
C# 泛型方法中反射常用方法使用的:因?yàn)楣舱Z(yǔ)言運(yùn)行庫(kù) (CLR) 能夠在運(yùn)行時(shí)訪問(wèn)泛型類型信息,所以可以使用反射獲取關(guān)于泛型類型的信息,方法與用于非泛型類型的方法相同。在 .NET Framework 2.0 中, Type 類增添了幾個(gè)新成員以啟用泛型類型的運(yùn)行時(shí)信息。System.Reflection.Emit 命名空間還包含支持泛型的新成員。有關(guān)泛型反射中使用的術(shù)語(yǔ)的固定條件列表,請(qǐng)參見IsGenericType 屬性備注。
C# 泛型方法中反射常用方法之System.Type成員
◆IsGenericType
如果類型為泛型,則返回 true。
◆GetGenericArguments
返回 Type 對(duì)象數(shù)組,這些對(duì)象表示為構(gòu)造類型提供的類型變量,或泛型類型定義的類型參數(shù)。
◆GetGenericTypeDefinition
返回當(dāng)前構(gòu)造類型的基礎(chǔ)泛型類型定義。
◆GetGenericParameterConstraints
返回表示當(dāng)前泛型類型參數(shù)約束的 Type 對(duì)象的數(shù)組。
◆ContainsGenericParameters
如果類型或其任意封閉類型或方法包含沒有被提供特定類型的類型參數(shù),則返回 true。
◆GenericParameterAttributes
獲取 GenericParameterAttributes 標(biāo)志的組合,這些標(biāo)志描述當(dāng)前泛型類型參數(shù)的特殊約束。
◆GenericParameterPosition
對(duì)于表示類型參數(shù)的 Type 對(duì)象,獲取類型參數(shù)在聲明該類型參數(shù)的泛型類型定義或泛型方法定義的類型參數(shù)列表中的位置。
◆IsGenericParameter
獲取一個(gè)值,該值指示當(dāng)前 Type 是表示泛型類型定義的類型參數(shù),還是泛型方法定義的類型參數(shù)。
◆IsGenericTypeDefinition
獲取一個(gè)值,該值指示當(dāng)前 Type 是否表示可以用來(lái)構(gòu)造其他泛型類型的泛型類型定義。如果類型表示泛型類型的定義,則返回 true。
◆DeclaringMethod
返回定義當(dāng)前泛型類型參數(shù)的泛型方法;如果類型參數(shù)不是由泛型方法定義的,則返回空值。
◆MakeGenericType
用類型數(shù)組的元素替代當(dāng)前泛型類型定義的類型參數(shù),并返回表示結(jié)果構(gòu)造類型的 Type 對(duì)象。
此外, MethodInfo 類中還添加了新成員以啟用泛型方法的運(yùn)行時(shí)信息。有關(guān)C# 泛型方法反射中使用的術(shù)語(yǔ)的固定條件列表,請(qǐng)參見 IsGenericMethod 屬性備注。
C# 泛型方法中反射常用方法之System.Reflection.MemberInfo成員
◆IsGenericMethod
如果方法為泛型,則返回 true。
◆GetGenericArguments
返回 Type 對(duì)象數(shù)組,這些對(duì)象表示構(gòu)造泛型方法的類型變量,或泛型方法定義的類型參數(shù)。
◆GetGenericMethodDefinition
返回當(dāng)前構(gòu)造方法的基礎(chǔ)泛型方法定義。
◆ContainsGenericParameters
如果方法或其任意封閉類型包含沒有被提供特定類型的任何類型參數(shù),則返回 true。
◆IsGenericMethodDefinition
如果當(dāng)前 MethodInfo 表示泛型方法的定義,則返回 true。
◆MakeGenericMethod
用類型數(shù)組的元素替代當(dāng)前泛型方法定義的類型參數(shù),并返回表示結(jié)果構(gòu)造方法的 MethodInfo 對(duì)象。
C# 泛型方法中反射常用方法就向你介紹到這里,希望對(duì)你了解和學(xué)習(xí)C# 泛型方法中反射常用方法有所幫助。
【編輯推薦】