泛型和反映 (C# 程式設計手冊)
由於 Common Language Runtime (CLR) 可在執行階段存取泛型型別資訊,因此您可以使用反映取得泛型型別的相關資訊,方法和取得非泛型型別的資訊相同。 如需詳細資訊,請參閱執行階段中的泛型 (C# 程式設計手冊)。
.NET Framework 2.0 中的 Type 類別中加入了數個新成員,使泛型型別也能產生執行階段資訊。 如需使用這些方法和屬性的詳細資訊,請參閱這些類別的文件。System.Reflection.Emit 命名空間也包含支援泛型的新成員。 請參閱 HOW TO:使用反映發出定義泛型型別。
如需泛型反映 (Reflection) 中所使用之詞彙的不區分條件清單,請參閱 IsGenericType 屬性備註。
System.Type 成員名稱 |
說明 |
---|---|
如果型別是泛型就傳回 true。 |
|
傳回代表提供給建構之型別的型別引數,或是泛型型別定義之型別參數的 Type 物件陣列。 |
|
傳回目前建構之型別的基礎泛型型別定義。 |
|
傳回 Type 物件陣列,表示目前泛型型別參數的條件約束。 |
|
如果型別或是其封入之任何型別或方法中,包含尚未提供之特定型別的型別參數,就傳回 true。 |
|
取得描述目前泛型型別參數之特殊條件約束的 GenericParameterAttributes 旗標組合。 |
|
針對代表型別參數的 Type 物件,取得宣告型別參數之泛型型別定義或泛型方法定義中,型別參數清單內的型別參數位置。 |
|
取得指出目前 Type 是否表示泛型型別或方法定義之型別參數的值。 |
|
取得指出目前 Type 是否代表泛型型別定義,以便建構其他泛型型別的值。 如果型別代表泛型型別的定義,就傳回 true。 |
|
傳回定義目前泛型型別參數的泛型方法,如果泛型方法並未定義,型別參數就是 null。 |
|
取代目前泛型型別定義之型別參數的型別陣列項目,並傳回代表產生之建構型別的 Type 物件。 |
此外,MethodInfo 類別中會加入新成員,使泛型方法也能產生執行階段資訊。 請參閱不區分條件之清單的 IsGenericMethod 屬性備註,以得知用來反映泛型方法的詞彙。
System.Reflection.MemberInfo 成員名稱 |
說明 |
---|---|
如果方法是泛型就傳回 true。 |
|
傳回 Type 物件陣列,以代表建構之泛型方法的型別引數或泛型方法定義的型別參數。 |
|
傳回目前建構之方法的基礎泛型方法定義。 |
|
如果方法或是其封入之任何型別中包含尚未提供之特定型別的型別參數,就傳回 true。 |
|
如果目前 MethodInfo 代表泛型方法的定義就傳回 true。 |
|
取代目前泛型方法定義之型別參數的型別陣列項目,並傳回代表產生之建構方法的 MethodInfo 物件。 |