如何使用反射技术获取指定类型中方法的完整信息

namespace test

{

class ClassA

{

string _name;

internal string MethodA(string s)

{

_name = s;

return _name;

}

public void MethodB(int i, string j)

{

Console.WriteLine("MethodB方法已调用,所传递参数为{0},{1}", i, j);

}

public override string ToString()

{

return "ClassA类的对象";

}

}

class Program

{

static void Main(string[] args)

{

//如果有命名空间,则需要指定,否则返回为null

Type tp = System.Type.GetType("test.ClassA", false, false);

//利用Type对象的GetMethods()方法,返回对象中所有公共方法数组

MethodInfo[] ma = tp.GetMethods();

Console.WriteLine("/n/t=============ClassA类所含的方法============");

foreach (MethodInfo s in ma)

{

Console.WriteLine("/n方法名:{0}", s.Name);

Console.WriteLine("方法所属类名:{0}", s.DeclaringType);

Console.WriteLine("方法是否为构造函数:{0}", s.IsConstructor);

Console.WriteLine("方法是否为Public:{0}", s.IsPublic);

Console.WriteLine("方法是否为internal:{0}", s.IsAssembly);

Console.WriteLine("方法是否为protected成员:{0}", s.IsFamily);

Console.WriteLine("方法是否为private成员:{0}", s.IsPrivate);

Console.WriteLine("方法是否为泛型方法:{0}", s.IsGenericMethod);

Console.WriteLine("方法是否为静态方法:{0}", s.IsStatic);

Console.WriteLine("方法是否为虚方法:{0}", s.IsVirtual);

Console.WriteLine("方法返回类型为:{0}", s.ReturnType);

//调用s的GetParameters()方法,返回ParameterInfo类型数组,遍历数组输出参数信息

foreach (ParameterInfo pm in s.GetParameters())

{

Console.WriteLine("/n/t参数{0}", pm.Name);

Console.Write("参数类型:{0}", pm.ParameterType);

Console.WriteLine("/t参数位置{0}", pm.Position);

}

}

Console.ReadLine();

}

}

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,292评论 19 139
  • 国家电网公司企业标准(Q/GDW)- 面向对象的用电信息数据交换协议 - 报批稿:20170802 前言: 排版 ...
    庭说阅读 11,321评论 6 13
  • 20- 枚举,枚举原始值,枚举相关值,switch提取枚举关联值 Swift枚举: Swift中的枚举比OC中的枚...
    iOS_恒仔阅读 2,338评论 1 6
  • ¥开启¥ 【iAPP实现进入界面执行逐一显】 〖2017-08-25 15:22:14〗 《//首先开一个线程,因...
    小菜c阅读 6,792评论 0 17
  • 脸上开始频繁的冒痘痘,拿起镜子来想挤一下。 屋里的光线有点暗。一手拿着镜子和手电,一手拿着粉刺针在脸上寻找可以挤掉...
    littleyuan阅读 225评论 0 2