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();
}
}
}