【发布时间】:2026-02-22 11:00:01
【问题描述】:
我正在尝试在 c# 中做一些类似于 javascript 的 function.bind() 的事情。
我有一个动作:
var action = new Action(()=>{this.SomeProperty = 123;});
在运行时,我想在不同的闭包中执行操作,因此实例“this”是一个动态对象。
类似这样的:
var action = new Action(()=>{this.SomeProperty = 123;});
dynamic myDynamic = new ExpandoObject();
myDynamic.SomeProperty=321;
action.Bind(myDynamic); <--Of course this does not work...
action.DynamicInvoke();
Console.WriteLine(myDynamic.SomeProperty); //Should write 123...
鉴于我正在了解运行时在 lambda 和动态方面的工作原理,我开始认为这是不可能的。也许有某种使用反射的方法?
谢谢 兰斯
非常感谢任何建议。
【问题讨论】:
标签: c# lambda runtime action bind