c# - 如何将 Delegate 转换为一串代码?

标签 c# string parsing delegates

我正在尝试通过将其转换为字符串来恢复委托(delegate)的代码,但到目前为止没有成功 ):

以这段代码为例:

Delegate del = new Delegate()
del = (MethodInvoker) delegate { MessageBox.Show("hello from delegate") };

我想知道是否可以对 del 执行任何操作来检索表示其 C# 代码的字符串。

我想我正在寻找的是序列化,但我不确定... 我试过 Delegate.ToString() 但它没有返回我想要的...

最佳答案

这在一般情况下是不可能的。

如果您接受 Expression<TDelegate> (一个 expression tree )而不是一个普通的委托(delegate),你可以调用 ToString()获取字符串表示。
但是,编译器只能将 lambda 表达式(不是 block )转换为表达式树。

关于c# - 如何将 Delegate 转换为一串代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8074207/

相关文章:

c# - 我们可以将列表框作为 Gridview 中的字段,并且还可以在 Gridview 中设置可编辑字段吗?

c# - 所有表存储请求是否应该共享 CloudTable 引用

java - 字符串到 JComboBox 的转换

c - C语言打印字符串问题

java - 如何将java中的boolean代码更改为int代码

c# - 从 C# 调用 PowerShell

javascript - 将 HTML 字符串解析为 DOM 并将其转换回字符串

mysql - 如何判断字符串 'word4'的元素 'word1;word2;word3;word4'是否在字符串 'word4' ,'word5' ,'word6' ,'word7'中?

swift - Xcode 7 中缺少 libsqlite3.dylib 和 libz.dylib。如何使用 Parse?

c# - WebClient 的替代品