从局部变量中删除事件侦听器

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;在方法终止之前删除侦听器 ( ) 或者跳过该步骤是否可以?

O. *_*per 5

不,您不必删除该事件处理方法。

向事件添加事件处理程序时,会创建从(包含该事件的对象)到事件处理程序的引用,而不是相反。一旦zipUtil超出范围,事件处理程序将不会对zipUtil.