反射整理学习<一>(转)
2012-04-26 13:23
316 查看
前言:
由于身边也没什么学习资料,也就一边利用网络一边自己理解整理,慢慢地步入神秘的反射机制。
TyepTest Code
运行结果:
转自:/article/5009874.html
由于身边也没什么学习资料,也就一边利用网络一边自己理解整理,慢慢地步入神秘的反射机制。
TyepTest Code
using System; using System.Reflection; namespace TypeInfoTest { public class Program { static void Main(string[] args) { GetTypeInfo(" TypeInfoTest.Program"); Console.ReadKey(); } private static void GetTypeInfo(string className) { try { Type type = Type.GetType(className); Console.WriteLine("类型名:" + type.Name); Console.WriteLine("类的全名:" + type.FullName); Console.WriteLine("命名空间名:" + type.Namespace); Console.WriteLine("程序集名:" + type.Assembly); Console.WriteLine("模块名:" + type.Module); Console.WriteLine("基类名" + type.BaseType); Console.WriteLine("运行时映射类名:" + type.UnderlyingSystemType); Console.WriteLine("是否是类:" + type.IsClass); Console.WriteLine("是否是从COM类型库导入的:"+type.IsImport);//是否应用了ComImportAttribute属性 Console.WriteLine("是否是泛型类型:"+type.IsGenericType); Console.WriteLine("是否是接口:" + type.IsInterface); Console.WriteLine("是否是抽象类:" + type.IsAbstract); Console.WriteLine("是否是数组类:" + type.IsArray); Console.WriteLine("是否是值类型:" + type.IsValueType); Console.WriteLine("是否是基本类型:" + type.IsPrimitive); Console.WriteLine("是否是公共类型:"+type.IsPublic); Console.WriteLine("关联的属性:"+type.Attributes); Console.WriteLine("句柄:"+type.TypeHandle); Console.WriteLine("===============MakeArrayType================="); Type t = typeof(Program).MakeArrayType(); Console.WriteLine("Program类型的数组: {0}", t); t = typeof(Program).MakeArrayType(2); Console.WriteLine("Program类型的数组: {0}", t); try { t = typeof(Program).MakeArrayType(-1); } catch (Exception ex) { Console.WriteLine("{0}", ex); } Console.WriteLine("===============MakeArrayType================="); Console.WriteLine("\n===============.GetMethods================="); MethodInfo[] Minfos = typeof(Program).GetMethods(); foreach (MethodInfo i in Minfos) { Console.WriteLine(i.Name); } Console.WriteLine("===============.GetMethods=================\n"); #region "类的公共成员" Console.WriteLine("类的公共成员:"); foreach (MemberInfo info in type.GetMembers()) { Console.WriteLine("\t{0} :{1}", info.MemberType, info); } #endregion #region "类的字段成员" Console.WriteLine("\t类的字段成员:"); if (type.GetFields().Length > 0) { foreach (FieldInfo field in type.GetFields()) { Console.WriteLine("\t{0} :{1}", field.MemberType, field); } } else { Console.WriteLine("该类型不包含字段!"); } #endregion } catch (Exception ex) { Console.WriteLine(ex.Message); } } } }
运行结果:
转自:/article/5009874.html
相关文章推荐
- 反射整理学习<一>
- 反射整理学习<一>
- IOS之Foundation之探究学习Swift实用基础整理<一>
- 反射整理学习<二>
- IOS之Foundation之探究学习Swift实用基础整理<一>
- IOS之Foundation之探究学习Swift实用基础整理<一>
- &lt;转&gt;iOS&nbsp;学习资料整理
- 树的学习<一>-----二叉树的遍历
- oracle开发之<<SQL Cookbook>>学习笔记整理:第二章 查询结果排序
- Android Activity学习 <一> Activity基础知识和生命周期
- Scala学习整理[第十九章 泛型和约束系统]<Programming In Scala>
- HTML学习记录<一>:<abbr>及<acronym>
- Oracle学习<一>
- <大话设计模式学习一>命令模式
- XML 学习笔记<一>
- SAS学习笔记<一>
- Scala学习整理[第十一-十三章 类型/特质和其应用/包]<Programming In Scala>
- PostgreSQL学习手册(函数和操作符<一>)
- Unity ShaderLab< 一> 学习总结
- 软件开发学习笔记 <一> UML