Type 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
表示类型声明:类类型、接口类型、数组类型、值类型、枚举类型、类型参数、泛型类型定义,以及开放或封闭构造的泛型类型。
public ref class Type abstractpublic ref class Type abstract : System::Reflection::MemberInfo, System::Reflection::IReflectpublic ref class Type abstract : System::Reflection::MemberInfo, System::Reflection::IReflect, System::Runtime::InteropServices::_Typepublic abstract class Typepublic 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._Typetype Type = classtype 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 IReflectPublic MustInherit Class TypePublic MustInherit Class Type
Inherits MemberInfo
Implements IReflectPublic MustInherit Class Type
Inherits MemberInfo
Implements _Type, IReflect- 继承
- 
				Type
- 继承
- 派生
- 属性
- 实现
示例
以下示例演示 的 Type一些代表性功能。 Visual Basic) GetType 中的 C# typeof 运算符 (运算符用于获取Type表示 String的对象。 从此 Type 对象中 GetMethod ,方法用于获取表示 MethodInfo 采用起始位置和长度的 String.Substring 重载的 。
为了标识重载签名,该代码示例创建一个临时数组,其中包含两 Type 个对象,表示 int Visual Basic) 中的 (Integer 。
代码示例使用 MethodInfo 调用 Substring 字符串“Hello, World!”上的 方法,并显示结果。
#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 | 表示用在特性上的成员筛选器。 此字段为只读。 | 
| FilterName | 表示用于名称的区分大小写的成员筛选器。 此字段为只读。 | 
| FilterNameIgnoreCase | 表示用于名称的不区分大小写的成员筛选器。 此字段为只读。 | 
| Missing | 表示 Type 信息中的缺少值。 此字段为只读。 | 
属性
| Assembly | |
| AssemblyQualifiedName | 获取类型的程序集限定名,其中包括从中加载 Type 的程序集的名称。 | 
| Attributes | 获取与 Type 关联的属性。 | 
| BaseType | 获取当前 Type 直接从中继承的类型。 | 
| ContainsGenericParameters | 获取一个值,该值指示当前 Type 对象是否具有尚未被特定类型替代的类型参数。 | 
| CustomAttributes | 获取包含此成员自定义属性的集合。(继承自 MemberInfo) | 
| DeclaringMethod | 获取一个表示声明方法的 MethodBase(如果当前 Type 表示泛型方法的一个类型参数)。 | 
| DeclaringType | 获取用来声明当前的嵌套类型或泛型类型参数的类型。 | 
| DefaultBinder | 获取默认联编程序的引用,该程序实现的内部规则用于选择由 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 | 获取指示当前类型的字段是否由公共语言运行时自动放置的值。 | 
| IsByRef | 获取一个值,该值指示 Type 是否由引用传递。 | 
| IsByRefLike | 获取一个值,该值指示类型是否是与 byref 类似的结构。 | 
| 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 属性,如果应用了该属性,则表示它是从 COM 类型库导入的。 | 
| IsInterface | 获取一个值,通过该值指示 Type 是否是一个接口;即,不是类或值类型。 | 
| IsLayoutSequential | 获取指示当前类型的字段是否按顺序(定义顺序或发送到元数据的顺序)放置的值。 | 
| IsMarshalByRef | 获取一个值,该值指示 Type 是否按引用进行封送。 | 
| IsNested | 获取一个指示当前 Type 对象是否表示其定义嵌套在另一个类型的定义之内的类型的值。 | 
| IsNestedAssembly | 获取一个值,通过该值指示 Type 是否是嵌套的并且只能在它自己的程序集内可见。 | 
| IsNestedFamANDAssem | 获取一个值,通过该值指示 Type 是否是嵌套的并且只对同时属于自己家族和自己程序集的类可见。 | 
| IsNestedFamily | 获取一个值,通过该值指示 Type 是否是嵌套的并且只能在它自己的家族内可见。 | 
| IsNestedFamORAssem | 获取一个值,通过该值指示 Type 是否是嵌套的并且只对属于它自己的家族或属于它自己的程序集的类可见。 | 
| IsNestedPrivate | 获取一个值,通过该值指示 Type 是否是嵌套的并声明为私有。 | 
| IsNestedPublic | 获取一个值,通过该值指示类是否是嵌套的并且声明为公共的。 | 
| IsNotPublic | 获取一个值,该值指示 Type 是否声明为公共类型。 | 
| IsPointer | 获取一个值,通过该值指示 Type 是否为指针。 | 
| IsPrimitive | 获取一个值,通过该值指示 Type 是否为基元类型之一。 | 
| IsPublic | 获取一个值,该值指示 Type 是否声明为公共类型。 | 
| IsSealed | 获取一个值,该值指示 Type 是否声明为密封的。 | 
| IsSecurityCritical | 获取一个值,该值指示当前的类型在当前信任级别上是安全关键的还是安全可靠关键的,并因此可以执行关键操作。 | 
| IsSecuritySafeCritical | 获取一个值,该值指示当前类型在当前信任级别上是否是安全可靠关键的;即它是否可以执行关键操作并可以由透明代码访问。 | 
| IsSecurityTransparent | 获取一个值,该值指示当前类型在当前信任级别上是否是透明的而无法执行关键操作。 | 
| IsSerializable | 
				已过时.
			 获取一个值, Type 该值指示 是否可序列化二进制。 | 
| IsSignatureType | 获取一个值,该值指示类型是否是签名类型。 | 
| IsSpecialName | 获取一个值,该值指示该类型是否具有需要特殊处理的名称。 | 
| IsSZArray | 获取一个值,该值指示类型是否是仅可表示下限为零的一维数组的数组类型。 | 
| IsTypeDefinition | 获取一个值,该值指示类型是否是类型定义。 | 
| IsUnicodeClass | 获取一个值,该值指示是否为  | 
| IsUnmanagedFunctionPointer | 获取一个值,该值指示当前 Type 是否为非托管函数指针。 | 
| IsValueType | 获取一个值,通过该值指示 Type 是否为值类型。 | 
| IsVariableBoundArray | 获取一个值,该值指示类型是否是可表示多维数组或具有任意下限的数组的数组类型。 | 
| IsVisible | 获取一个指示 Type 是否可由程序集之外的代码访问的值。 | 
| MemberType | 获取一个指示此成员是类型还是嵌套类型的 MemberTypes 值。 | 
| MetadataToken | 获取一个值,该值标识元数据元素。(继承自 MemberInfo) | 
| Module | 获取在其中定义当前 Type 的模块 (DLL)。 | 
| Name | 在派生类中覆盖时,获取当前类型的名称。 | 
| Name | 获取当前成员的名称。(继承自 MemberInfo) | 
| Namespace | 获取 Type 的命名空间。 | 
| ReflectedType | 获取用于获取该成员的类对象。 | 
| StructLayoutAttribute | 获取一个描述当前类型的布局的 StructLayoutAttribute。 | 
| TypeHandle | 获取当前 Type 的句柄。 | 
| TypeInitializer | 获取该类型的初始值设定项。 | 
| UnderlyingSystemType | 指示表示该类型的公共语言运行时提供的类型。 | 
方法
运算符
| Equality(Type, Type) | 指示两个 Type 对象是否相等。 | 
| Inequality(Type, Type) | 指示两个 Type 对象是否不相等。 | 
显式接口实现
| _MemberInfo.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) | 将一组名称映射为对应的一组调度标识符。(继承自 MemberInfo) | 
| _MemberInfo.GetType() | 获取一个表示 MemberInfo 类的 Type 对象。(继承自 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) | 将一组名称映射为对应的一组调度标识符。 | 
| _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) | 表示类型声明:类类型、接口类型、数组类型、值类型、枚举类型、类型参数、泛型类型定义,以及开放或封闭构造的泛型类型。 | 
适用于
线程安全性
此类型是线程安全的。