using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Reflection;
namespace 使用反射获取方法的相关信息
{
class Myclass //自定义我的类
{
int a;
int b;
public Myclass(int x, int y)
{
a = x;
b = y;
}
public int Sum()
{
return a + b;
}
public void Set(int i, int j)
{
a = i;
b = j;
}
public void show()
{
Console.WriteLine("x:{0},y:{0}", a, b);
}
}
class Program
{
static void Main(string[] args)
{
//Type类型类
//.Net系统级方法typeof
Type ty = typeof(Myclass);//获取指定类的结构 //相当于序列化
Console.WriteLine(ty.Name);//显示获取的类名
MethodInfo[] m = ty.GetMethods();//Methods方法的意思 返回所有公共方法
Module myModule;
// myModule.
// Console.WriteLine(Modul);
foreach (MethodInfo m1 in m)//同样遍历每一个方法
{
Console.Write(" " + m1.ReturnType.Name + " " + m1.Name + " (");
ParameterInfo[] pt = m1.GetParameters();//获取当前方法的参数列表
for (int i = 0; i < pt.Length; i++)//循环参数列表
{
Console.Write(pt[i].ParameterType.Name + " " + pt[i].Name);//在方法打的括号里面添加每个参数类型和名称
if (i + 1 < pt.Length)//最后一个参数就不用加逗号了
{
Console.Write(",");//用逗号隔开
}
}
Console.WriteLine(")");//WriteLine 给后面写上括号+换行
}
Console.ReadLine();
}
}
}