Type.GetNestedType 方法

定義

讓特定類型在目前的 Type 內變成巢狀。

多載

GetNestedType(String)

搜尋具有指定名稱的公用巢狀類型。

GetNestedType(String, BindingFlags)

在衍生類別中覆寫時,使用指定的繫結條件約束搜尋指定的巢狀類型。

GetNestedType(String)

來源:
Type.cs
來源:
Type.cs
來源:
Type.cs

搜尋具有指定名稱的公用巢狀類型。

public:
 Type ^ GetNestedType(System::String ^ name);
public:
 virtual Type ^ GetNestedType(System::String ^ name);
public Type? GetNestedType (string name);
public Type GetNestedType (string name);
member this.GetNestedType : string -> Type
abstract member GetNestedType : string -> Type
override this.GetNestedType : string -> Type
Public Function GetNestedType (name As String) As Type

參數

name
String

包含要取得之巢狀類型名稱的字串。

傳回

物件,代表具有指定名稱的巢狀類型 (如有找到),否則為 null

實作

例外狀況

namenull

備註

name搜尋會區分大小寫。

使用 的巢狀類別 name 簡單名稱。 請勿將它限定為外部類別的名稱。 針對泛型巢狀類別,請使用受管理的名稱,也就是附加重音符號和泛型引數的數目。 例如,使用字串 「Inner'1」 取得 Visual Basic) Inner(Of T) 中的泛型巢狀類別 Inner<T> (。 請勿包含類型參數的語言特定語法。

下表顯示反映類型時,方法會傳 Get 回基類的成員。

成員類型 Static 非靜態
建構函式
欄位 可以。 欄位一律會依名稱與簽章隱藏。
事件 不適用 常見的類型系統規則是繼承與實作 屬性的方法相同。 反映會將屬性視為依名稱與簽章隱藏。 請參閱下面的附注 2。
方法 可以。 (虛擬和非虛擬) 的方法可以是依名稱隱藏或依名稱隱藏和簽章。
巢狀類型
屬性 不適用 常見的類型系統規則是繼承與實作 屬性的方法相同。 反映會將屬性視為依名稱與簽章隱藏。 請參閱下面的附注 2。
  1. 隱藏名稱與簽章會考慮簽章的所有部分,包括自訂修飾詞、傳回型別、參數類型、sentinels 和 Unmanaged 呼叫慣例。 這是二進位比較。

  2. 對於反映,屬性和事件會依名稱與簽章隱藏。 如果您的屬性同時具有基類中的 get 和 set 存取子,但衍生類別只有 get 存取子,則衍生類別屬性會隱藏基類屬性,而且您將無法存取基類上的 setter。

  3. 自訂屬性不是一般型別系統的一部分。

如果目前 Type 代表泛型型別或泛型方法定義中的型別參數,這個方法會搜尋類別條件約束的巢狀類型。

如果巢狀類型為泛型,這個方法會傳回其泛型型別定義。 即使封入泛型型別是封閉式建構型別,也是如此。

注意

如果目前 Type 代表 C#、Visual Basic 或 C++ 中定義的泛型型別,即使它們本身沒有泛型參數,其巢狀類型也是全部泛型。 這不一定是動態元件中定義的巢狀類型,也不一定是使用 Ilasm.exe (IL 組合器編譯)

如需巢狀泛型型別的相關資訊,以及從其泛型型別定義建構巢狀泛型型別的詳細資訊,請參閱 MakeGenericType

另請參閱

適用於

GetNestedType(String, BindingFlags)

來源:
Type.cs
來源:
Type.cs
來源:
Type.cs

在衍生類別中覆寫時,使用指定的繫結條件約束搜尋指定的巢狀類型。

public:
 abstract Type ^ GetNestedType(System::String ^ name, System::Reflection::BindingFlags bindingAttr);
public abstract Type? GetNestedType (string name, System.Reflection.BindingFlags bindingAttr);
public abstract Type GetNestedType (string name, System.Reflection.BindingFlags bindingAttr);
abstract member GetNestedType : string * System.Reflection.BindingFlags -> Type
Public MustOverride Function GetNestedType (name As String, bindingAttr As BindingFlags) As Type

參數

name
String

包含要取得之巢狀類型名稱的字串。

bindingAttr
BindingFlags

列舉值的位元組合,用來指定搜尋的執行方式。

-或-

要傳回 nullDefault

傳回

物件,代表符合指定之需求的巢狀類型 (如有找到),否則為 null

實作

例外狀況

namenull

備註

使用 的巢狀類別 name 簡單名稱。 請勿將它限定為外部類別的名稱。 針對泛型巢狀類別,請使用受管理的名稱,也就是附加重音符號和泛型參數的數目。 例如,使用字串 「Inner'1」 取得 Visual Basic) Inner(Of T) 中的泛型巢狀類別 Inner<T> (。 請勿包含類型參數的語言特定語法。

下列 BindingFlags 篩選旗標可用來定義要包含在搜尋中的巢狀類型:

這個方法只會傳回目前型別的巢狀類型。 它不會搜尋目前型別的基類。 若要尋找巢狀在基類中的類型,您必須逐步執行繼承階層,在每個層級呼叫 GetNestedType

BindingFlags.InstanceBindingFlags.Static 會被忽略。

BindingFlags.Public 使用 旗標或只有 BindingFlags.NonPublic 旗標呼叫這個方法會傳回指定的巢狀類型,而且不需要任何其他旗標。

如需相關資訊,請參閱 System.Reflection.BindingFlags

如果目前 Type 代表泛型型別或泛型方法定義中的型別參數,這個方法會搜尋類別條件約束的巢狀類型。

如果巢狀類型為泛型,這個方法會傳回其泛型型別定義。 即使封入泛型型別是封閉式建構型別,也是如此。

注意

如果目前 Type 代表 C#、Visual Basic 或 C++ 中定義的泛型型別,即使它們本身沒有泛型參數,其巢狀類型也是全部泛型。 這不一定是動態元件中定義的巢狀類型,也不一定是使用 Ilasm.exe (IL 組合器編譯)

如需巢狀泛型型別的相關資訊,以及從其泛型型別定義建構巢狀泛型型別的詳細資訊,請參閱 MakeGenericType

另請參閱

適用於