1 / 43
文档名称:

C#反射基础知识.docx

格式:docx   大小:67KB   页数:43
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

C#反射基础知识.docx

上传人:xiaobaizhua 2022/5/20 文件大小:67 KB

下载得到文件列表

C#反射基础知识.docx

文档介绍

文档介绍:C#反射基础知识
一、 基本概念
反射:反射是一个运行库类型发现的过程。 通过反射可以得到一个给定程序集所包含的所有类型的列表,这个列表包括给定类型中定义的方法、字段、 属性和事件。也可以动态的发现一组给定类支持的借口、方法的参数和其他1
曰田{
12
public class BasePerson //
13
{
要实现IEnumerable接口则必须制定该命名空间
假设一个基类,定义了一个公共方法和一个私有方法
14
15勺
16
17
18
19》
20
21
22
23
24
25
26
27》
28
29
30
31
32
33
34白由
35
36
public void BasePublic()
{
}
private void BasePrivate()
{
}
};
//Person类实现了接口 IEnumerable,使得类中定义的Array数组能够使用foreach枚举
public class Person :BasePerson, IEnumerable
priva te st ring name ="林田惠";// 女生名
public int age=2 0; // 年龄
Array children=null;// 子女数组
37
38白
39
40
41
42
43
44
45
46
47目
48
49
50
51
52
53
54
55
56
57
58
59
Person(string a,int b)
{
Name = a;
Age = b;
}
{ 5
get { return name; }
set { }
public int Age
{
get { return age; }
set { }
public void AddAge()// 自增一岁的方法
{
Age+=1;
}
60
61
62
63
64
65
66目
67
68
69
70
7冲由
72
73
74
75
76
7 7白由
78
79
80
81
public delegate void PersonNameHandler(string x);
public event PersonNameHandler OnChangeName; // 定义了一个改变姓名的事件
public void ChangeName( string nam) // 改名的方法
{
Name = nam;
}
public void ChangeNameAndAddAge( string name, int age) // 具有两个参数的方法,用来演示反射具体方法的详细情况
{
= name;
+= age;
}
public IEnumera tor GetEnumerator()// 实现接口
{
return ();
}
}
83
84
public class Program
{
87
88
8 9由白 构建自定义元数据查看器
180
181
182目
183
184
185
186
187
188
189
190
191
192
193
194
public static void Main(string[] args)
{
(" ");
Type t = ("");// Person 类的完全限定名为""
ListOtherInfo(t); //反射其他一些信息 ListFields(t); //反射字段
ListProperties(t); //反射属性
ListInterFaces(t); //反射接口
ListEvents(t); //反射事件
Lis tMet hodDe tail( t, "ChangeNameAndAddAge");//反射一个特定方法的详细信息 ListMethods(t); //反射方法
195
196
()
}
}
}
201
202
【实现效果】
总结】结合源代码和运行效果,总结如下
get_Name()和set