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。 C# typeof 运算符 (Visual Basic 中的 GetType 运算符) 用于获取表示 Type 的 String 对象。 从此 Type 对象中, GetMethod 该方法用于获取表示 MethodInfo 采用起始位置和长度的 String.Substring 重载。
为了标识重载签名,代码示例创建一个临时数组,其中包含两个Type对象,该对象表示int(Visual Basic中的 Integer)。
代码示例使用 MethodInfo 对字符串“Hello, World!”调用 Substring 方法,并显示结果。
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() |
获取表示TypeMemberInfo类的对象。 (继承自 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) |
提供对对象公开的属性和方法的访问。 |
扩展方法
| 名称 | 说明 |
|---|---|
| GetConstructor(Type, Type[]) |
表示类型声明:类类型、接口类型、数组类型、值类型、枚举类型、类型参数、泛型类型定义以及打开或关闭构造泛型类型。 |
| GetConstructors(Type, BindingFlags) |
表示类型声明:类类型、接口类型、数组类型、值类型、枚举类型、类型参数、泛型类型定义以及打开或关闭构造泛型类型。 |
| GetConstructors(Type) |
表示类型声明:类类型、接口类型、数组类型、值类型、枚举类型、类型参数、泛型类型定义以及打开或关闭构造泛型类型。 |
| GetCustomAttribute(MemberInfo, Type, Boolean) |
检索应用于指定成员的指定类型的自定义属性,并选择性地检查该成员的上级。 |
| GetCustomAttribute(MemberInfo, Type) |
检索应用于指定成员的指定类型的自定义属性。 |
| GetCustomAttribute<T>(MemberInfo, Boolean) |
检索应用于指定成员的指定类型的自定义属性,并选择性地检查该成员的上级。 |
| GetCustomAttribute<T>(MemberInfo) |
检索应用于指定成员的指定类型的自定义属性。 |
| GetCustomAttributes(MemberInfo, Boolean) |
检索应用于指定成员的自定义属性的集合,并选择性地检查该成员的上级。 |
| GetCustomAttributes(MemberInfo, Type, Boolean) |
检索应用于指定成员的指定类型的自定义属性集合,并选择性地检查该成员的上级。 |
| GetCustomAttributes(MemberInfo, Type) |
检索应用于指定成员的指定类型的自定义属性集合。 |
| GetCustomAttributes(MemberInfo) |
检索应用于指定成员的自定义属性的集合。 |
| GetCustomAttributes<T>(MemberInfo, Boolean) |
检索应用于指定成员的指定类型的自定义属性集合,并选择性地检查该成员的上级。 |
| GetCustomAttributes<T>(MemberInfo) |
检索应用于指定成员的指定类型的自定义属性集合。 |
| GetDefaultMembers(Type) |
表示类型声明:类类型、接口类型、数组类型、值类型、枚举类型、类型参数、泛型类型定义以及打开或关闭构造泛型类型。 |
| GetEvent(Type, String, BindingFlags) |
表示类型声明:类类型、接口类型、数组类型、值类型、枚举类型、类型参数、泛型类型定义以及打开或关闭构造泛型类型。 |
| GetEvent(Type, String) |
表示类型声明:类类型、接口类型、数组类型、值类型、枚举类型、类型参数、泛型类型定义以及打开或关闭构造泛型类型。 |
| GetEvents(Type, BindingFlags) |
表示类型声明:类类型、接口类型、数组类型、值类型、枚举类型、类型参数、泛型类型定义以及打开或关闭构造泛型类型。 |
| GetEvents(Type) |
表示类型声明:类类型、接口类型、数组类型、值类型、枚举类型、类型参数、泛型类型定义以及打开或关闭构造泛型类型。 |
| GetField(Type, String, BindingFlags) |
表示类型声明:类类型、接口类型、数组类型、值类型、枚举类型、类型参数、泛型类型定义以及打开或关闭构造泛型类型。 |
| GetField(Type, String) |
表示类型声明:类类型、接口类型、数组类型、值类型、枚举类型、类型参数、泛型类型定义以及打开或关闭构造泛型类型。 |
| GetFields(Type, BindingFlags) |
表示类型声明:类类型、接口类型、数组类型、值类型、枚举类型、类型参数、泛型类型定义以及打开或关闭构造泛型类型。 |
| GetFields(Type) |
表示类型声明:类类型、接口类型、数组类型、值类型、枚举类型、类型参数、泛型类型定义以及打开或关闭构造泛型类型。 |
| GetGenericArguments(Type) |
表示类型声明:类类型、接口类型、数组类型、值类型、枚举类型、类型参数、泛型类型定义以及打开或关闭构造泛型类型。 |
| GetInterfaces(Type) |
表示类型声明:类类型、接口类型、数组类型、值类型、枚举类型、类型参数、泛型类型定义以及打开或关闭构造泛型类型。 |
| GetMember(Type, String, BindingFlags) |
表示类型声明:类类型、接口类型、数组类型、值类型、枚举类型、类型参数、泛型类型定义以及打开或关闭构造泛型类型。 |
| GetMember(Type, String) |
表示类型声明:类类型、接口类型、数组类型、值类型、枚举类型、类型参数、泛型类型定义以及打开或关闭构造泛型类型。 |
| GetMembers(Type, BindingFlags) |
表示类型声明:类类型、接口类型、数组类型、值类型、枚举类型、类型参数、泛型类型定义以及打开或关闭构造泛型类型。 |
| GetMembers(Type) |
表示类型声明:类类型、接口类型、数组类型、值类型、枚举类型、类型参数、泛型类型定义以及打开或关闭构造泛型类型。 |
| GetMetadataToken(MemberInfo) |
获取给定成员的元数据令牌(如果可用)。 |
| GetMethod(Type, String, BindingFlags) |
表示类型声明:类类型、接口类型、数组类型、值类型、枚举类型、类型参数、泛型类型定义以及打开或关闭构造泛型类型。 |
| GetMethod(Type, String, Type[]) |
表示类型声明:类类型、接口类型、数组类型、值类型、枚举类型、类型参数、泛型类型定义以及打开或关闭构造泛型类型。 |
| GetMethods(Type, BindingFlags) |
表示类型声明:类类型、接口类型、数组类型、值类型、枚举类型、类型参数、泛型类型定义以及打开或关闭构造泛型类型。 |
| GetMethods(Type) |
表示类型声明:类类型、接口类型、数组类型、值类型、枚举类型、类型参数、泛型类型定义以及打开或关闭构造泛型类型。 |
| GetNestedTypes(Type, BindingFlags) |
表示类型声明:类类型、接口类型、数组类型、值类型、枚举类型、类型参数、泛型类型定义以及打开或关闭构造泛型类型。 |
| GetProperties(Type, BindingFlags) |
表示类型声明:类类型、接口类型、数组类型、值类型、枚举类型、类型参数、泛型类型定义以及打开或关闭构造泛型类型。 |
| GetProperties(Type) |
表示类型声明:类类型、接口类型、数组类型、值类型、枚举类型、类型参数、泛型类型定义以及打开或关闭构造泛型类型。 |
| GetProperty(Type, String, Type, Type[]) |
表示类型声明:类类型、接口类型、数组类型、值类型、枚举类型、类型参数、泛型类型定义以及打开或关闭构造泛型类型。 |
| GetProperty(Type, String, Type) |
表示类型声明:类类型、接口类型、数组类型、值类型、枚举类型、类型参数、泛型类型定义以及打开或关闭构造泛型类型。 |
| GetProperty(Type, String) |
表示类型声明:类类型、接口类型、数组类型、值类型、枚举类型、类型参数、泛型类型定义以及打开或关闭构造泛型类型。 |
| GetRuntimeEvent(Type, String) |
检索表示指定事件的对象。 |
| GetRuntimeEvents(Type) |
检索一个集合,该集合表示在指定类型上定义的所有事件。 |
| GetRuntimeField(Type, String) |
检索表示指定字段的对象。 |
| GetRuntimeFields(Type) |
检索一个集合,该集合表示在指定类型上定义的所有字段。 |
| GetRuntimeMethod(Type, String, Type[]) |
检索表示指定方法的对象。 |
| GetRuntimeMethods(Type) |
检索一个集合,该集合表示在指定类型上定义的所有方法。 |
| GetRuntimeProperties(Type) |
检索一个集合,该集合表示在指定类型上定义的所有属性。 |
| GetRuntimeProperty(Type, String) |
检索表示指定属性的对象。 |
| GetTypeInfo(Type) |
返回指定类型的 TypeInfo 表示形式。 |
| HasMetadataToken(MemberInfo) |
返回一个值,该值指示元数据令牌是否可用于指定成员。 |
| IsAssignableFrom(Type, Type) |
表示类型声明:类类型、接口类型、数组类型、值类型、枚举类型、类型参数、泛型类型定义以及打开或关闭构造泛型类型。 |
| IsDefined(MemberInfo, Type, Boolean) |
指示指定类型的自定义属性是否应用于指定成员,以及(可选)应用于其上级。 |
| IsDefined(MemberInfo, Type) |
指示指定类型的自定义属性是否应用于指定成员。 |
| IsInstanceOfType(Type, Object) |
表示类型声明:类类型、接口类型、数组类型、值类型、枚举类型、类型参数、泛型类型定义以及打开或关闭构造泛型类型。 |
适用于
线程安全性
此类型是线程安全的。