gpt4 book ai didi

c# - 获得行动目标

转载 作者:太空狗 更新时间:2023-10-29 21:59:08 26 4
gpt4 key购买 nike

我已经创建了以下示例代码:

class Program {
static void Main(string[] args) {
var x = new ActionTestClass();
x.ActionTest();
var y = x.Act.Target;
}
}

public class ActionTestClass {
public Action Act;
public void ActionTest() {
this.Act = new Action(this.ActionMethod);
}

private void ActionMethod() {
MessageBox.Show("This is a test.");
}
}

当我以这种方式执行此操作时,y 将是一个 ActionTestClass 类型的对象(为 x 创建)。现在,当我换行时

this.Act = new Action(this.ActionMethod);

this.Act = new Action(() => MessageBox.Show("This is a test."));

y( Action 的目标)将为空。有没有一种方法可以让我在使用匿名操作的过程中也获得目标(示例中的 ActionTestClass 对象)?

最佳答案

缺少 Target (iow == null) 意味着委托(delegate)要么正在调用 static 方法,要么没有环境被捕获( iow 不是闭包,只是一个“函数指针”)。

关于c# - 获得行动目标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8298027/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com