0
Wenn ich einen Beobachter erstelle, möchte ich ein Objekt hinzufügen, das ich während des Watcher Watcher_Created Ereignisses lesen kann?Können Sie einem C# -Wächter ein Objekt hinzufügen?
Wenn ich einen Beobachter erstelle, möchte ich ein Objekt hinzufügen, das ich während des Watcher Watcher_Created Ereignisses lesen kann?Können Sie einem C# -Wächter ein Objekt hinzufügen?
Sie können es nur in einem anonymen Delegaten erfassen:
object o;
var watcher = new FileSystemWatcher();
watcher.Created += (sender, e) => {
Console.WriteLine(o);
// handle created event
};
Hier o
stellt das Objekt, das Sie erfassen möchten (es muss nicht als object
eingegeben werden).
Beachten Sie, dass dies effektiv ist die gleiche wie
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;
aber wir haben wir für uns der Compiler die Arbeit machen. Es gibt feine Unterschiede.
eine Schließung :) Lesen Sie mehr darüber hier http://StackOverflow.com/Questions/428617/what-are-closures-in-net –