首页 新闻 会员 周边

如何输出函数名字符串

0
悬赏园豆:10 [待解决问题]
已有一个函数

int a=2;
int b=5;
Method(a, b);

希望用
GetName(Method(a, b));

能够输出输出他的函数名和参数值:字符串
"Method(2,5)"





问题补充:

暂时用CodeDOM动态代码生成来解决,但还是太繁琐了

YTYT2002YTYT的主页 YTYT2002YTYT | 初学一级 | 园豆:113
提问于:2014-12-14 22:15
< >
分享
所有回答(2)
0
    public string Method(int a, int b)
    {
        return  string.Format("Method({0},{1})",a,b);
    }
    public string GetName(string MethodStr)
    {
        return MethodStr;
    }
//供参考哈
狼刺 | 园豆:204 (菜鸟二级) | 2014-12-15 10:02

谢谢您的回复!

但是和需求有些差别。你提供的方法需要已知函数名,我希望得到的是输出任意调用的函数。

其中一个场景是:输出若干.net函数列表。

 

支持(0) 反对(0) YTYT2002YTYT | 园豆:113 (初学一级) | 2014-12-17 13:42
0

 MethodInfo.GetCurrentMethod().Name

放在方法里面,可以获取到当前方法的方法名,输出结果自己拼一下就行了

xmj112288 | 园豆:126 (初学一级) | 2014-12-16 19:47

感谢您的回复!

可能是我写的需求有点歧义。GetCurrentMethod()是从栈顶查找上一个被调函数,适用于自制log错误记录等方面。 我希望能够在不调用函数的情况下,输出函数名和参数字符串。以往我做函数解析执行是为每个被调函数提供函数名拼装和函数解析功能,但太繁琐了。最好能够像某些解析型语言那样够输出函数自身(而无需执行该函数)。若在IDE中改变了函数名,能够直接自动重构出输出的函数名字符串。

支持(0) 反对(0) YTYT2002YTYT | 园豆:113 (初学一级) | 2014-12-17 13:51

@YTYT2002YTYT:  直接把方法当参数,返回该方法名

        private static string TestMethod(Action action)
        {
            return action.GetMethodInfo().Name;
        }
支持(0) 反对(0) xmj112288 | 园豆:126 (初学一级) | 2014-12-18 15:03
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册