C# 反射(一)Type类
来源:互联网 发布:软件注册码 编辑:程序博客网 时间:2024/05/16 04:38
什么是反射:反射就是通过类对象,获取字段,属性,方法。
using System;using System.Reflection;namespace Study{ class MainClass { public static void Main(string[] args) { Console.WriteLine("-----------------------------Hello Types!-------------------------------"); People people = new People(18, "han"); //getFieldInfo(people); // getPropertyInfo(people); //getMethoedInfo(people); // getMemberInfo(people); getConstructors(people); } /// <summary> /// 获取公共字段 /// </summary> /// <param name="obj">Object.</param> public static void getFieldInfo(object obj ){ Type type = obj.GetType(); FieldInfo[] arrFieldInfo = type.GetFields(); foreach (FieldInfo fieldInfo in arrFieldInfo) { Console.WriteLine("name:" + fieldInfo.Name); Console.WriteLine("type:" + fieldInfo.FieldType.ToString()); Console.WriteLine("value:" + fieldInfo.GetValue(obj).ToString()); } Console.WriteLine("------------------GetFields字段"); } /// <summary> /// 获取熟悉 /// </summary> /// <param name="obj">Object.</param>public static void getPropertyInfo(object obj){Type type = obj.GetType();PropertyInfo[] arrPropertyInfo = type.GetProperties();foreach (PropertyInfo propertyInfo in arrPropertyInfo){Console.WriteLine("name:" + propertyInfo.Name);Console.WriteLine("property:" + propertyInfo.PropertyType);Console.WriteLine("value:" + propertyInfo.GetValue(obj).ToString());}Console.WriteLine("--------------------GetProperty获取属性"); } /// <summary> /// 获取方法 /// </summary> /// <param name="obj">Object.</param> public static void getMethoedInfo(object obj){ MethodInfo[] arrMethodInfo = obj.GetType().GetMethods(); foreach (MethodInfo mathodInfo in arrMethodInfo) { Console.WriteLine("name:"+mathodInfo.Name); //Console.WriteLine(""+mathodInfo.GetParameters().ToString());}Console.WriteLine("----------------------GetMethodInfo获取方法");} public static void getMemberInfo(object obj) { MemberInfo[] arrMemberInfo = obj.GetType().GetMembers(); foreach (MemberInfo memberInfo in arrMemberInfo) { Console.WriteLine("name:"+memberInfo.Name);}Console.WriteLine("----------------------GetMethodInfo获取方法"); }public static void getConstructors(object obj){ ConstructorInfo[] arrConstructornfo = obj.GetType().GetConstructors(); foreach (ConstructorInfo constructroInfo in arrConstructornfo){Console.WriteLine("name:" + constructroInfo.Name); ParameterInfo[] parameterInfo = constructroInfo.GetParameters();}Console.WriteLine("----------------------GetMethodInfo获取方法");} } class People { /// <summary> /// 字段 /// </summary> private int sex=0; private string work=" no work"; public int weight = 90; public string m_iId="68"; /// <summary> /// 熟悉 /// </summary> /// <value>The m i age.</value> public int m_iAge { get; set; } public string m_sName { get; set; } /// <summary> /// 构造函数 /// </summary> public People() { this.sex = 1; this.work = "student"; } public People(int age,string name){ this.m_iAge = age; this.m_sName = name; } /// <summary> /// 公共方法 /// </summary> public void sing(){ Console.WriteLine("sing"); } public void wark(){ Console.WriteLine("working"); } public void dance(){ Console.WriteLine("dance"); } }}
阅读全文
0 0
- C# 反射(一)Type类
- 【C#反射-Type类】
- C# 反射 Type Assembly类
- C# 反射 Type Assembly类
- C# 反射 Type Assembly类
- C#反射(一)
- C#反射(一)
- C# 反射(一)
- C#中的反射和Type类
- C#反射结合System.Type类实例
- C#中的反射(一)
- C#反射中的一个核心类Type类
- c# 类反射(type.gettype/typeof)和实例化
- c# 类反射(type.gettype/typeof)和实例化
- .NET反射 Type类
- 反射,System.Type类
- C#的反射技术详解(一)
- C#的反射技术详解(一)
- AngularJS进阶(五)Angular实现下拉菜单多选
- ARKit从入门到精通(2)-ARKit工作原理及流程介绍
- cnn文本分类 --deeplearning4j为例子
- ARKit从入门到精通(3)-ARKit自定义实现
- ARKit从入门到精通(4)-ARKit全框架API大全
- C# 反射(一)Type类
- ARKit从入门到精通(5)-ARScnView介绍
- ARKit从入门到精通(6)-ARSession介绍
- ARKit从入门到精通(7)-ARCamera介绍
- ARKit从入门到精通(8)-ARKit捕捉平地
- ARKit从入门到精通(9)-ARKit让飞机跟着镜头飞起来
- C++中的右值引用
- UVALive2363 POJ1005 HDU1065 ZOJ1049 I Think I Need a Houseboat【数学计算】
- ARKit从入门到精通(10)-ARKit让飞机绕着你飞起来