【发布时间】:2011-02-27 10:33:39
【问题描述】:
我有一个案例,我希望给定事件执行一次,而且只执行一次。我正在尝试这样做,但我遇到了问题(否则我不会问)。请注意,以下代码位于决定需要触发事件的函数内部。
EventHandler h = delegate(Object sender, EventArgs e) {
FiringControl.TheEvent -= h; // <-- Error, use of unassigned local variable "h"
// Do stuff
}
FiringControl.TheEvent += h;
一般来说,这应该可以工作,因为在代表完成运行之前为代表保留范围的方式,但是,由于 h 在我尝试使用它时正在构建过程中,它仍然被认为是显然是“未初始化”。
【问题讨论】: