isp*_*iro 0 c# using-statement
当一个字段用于创建另一个字段,然后处理 - 我看到两个选项.第一:
Image image = Image.FromFile(path);
Bitmap bitmap = (Bitmap)image.GetThumbnailImage(32, 32, null, new IntPtr());
image.Dispose();//not needed anymore.
//use bitmap
bitmap.Dispose();
Run Code Online (Sandbox Code Playgroud)
第二:
using (Image image = Image.FromFile(path))
{
using (Bitmap bitmap = (Bitmap)image.GetThumbnailImage(32, 32, null, new IntPtr()))
{
//use bitmap
}
}
Run Code Online (Sandbox Code Playgroud)
逻辑1将是第一个(因为在使用Image时不需要Bitmap),但using语句通常优先于Dispose.
还有第三种方法 - using在第二种方式中终止第一种方式吗?
是的,有:将代码生成缩略图形成方法:
Bitmap GetThumbnail(string path)
{
using (Image image = Image.FromFile(path))
{
return (Bitmap)image.GetThumbnailImage(32, 32, null, new IntPtr());
}
}
// ...
using (Bitmap bitmap = GetThumbnail(path))
{
//use bitmap
}
Run Code Online (Sandbox Code Playgroud)
请注意:
我同意Oded的评论.我会使用这段代码不是因为它image首先处理,而是因为它更具可读性.
| 归档时间: |
|
| 查看次数: |
153 次 |
| 最近记录: |