调用该函数后,您将获得一个具有图标句柄的结构体。使用静态方法Icon.FromHandle,我可以将其转换为System.Drawing.Icon类的对象。该类实现了System.IDisposable。正确的使用方法应该像这样:
using (Icon icon = Icon.FromHandle(shFileInfo.hIcon))
{
// do what you need to do with the icon
}
离开 using 语句后,图标对象将被处理。
在 Icon.FromHandle (点击查看) 的描述中,MSDN 警告:
使用此方法时,您必须使用 Win32 API 中的 DestroyIcon 方法处理原始图标,以确保释放资源。
并且在 Icon.Dispose (点击查看) 中:
释放此图标使用的所有资源。
问题:
只 Dispose() 对象是否足够?还是应该同时调用 Dispose() 和 DestroyIcon,或者只调用 DestroyIcon 而不是 Disposing 对象?