1、通过反射可以在运行时获得程序或程序集中每一个类型(包括类、结构、委托、接口和枚举)的成员和成员的信息。通过反射可以直接创建对象,即使这个对象的类型在编译时还不知道。
反射主要作用:
(1)、获取类型的相关信息
(2)、动态调用方法
(3)、动态构造对象
(4)、从程序集中获得类型
2、反射用到的命名空间:
using System.Reflection;
using System.Type;
using System.Reflection.Assembly;
3、System.Type类:通过这个类可以访问任何给定数据类型的信息。
1)、三种常用方式:
(1)、使用C# typeof运算符
格式:Type t = typeof(string);
eg、
Type t = typeof(string);
Console.WriteLine (t.Name);
Console.WriteLine (t.Namespace);
运算结果:String
System
(2)、使用对象GetType()方法
格式:string s = "gra";
Type t = s.GetType();
eg、
int i = 9;
t = i.GetType ();
Console.WriteLine (t.Name);
Console.WriteLine (t.Namespace);
运算结果:Int32
System
(3)、还可以调用Type类的静态方法GetType()
格式:Type t = Type.GetType("System.String");
eg、
t = Type.GetType ("System.String");
Console.WriteLine (t.Name);
Console.WriteLine (t.Namespace);
运算结果:String
System
2)、Type类的属性
(1)、Name --> 数据类型名
(2)、FullName --> 数据类型的完全限定名(包括命名空间名)
(3)、Namespace --> 定义数据类型的命名空间名
(4)、IsAbstrac
反射主要作用:
(1)、获取类型的相关信息
(2)、动态调用方法
(3)、动态构造对象
(4)、从程序集中获得类型
2、反射用到的命名空间:
using System.Reflection;
using System.Type;
using System.Reflection.Assembly;
3、System.Type类:通过这个类可以访问任何给定数据类型的信息。
1)、三种常用方式:
(1)、使用C# typeof运算符
格式:Type t = typeof(string);
eg、
Type t = typeof(string);
Console.WriteLine (t.Name);
Console.WriteLine (t.Namespace);
运算结果:String
System
(2)、使用对象GetType()方法
格式:string s = "gra";
Type t = s.GetType();
eg、
int i = 9;
t = i.GetType ();
Console.WriteLine (t.Name);
Console.WriteLine (t.Namespace);
运算结果:Int32
System
(3)、还可以调用Type类的静态方法GetType()
格式:Type t = Type.GetType("System.String");
eg、
t = Type.GetType ("System.String");
Console.WriteLine (t.Name);
Console.WriteLine (t.Namespace);
运算结果:String
System
2)、Type类的属性
(1)、Name --> 数据类型名
(2)、FullName --> 数据类型的完全限定名(包括命名空间名)
(3)、Namespace --> 定义数据类型的命名空间名
(4)、IsAbstrac