0
當我創建一個觀察者我想添加一個對象,我可以在觀察者watcher_Created事件期間閱讀?你可以添加一個對象到C#監視器嗎?
當我創建一個觀察者我想添加一個對象,我可以在觀察者watcher_Created事件期間閱讀?你可以添加一個對象到C#監視器嗎?
你可以只捕捉到它的匿名委託:
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;
但我們已經讓編譯器做的工作我們。有微妙的差異。
a closure :)閱讀更多關於它在這裏http://stackoverflow.com/questions/428617/what-are-closures-in-net – 2011-01-13 17:27:31