using 为什么在OpenFileDialog 中是没有必要的呢

背景:之前写有关文件操作的都使用using来将其包住,今天突然发现using的时候在有些时候是非必要的。

之前老是这样子写

private void selectFileMethod(object obj)
{
    using (OpenFileDialog openFileDialog = new OpenFileDialog())
    {
        if (openFileDialog.ShowDialog() == true)
        {
            string selectedFilePath = openFileDialog.FileName;
            // 处理选中的文件路径
        }
    }
}

但是对这里的OpenFileDialog来说,是没有必要的

首先明确using的经常的使用场景是文本流,数据库连接,窗口句柄,图标,打印机资源,主要用于那些实现了 IDisposable 接口的对象。这样在块结束后自动调用Dispos方法,释放资源。但是这里的OpenFileDialog,没有实现IDisposable 接口,不持有任何显式释放的非托管资源。它的内存资源.NET会自动管理的,不需要手动释放。

比较常见的实现了IDisposable接口的类有

  1. 流(Stream)类:FileStream, MemoryStream等
  2. I/O类:BinaryReader, StreamReader等
  3. 数据库连接类:SqlConnection, OracleConnection等
  4. 图像处理类:Bitmap, Icon等
  5. 加密类:SymmetricAlgorithm, RSA等

补充:IDisposable 接口除了使用非托管资源类实现外,需要占用大量托管内存的类实现IDisposable 接口后,方便触发垃圾回收,减轻GC压力,图像就是这样。

  • 10
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值