导出 (0) 打印
全部展开
信息
您所需的主题如下所示。但此主题未包含在此库中。

Type 类

2013/12/13

表示类型声明:类类型、接口类型、数组类型、值类型、枚举类型、类型参数、泛型类型定义,以及开放式或封闭式构造的泛型类型。

Namespace:  System
程序集:  mscorlib(位于 mscorlib.dll 中)

public abstract class Type : MemberInfo, 
	IReflect

Type 类型公开以下成员。

  名称说明
公共属性Assembly获取在其中声明该类型的 Assembly。对于泛型类型,则获取在其中定义该泛型类型的 Assembly
公共属性AssemblyQualifiedName获取 Type 的程序集限定名,其中包括从中加载 Type 的程序集的名称。
公共属性Attributes获取与 Type 关联的特性。
公共属性BaseType获取当前 Type 直接从中继承的类型。
公共属性ContainsGenericParameters获取一个值,该值指示当前 Type 对象是否具有尚未被特定类型替代的类型参数。
公共属性CustomAttributes获取包含此成员的自定义特性的集合。 (从 MemberInfo 继承。)
公共属性DeclaringMethod获取一个表示声明方法的 MethodBase(如果当前 Type 表示泛型方法的一个类型参数)。
公共属性DeclaringType获取用来声明当前的嵌套类型或泛型类型参数的类型。 (重写 MemberInfo.DeclaringType。)
公共属性静态成员DefaultBinder获取默认联编程序的引用,该程序实现的内部规则用于选择由 InvokeMember 调用的合适成员。
公共属性FullName获取 Type 的完全限定名,包括 Type 的命名空间,但不包括程序集。
公共属性GenericParameterAttributes获取描述当前泛型类型参数的协变和特殊约束的 GenericParameterAttributes 标志。
公共属性GenericParameterPositionType 对象表示泛型类型或泛型方法的类型参数时,获取类型参数在声明它的泛型类型或方法的类型参数列表中的位置。
公共属性GenericTypeArguments获取此类型的泛型类型参数的数组。
公共属性GUID获取与 Type 关联的 GUID。
公共属性HasElementType获取一个值,通过该值指示当前 Type 是包含还是引用另一类型,即当前 Type 是数组、指针还是通过引用传递。
公共属性IsAbstract获取一个值,通过该值指示 Type 是否为抽象的并且必须被重写。
公共属性IsAnsiClass获取一个值,通过该值指示是否为 Type 选定了字符串格式特性 AnsiClass
公共属性IsArray获取一个值,通过该值指示 Type 是否为数组。
公共属性IsAutoClass获取一个值,通过该值指示是否为 Type 选定了字符串格式特性 AutoClass
公共属性IsAutoLayout获取一个值,通过该值指示是否为 Type 选定了类布局特性 AutoLayout
公共属性IsByRef获取一个值,通过该值指示 Type 是否由引用传递。
公共属性IsClass获取一个值,通过该值指示 Type 是否为类;即,不是值类型或接口。
公共属性IsCOMObject获取一个值,通过该值指示 Type 是否为 COM 对象。
公共属性IsConstructedGenericType获取一个值,该值指示此对象是否表示构造泛型类型。
公共属性IsEnum获取一个值,该值指示当前的 Type 是否表示枚举。
公共属性IsExplicitLayout获取一个值,通过该值指示是否为 Type 选定了类布局特性 ExplicitLayout
公共属性IsGenericParameter获取一个值,该值指示当前 Type 是否表示泛型类型或方法的定义中的类型参数。
公共属性IsGenericType获取一个值,该值指示当前类型是否为泛型类型。
公共属性IsGenericTypeDefinition获取一个值,该值指示当前 Type 是否表示可以用来构造其他泛型类型的泛型类型定义。
公共属性IsImport获取一个值,该值指示 Type 是否应用了 ComImportAttribute 属性,如果应用了该属性,则表示它是从 COM 类型库导入的。
公共属性IsInterface获取一个值,通过该值指示 Type 是否为接口(即不是类或值类型)。
公共属性IsLayoutSequential获取一个值,通过该值指示是否为 Type 选定了类布局特性 SequentialLayout
公共属性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 是否声明为密封的。
公共属性IsSerializable获取一个值,通过该值指示 Type 是否为可串行的。
公共属性IsSpecialName获取一个值,通过该值指示 Type 是否具有需要特殊处理的名称。
公共属性IsUnicodeClass获取一个值,通过该值指示是否为 Type 选定了字符串格式特性 UnicodeClass
公共属性IsValueType获取一个值,通过该值指示 Type 是否为值类型。
公共属性IsVisible获取一个指示 Type 是否可由程序集之外的代码访问的值。
公共属性MemberType获取一个指示此成员是类型还是嵌套类型的 MemberTypes 值。 (重写 MemberInfo.MemberType。)
公共属性MetadataToken获取一个值,该值标识元数据元素。 (从 MemberInfo 继承。)
公共属性Module获取在其中定义当前 Type 的模块 (DLL)。
公共属性Name获取当前成员的名称。 (从 MemberInfo 继承。)
公共属性Namespace获取 Type 的命名空间。
公共属性ReflectedType获取用于获取该成员的类对象。 (重写 MemberInfo.ReflectedType。)
公共属性TypeHandle获取当前 Type 的句柄。
公共属性UnderlyingSystemType指示表示该类型的公共语言运行时提供的类型。
返回顶部

  名称说明
公共方法Equals(Object)确定当前 Type 的基础系统类型是否与指定 Object 的基础系统类型相同。 (重写 MemberInfo.Equals(Object)。)
公共方法Equals(Type)确定当前 Type 的基础系统类型是否与指定 Type 的基础系统类型相同。
受保护的方法Finalize允许 Object 在垃圾回收器回收该对象之前尝试释放资源并执行其他清理操作。 (从 Object 继承。)
公共方法FindMembers返回指定成员类型的 MemberInfo 对象的筛选数组。
公共方法GetArrayRank获取 Array 中的维数。
受保护的方法GetAttributeFlagsImpl当在派生类中重写时,实现 Attributes 属性,并获取指示与 Type 关联的特性的位掩码。
公共方法GetConstructor(Type[])搜索其参数与指定数组中的类型匹配的公共实例构造函数。
公共方法GetConstructor(BindingFlags, Binder, Type[], ParameterModifier[])使用指定绑定约束搜索其参数与指定参数类型和修饰符匹配的构造函数。
受保护的方法GetConstructorImpl当在派生类中重写时,使用指定的绑定约束和指定的调用约定搜索其参数与指定的参数类型和修饰符匹配的构造函数。
公共方法GetConstructors()返回为当前 Type 定义的所有公共构造函数。
公共方法GetConstructors(BindingFlags)当在派生类中重写时,使用指定 BindingFlags 搜索为当前 Type 定义的构造函数。
公共方法GetCustomAttributes(Boolean)在派生类中重写时,返回应用于此成员的所有自定义特性的数组。 (从 MemberInfo 继承。)
公共方法GetCustomAttributes(Type, Boolean)在派生类中重写时,返回应用于此成员并由 Type 标识的自定义特性的数组。 (从 MemberInfo 继承。)
公共方法GetDefaultMembers搜索为设置了 DefaultMemberAttribute 的当前 Type 定义的成员。
公共方法GetElementType当在派生类中重写时,返回当前数组、指针或引用类型包含的或引用的对象的 Type
公共方法GetEvent(String)返回表示指定的公共事件的 EventInfo 对象。
公共方法GetEvent(String, BindingFlags)当在派生类中重写时,使用指定绑定约束,返回表示指定事件的 EventInfo 对象。
公共方法GetEvents()返回由当前 Type 声明或继承的所有公共事件。
公共方法GetEvents(BindingFlags)当在派生类中重写时,使用指定绑定约束,搜索由当前 Type 声明或继承的事件。
公共方法GetField(String)搜索具有指定名称的公共字段。
公共方法GetField(String, BindingFlags)使用指定绑定约束搜索指定字段。
公共方法GetFields()返回当前 Type 的所有公共字段。
公共方法GetFields(BindingFlags)当在派生类中重写时,使用指定绑定约束,搜索为当前 Type 定义的字段。
公共方法GetGenericArguments返回表示泛型类型的类型实参或泛型类型定义的类型形参的 Type 对象的数组。
公共方法GetGenericParameterConstraints返回表示当前泛型类型参数约束的 Type 对象的数组。
公共方法GetGenericTypeDefinition返回一个表示可用于构造当前泛型类型的泛型类型定义的 Type 对象。
公共方法GetHashCode返回此实例的哈希代码。 (重写 MemberInfo.GetHashCode()。)
公共方法GetInterface当在派生类中重写时,搜索指定的接口,指定是否要对接口名称执行不区分大小写的搜索。
公共方法GetInterfaceMap返回指定接口类型的接口映射。
公共方法GetInterfaces当在派生类中重写时,获取由当前 Type 实现或继承的所有接口。
公共方法GetMember(String)搜索具有指定名称的公共成员。
公共方法GetMember(String, BindingFlags)使用指定绑定约束搜索指定成员。
公共方法GetMember(String, MemberTypes, BindingFlags)使用指定绑定约束搜索指定成员类型的指定成员。
公共方法GetMembers()返回当前 Type 的所有公共成员。
公共方法GetMembers(BindingFlags)当在派生类中重写时,使用指定绑定约束,搜索为当前 Type 定义的成员。
公共方法GetMethod(String)搜索具有指定名称的公共方法。
公共方法GetMethod(String, BindingFlags)使用指定绑定约束搜索指定方法。
公共方法GetMethod(String, Type[])搜索其参数与指定参数类型匹配的指定公共方法。
公共方法GetMethod(String, Type[], ParameterModifier[])搜索其参数与指定参数类型及修饰符匹配的指定公共方法。
公共方法GetMethod(String, BindingFlags, Binder, Type[], ParameterModifier[])使用指定绑定约束,搜索其参数与指定参数类型及修饰符匹配的指定方法。
公共方法GetMethod(String, BindingFlags, Binder, CallingConventions, Type[], ParameterModifier[])用指定的绑定约束和指定的调用约定,搜索参数与指定的参数类型及修饰符相匹配的指定方法。
受保护的方法GetMethodImpl当在派生类中重写时,使用指定的绑定约束和指定的调用约定搜索其参数与指定的参数类型和修饰符匹配的指定方法。
公共方法GetMethods()返回当前 Type 的所有公共方法。
公共方法GetMethods(BindingFlags)当在派生类中重写时,使用指定绑定约束,搜索为当前 Type 定义的方法。
公共方法GetNestedType当在派生类中重写时,使用指定绑定约束搜索指定嵌套类型。
公共方法GetNestedTypes当在派生类中重写时,使用指定绑定约束搜索嵌套在当前 Type 中的类型。
公共方法GetProperties()返回当前 Type 的所有公共属性。
公共方法GetProperties(BindingFlags)当在派生类中重写时,使用指定绑定约束,搜索当前 Type 的如果属性至少有一个为公共的访问器,则该属性被视为对于反射是公共的。
公共方法GetProperty(String)搜索具有指定名称的公共属性。
公共方法GetProperty(String, BindingFlags)使用指定的绑定约束搜索指定属性。
公共方法GetProperty(String, Type)搜索具有指定名称和返回类型的公共属性。
公共方法GetProperty(String, Type, Type[])搜索其参数与指定参数类型匹配的指定公共属性。
公共方法GetProperty(String, Type, Type[], ParameterModifier[])搜索其参数与指定参数类型及修饰符匹配的指定公共属性。
公共方法GetProperty(String, BindingFlags, Binder, Type, Type[], ParameterModifier[])使用指定的绑定约束,搜索参数与指定的参数类型及修饰符匹配的指定属性。
受保护的方法GetPropertyImpl当在派生类中重写时,使用指定的绑定约束搜索其参数与指定的参数类型和修饰符匹配的指定属性。
公共方法GetType()获取当前 Type
公共方法静态成员GetType(String)获取具有指定名称的 Type,执行区分大小写的搜索。
公共方法静态成员GetType(String, Boolean)获取具有指定名称的 Type,同时执行大小写敏感的搜索,并指定是否要在没有找到该类型时引发异常。
公共方法静态成员GetType(String, Boolean, Boolean)获取具有指定名称的 Type,指定是否执行区分大小写的搜索,以及在找不到类型时是否引发异常。
公共方法静态成员GetTypeCode获取指定 Type 的基础类型代码。
公共方法静态成员GetTypeFromHandle获取由指定类型句柄引用的类型。
公共方法静态成员GetTypeHandle获取指定对象的 Type 的句柄。
受保护的方法HasElementTypeImpl当在派生类中重写时,实现 HasElementType 属性,确定当前 Type 是否包含另一类型或对其引用;即,当前 Type 是否是数组、指针或由引用传递。
公共方法InvokeMember(String, BindingFlags, Binder, Object, Object[])使用指定的绑定约束并匹配指定的参数列表,调用指定成员。
公共方法InvokeMember(String, BindingFlags, Binder, Object, Object[], ParameterModifier[], CultureInfo, String[])当在派生类中重写时,使用指定的绑定约束并匹配指定的参数列表、修饰符和区域性,调用指定成员。
受保护的方法IsArrayImpl当在派生类中重写时,实现 IsArray 属性并确定 Type 是否为数组。
公共方法IsAssignableFrom确定当前的 Type 的实例是否可以从指定 Type 的实例分配。
受保护的方法IsByRefImpl当在派生类中重写时,实现 IsByRef 属性并确定 Type 是否由引用传递。
受保护的方法IsCOMObjectImpl当在派生类中重写时,实现 IsCOMObject 属性并确定 Type 是否为 COM 对象。
公共方法IsDefined在派生类中重写时,指示是否将指定类型或其派生类型的一个或多个特性应用于此成员。 (从 MemberInfo 继承。)
公共方法IsInstanceOfType确定指定的对象是否是当前 Type 的实例。
受保护的方法IsPointerImpl当在派生类中重写时,实现 IsPointer 属性并确定 Type 是否为指针。
受保护的方法IsPrimitiveImpl当在派生类中重写时,实现 IsPrimitive 属性并确定 Type 是否为基元类型之一。
公共方法IsSubclassOf确定当前 Type 表示的类是否是从指定的 Type 表示的类派生的。
受保护的方法IsValueTypeImpl实现 IsValueType 属性并确定 Type 是否是值类型;即,它不是类或接口。
公共方法MakeArrayType()返回一个表示当前类型的一维数组(下限为零)的 Type 对象。
公共方法MakeArrayType(Int32)返回表示当前类型的指定维数的数组的 Type 对象。
公共方法MakeByRefType返回表示作为 ref 参数(在 Visual Basic 中为 ByRef 参数)传递时的当前类型的 Type 对象。
公共方法MakeGenericType替代由当前泛型类型定义的类型参数组成的类型数组的元素,并返回表示结果构造类型的 Type 对象。
公共方法MakePointerType返回表示指向当前类型的指针的 Type 对象。
受保护的方法MemberwiseClone创建当前 Object 的浅表副本。 (从 Object 继承。)
公共方法ToString返回表示当前 Type 的名称的 String (重写 Object.ToString()。)
返回顶部

  名称说明
公共扩展方法GetCustomAttribute(Type)重载。 检索应用于指定的成员的指定类型的自定义特性。 (由 CustomAttributeExtensions 定义。)
公共扩展方法GetCustomAttribute(Type, Boolean)重载。 检索应用于指定成员的指定类型的自定义特性,还可以选择检查该成员的上级。 (由 CustomAttributeExtensions 定义。)
公共扩展方法GetCustomAttribute<T>()重载。 检索应用于指定的成员的指定类型的自定义特性。 (由 CustomAttributeExtensions 定义。)
公共扩展方法GetCustomAttribute<T>(Boolean)重载。 检索应用于指定成员的指定类型的自定义特性,还可以选择检查该成员的上级。 (由 CustomAttributeExtensions 定义。)
公共扩展方法GetCustomAttributes()重载。 检索应用于指定成员的自定义特性的集合。 (由 CustomAttributeExtensions 定义。)
公共扩展方法GetCustomAttributes(Type)重载。 检索应用于指定成员的指定类型的自定义特性的集合。 (由 CustomAttributeExtensions 定义。)
公共扩展方法GetCustomAttributes<T>()重载。 检索应用于指定成员的指定类型的自定义特性的集合。 (由 CustomAttributeExtensions 定义。)
公共扩展方法GetCustomAttributes<T>(Boolean)重载。 检索应用于指定成员的指定类型的自定义特性的集合,还可以选择检查该成员的上级。 (由 CustomAttributeExtensions 定义。)
公共扩展方法GetRuntimeEvent检索表示指定事件的对象。 (由 RuntimeReflectionExtensions 定义。)
公共扩展方法GetRuntimeEvents检索一个集合,该集合表示指定的类型上定义的所有事件。 (由 RuntimeReflectionExtensions 定义。)
公共扩展方法GetRuntimeField检索一个对象,该对象表示指定的字段。 (由 RuntimeReflectionExtensions 定义。)
公共扩展方法GetRuntimeFields检索一个集合,该集合表示指定的类型上定义的所有字段。 (由 RuntimeReflectionExtensions 定义。)
公共扩展方法GetRuntimeMethod检索一个对象,该对象表示指定的方法。 (由 RuntimeReflectionExtensions 定义。)
公共扩展方法GetRuntimeMethods检索一个集合,该集合表示指定的类型上定义的所有方法。 (由 RuntimeReflectionExtensions 定义。)
公共扩展方法GetRuntimeProperties检索一个集合,该集合表示指定的类型上定义的所有属性。 (由 RuntimeReflectionExtensions 定义。)
公共扩展方法GetRuntimeProperty检索一个对象,该对象表示指定的属性。 (由 RuntimeReflectionExtensions 定义。)
公共扩展方法GetTypeInfo返回指定类型的 TypeInfo 表示形式。 (由 IntrospectionExtensions 定义。)
公共扩展方法IsDefined指示是否将指定类型的自定义特性应用于指定的成员。 (由 CustomAttributeExtensions 定义。)
返回顶部

  名称说明
公共字段静态成员Delimiter分隔 Type 的命名空间中的名称。此字段为只读。
公共字段静态成员EmptyTypes表示 Type 类型的空数组。此字段为只读。
公共字段静态成员FilterNameIgnoreCase表示用于名称的不区分大小写的成员筛选器。此字段为只读。
公共字段静态成员Missing表示 Type 信息中的缺少值。此字段为只读。
返回顶部

TypeSystem.Reflection 功能的根,也是访问元数据的主要方式。使用 Type 的成员获取关于类型声明的信息,如构造函数、方法、字段、属性和类的事件,以及在其中部署该类的模块和程序集。

C# typeof 运算符(在 Visual Basic 中为 GetType 运算符,在 Visual C++ 中为 typeid 运算符)返回一个 Type 对象。

表示某个类型是唯一的 Type 对象;即,两个 Type 对象引用当且仅当它们表示相同的类型时,才引用相同的对象。这允许使用参考等式来比较 Type 对象。

Type 是一个抽象基类。系统提供了 internal(在 Visual Basic 中为 Friend)派生类 RuntimeType。在 Windows Phone 应用程序中,不能从 Type 继承。

说明注意:

在多线程方案中,不要锁定 Type 对象以同步对 static 数据的访问。其他不受您控制的代码可能也会锁定您的类类型。这可能会导致死锁。应转而通过锁定私有 static 对象来同步对静态数据的访问。

这个类是线程安全的;多个线程可以同时从此类型的一个实例读取数据。Type 的实例可表示以下任何类型:

  • 值类型

  • 数组

  • 接口

  • 指针

  • 枚举

  • 构造泛型类型和泛型类型定义

  • 构造泛型类型、泛型类型定义和泛型方法定义的类型实参和类型形参

可以通过下列方式获得对与某个类型关联的 Type 对象的引用:

  • Object.GetType 方法返回表示实例类型的 Type 对象。

  • 静态 GetType 方法返回 Type 对象,该对象表示由其完全限定名指定的类型。

  • Module.GetTypesModule.GetType 方法返回表示在模块中定义的类型的 Type 对象。第一个方法可用于获得模块中定义的所有公共类型和私有类型的 Type 对象的数组。(可通过 Assembly.GetModules 方法或通过 Type.Module 属性来获得 Module 的实例。)

  • GetElementType 方法返回表示元素的 Type 对象。

  • GetInterfacesGetInterface 方法返回表示某个类型所支持的接口类型的 Type 对象。

  • GetTypeFromHandle 方法是为交互操作而提供的。此方法返回表示类句柄所指定的类型的 Type 对象。

  • C# typeof 运算符、C++ typeid 运算符和 Visual Basic GetType 运算符获得某个类型的 Type 对象。

  • MakeGenericType 方法返回 Type 对象,该对象表示构造泛型类型,如果该对象的 ContainsGenericParameters 属性返回 true,则该类型为开放构造类型,否则为封闭构造类型。只能实例化封闭的泛型类型。

  • MakeArrayTypeMakePointerTypeMakeByRefType 方法返回 Type 对象,这些对象分别表示指定类型的数组、指向指定类型的指针以及引用参数的类型(在 C# 中为 ref,在 Visual Basic 中为 ByRef)。

下面的代码示例演示 Type 的少数几个具有代表性的功能。C# typeof 运算符(在 Visual Basic 中为 GetType)用于获取表示 StringType 对象。从该 Type 对象,可以使用 GetMethod 方法来获得表示 Substring 重载(该重载采用起始位置和长度)的 MethodInfo

为了标识重载签名,该代码示例创建了一个临时数组,其中包含两个表示 int(在 Visual Basic 中为 Integer)的 Type 对象。

说明注意:

为了力求准确,该数组中包含两个对 Type 实例的引用,该实例表示当前应用程序域中的 int。对于任何类型来说,每个应用程序域中都只有一个 Type 实例。

该代码示例使用 MethodInfo 来对字符串“Hello, World!”调用 Substring 方法,并显示相应的结果。

说明注意:

要运行此示例,请参见生成具有静态 Windows Phone TextBlock 控件的示例


using System;
using System.Reflection;

class Example
{
   public static void Demo(System.Windows.Controls.TextBlock outputBlock)
   {
      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 });
      outputBlock.Text += String.Format("{0} returned \"{1}\".", substr, result) + "\n";
   }
}

/* This code example produces the following output:

System.String Substring(Int32, Int32) returned "World".
 */


Windows Phone OS

受以下版本支持: 8.0, 7.1, 7.0

Windows Phone

此类型是线程安全的。

显示:
© 2015 Microsoft