一个BS型程序, 因为要做联动的效果(比如省份和城市), 我做了一个用户控件, 控件中里有一个公共事件:
public delegate void PlayGame(ItemEventArgs e);
public event PlayGame ItemChangEvent;
在A页面时就注册这个事件, protected void Page_Load(object sender, EventArgs e)
{
// 注册事件
this.cboExCityName.ItemChangEvent += new MulSelectControl.PlayGame(ItemChang);
}
我在Eaglt页面上说"最常见的情况就是给对象添加了事件处理函数,但当不再使用该对象时却没有将该函数从对象的事件handler中减掉。", 这种情况会发生内存泄露,
我不知道我这种写法会不会有这种情况, 大家来谈谈...
应该不会造成内存泄漏。除非 this.cboExCityName 一直不被释放,但这是不可能的。其实事件引起的内存泄漏问题更多的是出现在 winform 程序中,asp.net 程序一般是不会出现的,除非你用静态变量。
另外你那个文章地址好像不太对,是不是这篇文章?
http://www.cnblogs.com/eaglet/archive/2009/01/07/1371060.html