当我创建一个观察者时,我想在观察者watcher_Created事件中添加一个我可以阅读的对象吗?
答案 0 :(得分:4)
您可以在匿名代表中捕获它:
object o;
var watcher = new FileSystemWatcher();
watcher.Created += (sender, e) => {
Console.WriteLine(o);
// handle created event
};
此处,o
表示您要捕获的对象(不必键入object
)。
请注意,这与
实际上相同class Foo {
private readonly object o;
public Foo(object o) {
this.o = o;
}
public void OnCreated(object sender, FileSystemEventArgs e) {
Console.WriteLine(this.o);
// handle event
}
}
object o = null;
Foo foo = new Foo(o);
var watcher = new FileSystemWatcher();
watcher.Created += foo.OnCreated;
但我们让编译器为我们工作。有微妙的差异。