如想实现如下:
private void Func(int i,decimal d,string s)
{
     //我想知道:
     //1.Func的被调用参数的数量
     //2.Func此时的参数类型
     //3.Func此时的某个参数的具体值
     //这个C#里实现否? 
}

解决方案 »

  1.   


    GetCurrentMethod只是在MethodBase中,我用的是VS2008TS,帮助中没有具体例子,能否给个范例?
      

  2.   

    private static void Func(int i, decimal d, string s)
    {
        //我想知道:
        //1.Func的被调用参数的数量
        //这个没看懂,被调用?参数的数量不就是3个么?
        StackFrame frame = new StackFrame(0);
        MethodBase m =  frame.GetMethod();//当前方法,反射获得
        ParameterInfo[] parameters = m.GetParameters();//反射参数列表
        Console.WriteLine(parameters.Length);//3
        //2.Func此时的参数类型
        foreach (ParameterInfo p in parameters)
        {
            Console.WriteLine(p.ParameterType.Name + " " + p.Name);//输出3次
            //Int32 i
            //Decimal d
            //String s
        }
        //3.Func此时的某个参数的具体值
        //第三个不知道如何实现
    }