Type 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
代表類型宣告:類別類型、介面類型、陣列類型、值類型、列舉類型、類型參數、泛型類型定義,以及開放式或封閉式的建構泛型類型。
public ref class Type abstract
public ref class Type abstract : System::Reflection::MemberInfo, System::Reflection::IReflect
public ref class Type abstract : System::Reflection::MemberInfo, System::Reflection::IReflect, System::Runtime::InteropServices::_Type
public abstract class Type
public abstract class Type : System.Reflection.MemberInfo, System.Reflection.IReflect
[System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)]
[System.Serializable]
public abstract class Type : System.Reflection.MemberInfo, System.Reflection.IReflect, System.Runtime.InteropServices._Type
[System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)]
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public abstract class Type : System.Reflection.MemberInfo, System.Reflection.IReflect, System.Runtime.InteropServices._Type
type Type = class
type Type = class
inherit MemberInfo
interface IReflect
[<System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)>]
[<System.Serializable>]
type Type = class
inherit MemberInfo
interface _Type
interface IReflect
[<System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.None)>]
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type Type = class
inherit MemberInfo
interface _Type
interface IReflect
Public MustInherit Class Type
Public MustInherit Class Type
Inherits MemberInfo
Implements IReflect
Public MustInherit Class Type
Inherits MemberInfo
Implements _Type, IReflect
- 繼承
-
Type
- 繼承
- 衍生
- 屬性
- 實作
範例
下列範例顯示的一些代表性功能 Type。 Visual Basic) 中的 C# typeof
運算子 (GetType
運算子是用來取得 Type 代表 的 String物件。 從這個 Type 物件中 GetMethod ,方法會用來取得 , MethodInfo 表示 String.Substring 採用起始位置和長度的多載。
為了識別多載簽章,程式代碼範例會建立暫存陣列,其中包含兩 Type 個物件,代表 int
Visual Basic) 中的 (Integer
。
程式代碼範例會使用 MethodInfo 在字串 「Hello, World!“ 上叫 Substring 用 方法,並顯示結果。
#using <System.dll>
using namespace System;
using namespace System::Reflection;
void main()
{
// Get a Type object representing the System.String type.
Type^ t = String::typeid;
MethodInfo^ substr = t->GetMethod("Substring",
gcnew array<Type^> { int::typeid, int::typeid });
Object^ result =
substr->Invoke("Hello, World!", gcnew array<Object^> { 7, 5 });
Console::WriteLine("{0} returned \"{1}\".", substr, result);
}
/* This code example produces the following output:
System.String Substring(Int32, Int32) returned "World".
*/
using System;
using System.Reflection;
class Example
{
static void Main()
{
Type t = typeof(String);
MethodInfo substr = t.GetMethod("Substring",
new Type[] { typeof(int), typeof(int) });
Object result =
substr.Invoke("Hello, World!", new Object[] { 7, 5 });
Console.WriteLine("{0} returned \"{1}\".", substr, result);
}
}
/* This code example produces the following output:
System.String Substring(Int32, Int32) returned "World".
*/
open System
let t = typeof<String>
let substr = t.GetMethod("Substring", [| typeof<int>; typeof<int> |])
let result = substr.Invoke("Hello, World!", [| 7; 5 |])
printfn $"{substr} returned \"{result}\"."
(* This code example produces the following output:
System.String Substring(Int32, Int32) returned "World".
*)
Imports System.Reflection
Module Example
Sub Main()
Dim t As Type = GetType(String)
Dim substr As MethodInfo = t.GetMethod("Substring", _
New Type() { GetType(Integer), GetType(Integer) })
Dim result As Object = _
substr.Invoke("Hello, World!", New Object() { 7, 5 })
Console.WriteLine("{0} returned ""{1}"".", substr, result)
End Sub
End Module
' This code example produces the following output:
'
'System.String Substring(Int32, Int32) returned "World".
備註
如需此 API 的詳細資訊,請參閱 Type 的補充 API 備註。
給實施者的注意事項
當您繼承自 Type
時,必須覆寫下列成員:
- Assembly
- AssemblyQualifiedName
- BaseType
- FullName
- GetAttributeFlagsImpl()
- GetConstructorImpl(BindingFlags, Binder, CallingConventions, Type[], ParameterModifier[])
- GetConstructors(BindingFlags)
- GetElementType()
- GetEvent(String, BindingFlags)
- GetEvents(BindingFlags)
- GetField(String, BindingFlags)
- GetFields(BindingFlags)
- GetInterface(String, Boolean)
- GetInterfaces()
- GetMethodImpl(String, BindingFlags, Binder, CallingConventions, Type[], ParameterModifier[])
- GetMethods(BindingFlags)
- GetNestedType(String, BindingFlags)
- GetNestedTypes(BindingFlags)
- GetProperties(BindingFlags)
- GetPropertyImpl(String, BindingFlags, Binder, Type, Type[], ParameterModifier[])
- GUID
- HasElementTypeImpl()
- InvokeMember(String, BindingFlags, Binder, Object, Object[], ParameterModifier[], CultureInfo, String[])
- IsArrayImpl()
- IsByRefImpl()
- IsCOMObjectImpl()
- IsPointerImpl()
- IsPrimitiveImpl()
- Module
- Namespace
- TypeHandle
- UnderlyingSystemType
- GetCustomAttributes(Boolean)
- GetCustomAttributes(Type, Boolean)
- IsDefined(Type, Boolean)
- Name
建構函式
Type() |
初始化 Type 類別的新執行個體。 |
欄位
Delimiter |
分隔 Type 的命名空間中的名稱。 此欄位為唯讀。 |
EmptyTypes |
表示 Type 類型的空陣列。 此欄位為唯讀。 |
FilterAttribute |
表示用在屬性 (Attribute) 上的成員篩選條件。 此欄位為唯讀。 |
FilterName |
表示用於名稱上的有區分大小寫的成員篩選條件。 此欄位為唯讀。 |
FilterNameIgnoreCase |
表示用在名稱上的不區分大小寫的成員篩選條件。 此欄位為唯讀。 |
Missing |
表示在 Type 資訊中的遺漏值。 此欄位為唯讀。 |
屬性
Assembly | |
AssemblyQualifiedName |
取得類型的組件限定名稱,包含載入 Type 的組件名稱。 |
Attributes |
取得與 Type 關聯的屬性。 |
BaseType |
取得目前 Type 所直接繼承的類型。 |
ContainsGenericParameters |
取得值,該值指出目前的 Type 物件是否有尚未被特定類型取代的類型參數。 |
CustomAttributes |
取得包含此成員之自訂屬性的集合。 (繼承來源 MemberInfo) |
DeclaringMethod |
如果目前的 MethodBase 表示泛型方法的型別參數,則取得表示宣告方法的 Type。 |
DeclaringType |
取得宣告目前巢狀類型或泛型型別參數的類型。 |
DefaultBinder |
取得預設繫結器 (Binder) 的參考,它會實作內部規則來選取由 InvokeMember(String, BindingFlags, Binder, Object, Object[], ParameterModifier[], CultureInfo, String[]) 呼叫的適當成員。 |
FullName |
取得類型的完整名稱 (包括其命名空間,但不包括其組件)。 |
GenericParameterAttributes |
取得一組 GenericParameterAttributes 旗標,敘述目前泛型類型參數的共變數與特殊條件約束。 |
GenericParameterPosition |
當 Type 物件表示泛型類型或泛型方法的類型參數時,在宣告參數的泛型類型或泛型方法之類型參數清單中,取得類型參數的位置。 |
GenericTypeArguments |
取得此類型之泛型類型引數的陣列。 |
GUID |
取得與 Type相關聯的 GUID。 |
HasElementType | |
IsAbstract |
取得值,指出 Type 是否為抽象並且必須被覆寫。 |
IsAnsiClass |
取得值,指出是否為 |
IsArray |
取得值,以表示類型是否為陣列。 |
IsAutoClass |
取得值,指出是否為 |
IsAutoLayout |
取得表示目前類型的欄位是否已由 Common Language Runtime 自動配置版面的值。 |
IsByRef |
取得值,指出 Type 是否以傳址方式傳遞。 |
IsByRefLike |
取得值,指出類型是否為 byref-like 結構。 |
IsClass |
取得值,表示 Type 是類別或委派,也就是非實值類型或介面。 |
IsCollectible |
取得指出此 MemberInfo 物件是否為可回收 AssemblyLoadContext 中保存之組件一部分的值。 (繼承來源 MemberInfo) |
IsCOMObject |
取得值,指出 Type 是否為 COM 物件。 |
IsConstructedGenericType |
取得值,指出這個物件是否表示建構的泛型類型。 您可以建立已建構之泛型類型的執行個體。 |
IsContextful |
取得值,指出在內容中是否可以裝載 Type。 |
IsEnum |
取得值,指出目前的 Type 是否表示列舉類型。 |
IsExplicitLayout |
取得表示目前類型的欄位是否已在明確指定之位移配置版面的值。 |
IsFunctionPointer |
取得值,這個值表示目前 Type 是否為函式指標。 |
IsGenericMethodParameter |
取得值,指出目前的 Type 是否在泛型方法的定義中代表型別參數。 |
IsGenericParameter |
取得值,指出目前的 Type 是否表示泛型類型或泛型方法定義中的類型參數。 |
IsGenericType |
取得值,指出目前類型是否為泛型類型。 |
IsGenericTypeDefinition |
取得值,指出目前的 Type 是否表示可用於建構其他泛型類型的泛型類型定義。 |
IsGenericTypeParameter |
取得值,指出目前的 Type 是否在泛型型別的定義中代表型別參數。 |
IsImport |
取得值,指出 Type 是否套用了 ComImportAttribute 屬性 (Attribute),亦即其是否從 COM 類型程式庫匯入。 |
IsInterface |
取得值,指出 Type 是否為介面;也就是說,不是類別或實值類型。 |
IsLayoutSequential |
取得表示目前類型的欄位是否已依為其定義或發出至中繼資料之順序,循序配置版面的值。 |
IsMarshalByRef |
取得值,指出 Type 是否以傳址方式封送處理。 |
IsNested |
取得值,表示目前的 Type 物件代表的類型之定義是否位於另一個類型的定義內部。 |
IsNestedAssembly |
取得值,指出 Type 是否為巢狀,並只在它自己的組件內為可見。 |
IsNestedFamANDAssem |
取得值,指出 Type 是否為巢狀,並只對同時屬於它自己家族和它自己組件的類別為可見。 |
IsNestedFamily |
取得值,指出 Type 是否為巢狀,並只在它自己的系列內為可見。 |
IsNestedFamORAssem |
取得值,指出 Type 是否為巢狀並只對屬於它自己家族或它自己組件的類別為可見。 |
IsNestedPrivate |
取得值,指出 Type 是否為巢狀並且宣告為私用。 |
IsNestedPublic |
取得值,指出類別是否為巢狀 (Nest) 並且宣告為公用 (Public)。 |
IsNotPublic |
取得值,指出 Type 是否未宣告為公用。 |
IsPointer |
取得值,指出 Type 是否為指標。 |
IsPrimitive |
取得值,指出 Type 是否為其中一個基本類型 (Primitive Type)。 |
IsPublic |
取得值,指出 Type 是否宣告為公用。 |
IsSealed |
取得值,指出 Type 是否宣告為密封。 |
IsSecurityCritical |
取得值,這個值表示目前類型在目前信任層級上是否為安全性關鍵或安全性安全關鍵,因而可以執行重要的作業。 |
IsSecuritySafeCritical |
取得值,這個值表示目前類型在目前信任層級上是否為安全性安全關鍵,也就是說,它是否能執行重要作業並由安全性透明的程式碼存取。 |
IsSecurityTransparent |
取得值,這個值表示目前類型在目前信任層級上是否為透明,因此無法執行重要作業。 |
IsSerializable |
已淘汰.
取得值,指出是否 Type 可串行化二進位。 |
IsSignatureType |
取得值,指出類型是否為特徵標記類型。 |
IsSpecialName |
取得值,表示類型是否具有需要特殊處理的名稱。 |
IsSZArray |
取得值,指出類型是否為陣列類型,且只能代表下限為零的一維陣列。 |
IsTypeDefinition |
取得值,指出類型是否為類型定義。 |
IsUnicodeClass |
取得值,指出是否為 |
IsUnmanagedFunctionPointer |
取得值,這個值表示目前 Type 是否為 Unmanaged 函式指標。 |
IsValueType |
取得值,指出 Type 是否為實值類型。 |
IsVariableBoundArray |
取得值,指出類型是否為陣列類型,且可代表多維陣列或任意下限的陣列。 |
IsVisible |
取得一個值,表示位於組件之外的程式碼是否能存取 Type。 |
MemberType |
取得一個 MemberTypes 值,代表這個成員是類型或巢狀類型。 |
MetadataToken |
取得值,這個值可識別中繼資料項目。 (繼承來源 MemberInfo) |
Module |
在已定義的目前 Type 中取得模組 (DLL)。 |
Name |
在衍生類別中覆寫時,取得目前類型的名稱。 |
Name |
取得目前成員的名稱。 (繼承來源 MemberInfo) |
Namespace |
取得 Type 的命名空間。 |
ReflectedType |
取得用來取得這個成員的類別物件。 |
StructLayoutAttribute |
取得描述目前類型配置的 StructLayoutAttribute。 |
TypeHandle |
取得目前 Type 的控制代碼。 |
TypeInitializer |
取得類型的初始設定式。 |
UnderlyingSystemType |
指示類型,該類型是由表示這個類型的 Common Language Runtime 所提供的。 |
方法
運算子
Equality(Type, Type) |
表示兩個 Type 物件是否相等。 |
Inequality(Type, Type) |
表示兩個 Type 物件是否不相等。 |
明確介面實作
_MemberInfo.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) |
將一組名稱對應至一組對應的分派識別項 (Dispatch Identifier)。 (繼承來源 MemberInfo) |
_MemberInfo.GetType() |
取得 Type 物件,表示 MemberInfo 類別。 (繼承來源 MemberInfo) |
_MemberInfo.GetTypeInfo(UInt32, UInt32, IntPtr) |
擷取物件的類型資訊,可以用來取得介面的類型資訊。 (繼承來源 MemberInfo) |
_MemberInfo.GetTypeInfoCount(UInt32) |
擷取物件提供的類型資訊介面數目 (0 或 1)。 (繼承來源 MemberInfo) |
_MemberInfo.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) |
提供物件所公開的屬性和方法的存取權。 (繼承來源 MemberInfo) |
_Type.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) |
將一組名稱對應至一組對應的分派識別項 (Dispatch Identifier)。 |
_Type.GetTypeInfo(UInt32, UInt32, IntPtr) |
擷取物件的類型資訊,可以用來取得介面的類型資訊。 |
_Type.GetTypeInfoCount(UInt32) |
擷取物件提供的類型資訊介面數目 (0 或 1)。 |
_Type.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) |
提供物件所公開的屬性和方法的存取權。 |
擴充方法
GetCustomAttribute(MemberInfo, Type) |
擷取指定型別的自訂屬性,此屬性套用至指定成員。 |
GetCustomAttribute(MemberInfo, Type, Boolean) |
擷取只訂型別的自訂屬性,此屬性套用至指定成員,並且可選擇性檢查該成員的祖系。 |
GetCustomAttribute<T>(MemberInfo) |
擷取指定型別的自訂屬性,此屬性套用至指定成員。 |
GetCustomAttribute<T>(MemberInfo, Boolean) |
擷取只訂型別的自訂屬性,此屬性套用至指定成員,並且可選擇性檢查該成員的祖系。 |
GetCustomAttributes(MemberInfo) |
擷取套用至指定成員的自訂屬性集合。 |
GetCustomAttributes(MemberInfo, Boolean) |
擷取自訂屬性集合,此集合套用至指定成員,並且可選擇性檢查該成員的祖系。 |
GetCustomAttributes(MemberInfo, Type) |
擷取指定型別的自訂屬性集合,此集合套用至指定成員。 |
GetCustomAttributes(MemberInfo, Type, Boolean) |
擷取指定型別的自訂屬性集合,此集合套用至指定成員,並且可選擇性檢查該成員的祖系。 |
GetCustomAttributes<T>(MemberInfo) |
擷取指定型別的自訂屬性集合,此集合套用至指定成員。 |
GetCustomAttributes<T>(MemberInfo, Boolean) |
擷取指定型別的自訂屬性集合,此集合套用至指定成員,並且可選擇性檢查該成員的祖系。 |
IsDefined(MemberInfo, Type) |
指出是否將所指定型別的自訂屬性套用至指定的成員。 |
IsDefined(MemberInfo, Type, Boolean) |
指出指定之型別的自訂屬性是否會套用至指定的成員,以及選擇性地套用到其上階。 |
GetTypeInfo(Type) |
傳回指定之型別的 TypeInfo 表示。 |
GetMetadataToken(MemberInfo) |
取得指定成員的中繼資料語彙基元 (如果有)。 |
HasMetadataToken(MemberInfo) |
傳回值,指出所指定成員是否有可用的中繼資料語彙基元。 |
GetRuntimeEvent(Type, String) |
擷取表示指定之事件的物件。 |
GetRuntimeEvents(Type) |
擷取集合,表示指定的型別所定義的所有事件。 |
GetRuntimeField(Type, String) |
擷取表示指定之欄位的物件。 |
GetRuntimeFields(Type) |
擷取集合,表示指定的型別所定義的所有欄位。 |
GetRuntimeMethod(Type, String, Type[]) |
擷取表示指定之方法的物件。 |
GetRuntimeMethods(Type) |
擷取集合,表示指定的型別所定義的所有方法。 |
GetRuntimeProperties(Type) |
擷取集合,表示指定的型別所定義的所有屬性。 |
GetRuntimeProperty(Type, String) |
擷取表示指定之屬性的物件。 |
GetConstructor(Type, Type[]) |
代表類型宣告:類別類型、介面類型、陣列類型、值類型、列舉類型、類型參數、泛型類型定義,以及開放式或封閉式的建構泛型類型。 |
GetConstructors(Type) |
代表類型宣告:類別類型、介面類型、陣列類型、值類型、列舉類型、類型參數、泛型類型定義,以及開放式或封閉式的建構泛型類型。 |
GetConstructors(Type, BindingFlags) |
代表類型宣告:類別類型、介面類型、陣列類型、值類型、列舉類型、類型參數、泛型類型定義,以及開放式或封閉式的建構泛型類型。 |
GetFields(Type, BindingFlags) |
代表類型宣告:類別類型、介面類型、陣列類型、值類型、列舉類型、類型參數、泛型類型定義,以及開放式或封閉式的建構泛型類型。 |
GetGenericArguments(Type) |
代表類型宣告:類別類型、介面類型、陣列類型、值類型、列舉類型、類型參數、泛型類型定義,以及開放式或封閉式的建構泛型類型。 |
GetInterfaces(Type) |
代表類型宣告:類別類型、介面類型、陣列類型、值類型、列舉類型、類型參數、泛型類型定義,以及開放式或封閉式的建構泛型類型。 |
GetMember(Type, String) |
代表類型宣告:類別類型、介面類型、陣列類型、值類型、列舉類型、類型參數、泛型類型定義,以及開放式或封閉式的建構泛型類型。 |
GetMember(Type, String, BindingFlags) |
代表類型宣告:類別類型、介面類型、陣列類型、值類型、列舉類型、類型參數、泛型類型定義,以及開放式或封閉式的建構泛型類型。 |
GetMembers(Type) |
代表類型宣告:類別類型、介面類型、陣列類型、值類型、列舉類型、類型參數、泛型類型定義,以及開放式或封閉式的建構泛型類型。 |
GetMethods(Type) |
代表類型宣告:類別類型、介面類型、陣列類型、值類型、列舉類型、類型參數、泛型類型定義,以及開放式或封閉式的建構泛型類型。 |
GetNestedType(Type, String, BindingFlags) |
代表類型宣告:類別類型、介面類型、陣列類型、值類型、列舉類型、類型參數、泛型類型定義,以及開放式或封閉式的建構泛型類型。 |
GetProperties(Type) |
代表類型宣告:類別類型、介面類型、陣列類型、值類型、列舉類型、類型參數、泛型類型定義,以及開放式或封閉式的建構泛型類型。 |
GetProperties(Type, BindingFlags) |
代表類型宣告:類別類型、介面類型、陣列類型、值類型、列舉類型、類型參數、泛型類型定義,以及開放式或封閉式的建構泛型類型。 |
GetProperty(Type, String, BindingFlags) |
代表類型宣告:類別類型、介面類型、陣列類型、值類型、列舉類型、類型參數、泛型類型定義,以及開放式或封閉式的建構泛型類型。 |
GetProperty(Type, String, Type) |
代表類型宣告:類別類型、介面類型、陣列類型、值類型、列舉類型、類型參數、泛型類型定義,以及開放式或封閉式的建構泛型類型。 |
GetProperty(Type, String, Type, Type[]) |
代表類型宣告:類別類型、介面類型、陣列類型、值類型、列舉類型、類型參數、泛型類型定義,以及開放式或封閉式的建構泛型類型。 |
IsAssignableFrom(Type, Type) |
代表類型宣告:類別類型、介面類型、陣列類型、值類型、列舉類型、類型參數、泛型類型定義,以及開放式或封閉式的建構泛型類型。 |
IsInstanceOfType(Type, Object) |
代表類型宣告:類別類型、介面類型、陣列類型、值類型、列舉類型、類型參數、泛型類型定義,以及開放式或封閉式的建構泛型類型。 |
適用於
執行緒安全性
此型別具備執行緒安全。