网站导航免费论文 原创论文 论文搜索 原创论文 网学软件 学术大家 资料中心 会员中心 问题解答 原创论文 论文素材 设计下载 最新论文 下载排行 论文上传 在线投稿 联系我们
返回网学首页
网学联系
最新论文 推荐专题 热门论文 素材专题
当前位置: 网学 > 编程文档 > C# > 正文
C#反射基础知识实例总结
来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 12/10/14
下载{$ArticleTitle}原创论文样式
ivate void BasePrivate()

19 {

20 }

21

22 };

23

24

25 //Person类实现了接口IEnumerable,使得类中定义的Array数组能够使用foreach枚举

26 public class Person :BasePerson, IEnumerable

27 {

28 private string name = "林田惠"; //---姓名

29 public int age=20; //---年龄

30

31 Array children=null;//---子女数组

32

33 Person()

34 {

35 }

36

37 Person(string a,int b)

38 {

39 Name = a;

40 Age = b;

41 }

42

43

44 public string Name

45 {

46 get { return name; }

47 set { }

48 }

49

50 public int Age

51 {

52 get { return age; }

53 set { }

54 }

55

56 public void AddAge()//---自增一岁的方法

57 {

58 Age+=1;

59 }

60

61

62 public delegate void PersonNameHandler(string x);

63 public event PersonNameHandler OnChangeName; //------定义了一个改变姓名的事件

64

65 public void ChangeName(string nam)//---改名的方法

66 {

67 Name = nam;

68 }

69

70 public void ChangeNameAndAddAge(string name,int age)//------具有两个参数的方法,用来演示反射具体方法的详细情况

71 {

72 this.Name = name;

73 this.Age += age;

74 }

75

76 public IEnumerator GetEnumerator()//---实现接口

77 {

78 return children.GetEnumerator();

79 }

80

81 }

82

83

84

85 public class Program

86 {

87

88

89 构建自定义元数据查看器#region 构建自定义元数据查看器

90

91 //-------------显示传入类型拥有的方法名称

92 public static void ListMethods(Type t)

93 {

94 Console.WriteLine("\n该类型的所有方法:");

95 MethodInfo mi = t.GetMethods();

96 foreach (MethodInfo m in mi)

97 {

98 Console.WriteLine("\t方法名:{0}",m.Name);

99 }

100 }

101

102

103 //-------------显示一个方法的所有参数信息

104 public static void ListParameters(MethodInfo m)

105 {

106 ParameterInfo pi = m.GetParameters();

107 foreach (ParameterInfo p in pi)

108 {

109 Console.WriteLine("参数名:{0}\t参数类型:{1}",p.Name,p.ParameterType);

110 }

111 }

112

113

114 //-------------显示一个特定方法的详细情况

115 public static void ListMethodDetail(Type t, string MethodName)

116 {

117 MethodInfo m = t.GetMethod(MethodName);

118 Console.WriteLine("\n显示方法详情\n方法名称:{0}", MethodName);

119 Console.WriteLine("方法返回值类型:{0}", m.ReturnType.FullName);

120 ListParameters(m);

121

122 }

123

124 //------------显示传入类型拥有的字段名称

125 public static void ListFields(Type t)

126 {

127 Console.WriteLine("\n该类型的所有字段:");

128 FieldInfo fi = t.GetFields();

129 foreach (FieldInfo f in fi )

130 {

131 Console.WriteLine("\t字段名:{0}", f.Name);

132 }

133 }

134

135 //------------显示传入类型拥有的属性名称

136 public static void ListProperties(Type t)

137 {

138 Console.WriteLine("\n该类型的所有属性:");

139 PropertyInfo pi = t.GetProperties();

140 foreach (PropertyInfo p in pi)

141 {

142 Console.WriteLine("\t属性名:{0}", p.Name);

143 }

144 }

145

146

147 //------------显示传入类型拥有的基类名称

148 public static void ListInterFaces(Type t)

149 {

150 Console.WriteLine("\n该类型的所实现的接口:");

151 Type ii = t.GetInterfaces(); //-----------对GetInterfaces()的调用返回一个 Type类型 的数组(说明其实接口也是一种类型)

152 foreach (Type p in ii)

153 {

154 Console.WriteLine("\t接口名:{0}", p.Name);

155 }

156 }

157

1

网学推荐

免费论文

原创论文

浏览:
设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
湘ICP备09003080号