给事件处理程序传递参数我想用我的事件来传递我的List作为参数publiceventEventHandler_newFileEventHandler;列表_filesList=newList();publicvoidstartListener(stringdirectoryPath){FileSystemWatcherwatcher=newFileSystemWatcher(directoryPath);_filesList=新列表();_timer=newSystem.Timers.Timer(5000);watcher.Filter="*.pcap";watcher.Created+=watcher_Created;watcher.EnableRaisingEvents=true;watcher.IncludeSubdirectories=true;}voidwatcher_Created(objectsender,FileSystemEventArgse){_timer.Elapsed+=newElapsedEventHandler(myEvent);_timer.Enabled=true;_filesList.Add(e.FullPath);_fileToAdd=e.FullPath;}privatevoidmyEvent(objectsender,ElapsedEventArgse){_newFileEventHandler(_filesList,EventArgs.Empty);;从我的主窗体,我想得到这个列表:voidlistener_newFileEventHandler(objectsender,EventArgse){}创建一个新的EventArgs类,例如:放;}公共ListEventArgs(列表数据){数据=数据;}}并让你的活动像这样:publiceventEventHandlerNewFileAdded;添加点火方法:protectedvoidOnNewFileAdded(Listdata){varlocalCopy=NewFileAdded;if(localCopy!=null){localCopy(this,newListEventArgs(data));当你想处理这个事件时:myObj.NewFileAdded+=newEventHandler(myObj_NewFileAdded);处理程序方法如下所示:publicvoidmyObj_NewFileAdded(objectsender,ListEventArgse){//Dowhatyouwantwithe.Data(ItisaListofstring)}您可以将事件的签名定义为任何您想要的如果事件需要提供的唯一信息是列表,那么只需传递列表:publiceventAction>MyEvent;privatevoidFoo(){MyEvent(newList(){"a","b","c"});那么在订阅事件的时候:以上是C#学习教程:传递参数为事件处理器分享的所有内容,如果对你有用,需要进一步了解C#学习教程,希望大家多多付出注意——publicvoidMyEventHandler(Listlist){//...}本文采集自网络,不代表立场,如涉及侵权,请点击右边联系管理员删除。如需转载请注明出处:
