处理ImageList
对象的适当方法是什么?处理ImageList
假设我和private ImageList imageList
成员有一些类。现在,在某些时刻,我执行下面的代码:
// Basically, lazy initialization.
if (imageList == null)
{
imageList = new ImageList();
Image[] images = Provider.CreateImages(...);
foreach (var image in images)
{
// Does the 'ImageList' perform implicit copying here
// or does it aggregate a reference?
imageList.Images.Add(image);
// Do I need to do this?
//image.Dispose();
}
}
return imageList;
在同一个班我有Dispose
方法实现,其执行方式如下:
public void Dispose()
{
if (!disposed)
{
// Is this enough?
if (imageList != null)
imageList.Dispose();
disposed = true;
}
}
我敢肯定有这段代码存在一些潜在的问题,所以请你帮我把它改正。
相关:[ImageList中:处置原始图像从列表中删除它(http://stackoverflow.com/questions/17639237/imagelist-disposing-the-original-image-removes-it-from-列表)。在[ImageList'中的'originals'字段的参考源中的注释](https://referencesource.microsoft.com/#System.Windows.Forms/winforms/Managed/System/WinForms/ImageList.cs,75)也值得一读。 – jrh 2016-10-11 18:34:58