Ine*_*elp 0 c# events event-listener event-handling
我是否必须担心删除分配给局部变量的事件侦听器?
考虑以下示例:
var zipUtil = new ZipUtil();
zipUtil.ProgressChanged += ZipUtil_ProgressChanged;
Run Code Online (Sandbox Code Playgroud)
我正在创建一个ZipUtil类的实例,该实例存储为方法中的局部变量。我是否必须zipUtil.ProgressChanged -= ZipUtil_ProgressChanged;在方法终止之前删除侦听器 ( ) 或者跳过该步骤是否可以?
不,您不必删除该事件处理方法。
向事件添加事件处理程序时,会创建从(包含该事件的对象)到事件处理程序的引用,而不是相反。一旦zipUtil超出范围,事件处理程序将不会对zipUtil.