【发布时间】:2015-01-16 18:41:45
【问题描述】:
我想创建一个将“C# 函数调用”转换为字符串的函数。 例如: 在我的 C# 项目中有一个公共函数,可以这样调用:
myTestClass.myTestFunction();
这是一个没有参数和返回值的函数。 现在我想实现另一个接受 C# 的函数 “表达式”作为参数并将“表达式”转换为字符串:
Expression<Func<???>> expr = () => myTestClass.myTestFunction();
string myString="";
myString=convertExpressionToString(expr);
myString 现在应该包含“myTestClass.myTestFunction();” 包括类在内的完整函数调用很重要 名称在字符串内。
有什么办法解决这个问题吗?
【问题讨论】:
-
你可能想用
nameof()函数等待c#6 -
我认为使用 BCL 没有简单的解决方案,但是有一些第三方库支持使用 C# 语法打印表达式。
-
搜索“反射”和“成员表达式”。此类问题之前已在此处得到解答。
标签: c#