本文概述
- C#Type类
- C#类型属性
- C#类型方法
- C#反射示例:获取类型
- C#反射示例:获取程序集
- C#反射示例:打印类型信息
- C#反射示例:打印构造函数
- C#反射示例:打印方法
- C#反射示例:打印字段
- 类型
- 会员信息
- ConstructorInfo
- 方法信息
- 现场信息
- 物业信息
- 类型信息
- EventInfo
- 模组
- 部件
- AssemblyName
- 指针等
C#Type类C#Type类代表类类型,接口类型,枚举类型,数组类型,值类型等的类型声明。可以在System名称空间中找到。它继承了System.Reflection.MemberInfo类。
C#类型属性Type类的重要属性的列表如下:
属性 | 描述 |
---|---|
Assembly | 获取此类型的Assembly。 |
AssemblyQualifiedName | 获取此类型的程序集限定名称。 |
Attributes | 获取与类型关联的属性。 |
BaseType | 获取基本或父类型。 |
FullName | 获取类型的标准名称。 |
IsAbstract | 用于检查类型是否为Abstract。 |
IsArray | 用于检查类型是否为数组。 |
IsClass | 用于检查类型是否为Class。 |
IsEnum | 用于检查类型是否为Enum。 |
IsInterface | 用于检查类型是否为接口。 |
IsNested | 用于检查类型是否为嵌套。 |
IsPrimitive | 用于检查类型是否为原始。 |
IsPointer | 用于检查类型是否为Pointer。 |
IsNotPublic | 用于检查类型是否不是Public。 |
IsPublic | 用于检查类型是否为“公共”。 |
IsSealed | 用于检查类型是否为密封。 |
IsSerializable | 用于检查类型是否可序列化。 |
MemberType | 用于检查类型是否为嵌套类型的成员类型。 |
Module | 获取类型的模块。 |
Name | 获取类型的名称。 |
Namespace | 获取类型的名称空间。 |
方法 | 描述 |
---|---|
GetConstructors() | 返回Type的所有公共构造函数。 |
GetConstructors(BindingFlags) | 返回具有指定BindingFlags的Type的所有构造函数。 |
GetFields() | 返回类型的所有公共字段。 |
GetFields(BindingFlags) | 返回具有指定BindingFlags的Type的所有公共构造函数。 |
GetMembers() | 返回该类型的所有公共成员。 |
GetMembers(BindingFlags) | 返回具有指定BindingFlags的Type的所有成员。 |
GetMethods() | 返回Type的所有公共方法。 |
GetMethods(BindingFlags) | 返回具有指定BindingFlags的Type的所有方法。 |
GetProperties() | 返回Type的所有公共属性。 |
GetProperties(BindingFlags) | 返回具有指定BindingFlags的Type的所有属性。 |
GetType() | 获取当前的Type。 |
GetType(String) | 获取给定名称的Type。 |
using System;
public class ReflectionExample
{
public static void Main()
{
int a = 10;
Type type = a.GetType();
Console.WriteLine(type);
}
}
【C#反射】输出:
System.Int32
C#反射示例:获取程序集
using System;
using System.Reflection;
public class ReflectionExample
{
public static void Main()
{
Type t = typeof(System.String);
Console.WriteLine(t.Assembly);
}
}
输出:
mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
C#反射示例:打印类型信息
using System;
using System.Reflection;
public class ReflectionExample
{
public static void Main()
{
Type t = typeof(System.String);
Console.WriteLine(t.FullName);
Console.WriteLine(t.BaseType);
Console.WriteLine(t.IsClass);
Console.WriteLine(t.IsEnum);
Console.WriteLine(t.IsInterface);
}
}
输出:
System.String
System.Object
true
false
false
C#反射示例:打印构造函数
using System;
using System.Reflection;
public class ReflectionExample
{
public static void Main()
{
Type t = typeof(System.String);
Console.WriteLine("Constructors of {0} type...", t);
ConstructorInfo[] ci = t.GetConstructors(BindingFlags.Public | BindingFlags.Instance);
foreach (ConstructorInfo c in ci)
{
Console.WriteLine(c);
}
}
}
输出:
Constructors of System.String type...
Void .ctor(Char*)
Void .ctor(Char*, Int32, Int32)
Void .ctor(SByte*)
Void .ctor(SByte*, Int32, Int32)
Void .ctor(SByte*, Int32, Int32, System.Text.Encoding)
Void .ctor(Char[], Int32, Int32)
Void .ctor(Char[])
Void .ctor(Char, Int32)
C#反射示例:打印方法
using System;
using System.Reflection;
public class ReflectionExample
{
public static void Main()
{
Type t = typeof(System.String);
Console.WriteLine("Methods of {0} type...", t);
MethodInfo[] ci = t.GetMethods(BindingFlags.Public | BindingFlags.Instance);
foreach (MethodInfo m in ci)
{
Console.WriteLine(m);
}
}
}
输出:
Methods of System.String type...
Boolean Equals(System.Object)
Boolean Equals(System.String)
Boolean Equals(System.String, System.StringComparison)
Char get_Chars(Int32)
Void copyTo(Int32, char[], Int32, Int32)
Char[] ToCharArray()
....
C#反射示例:打印字段
using System;
using System.Reflection;
public class ReflectionExample
{
public static void Main()
{
Type t = typeof(System.String);
Console.WriteLine("Fields of {0} type...", t);
FieldInfo[] ci = t.GetFields(BindingFlags.Public | BindingFlags.Static | BindingFlags.NonPublic);
foreach (FieldInfo f in ci)
{
Console.WriteLine(f);
}
}
}
输出:
Fields of System.String type...
System.String Empty
Int32 TrimHead
Int32 TrimTail
Int32 TrimBoth
Int32 charPtrAlignConst
Int32 alignConst
推荐阅读
- C#匿名函数
- C#的代理delegate
- C#集合SortedList
- C#集合SortedDictionary
- C#字典Dictionary
- C#集合LinkedList
- C#队列Queue
- C#栈Stack
- C#集合SortedSet