using语句块

尽管.NET Core运行时有垃圾收集器(GC)来负责内存清理工作,但是我们还是要自己确保当非托管资源不再使用的时候应该被清理掉。以前针对实现了IDisposable接口的对象,我们经常会使用using 语句块来这样做:

这时候它的输出是这样的:

这样写还是有一点麻烦的,能简单一些就好了。但是而如果不使用using语句的话,那资源就不会被清理:

其输出就没有disposed那段了:

using声明

但是从C# 8开始,我们可以使用using声明来做这件事了,要比之前的using语句块简单一些,直接看例子:

就是在定义变量前面的地方使用using声明。

这样做的话,在Main方法走完的时候,db这个资源是可以被清理掉的:

可以看到db被Disposed了,但是您肯定也发现了不同之处:最后两行输出的顺序发生了变化。

在使用using语句块的时候,清理动作发生在using块结束的时候:

而使用using声明以后,清理动作会发生在超出db作用范围的时候,也就是离开Main方法的时候:

总结

using语句块和using声明还是要结合具体情况来使用。。。

更详细内容请点击原文链接。

C# 8 新特性 - using 声明相关推荐

  1. ES6新特性_const声明常量以及特点---JavaScript_ECMAScript_ES6-ES11新特性工作笔记005

    然后我们再去看这个const常量.就是值不能改变的量. 然后我们看,上面就声明了个const常量. 注意常量一定要赋初始值,不赋初始值报错. 然后常量一般是大写,小写也不算错.

  2. C# 10 新特性 —— Lambda 优化

    C# 10 新特性 -- Lambda 优化 Intro C# 10 对于 Lambda 做了很多的优化,我们可以在 C# 中更加方便地使用委托和 Lambda 了,下面就来看一些示例 Lambda ...

  3. css-07--1. HTML5 的新特性2. CSS 3 的新特性

    文章目录 1. HTML5 的新特性 1.1 HTML5 新增的语义化标签 1.2 HTML5 新增的多媒体标签 1. 视频 2. 音频 3. 多媒体标签总结 1.3 HTML5 新增的 input ...

  4. 前端HTML5十大新特性详细总结

    前端HTML5十大新特性总结 一 必须知道 写前端的都知道,在代码最前面都有这一行代码,大家都知道一定要把这东西写上去. <!DOCTYPE html> 但是!这是什么玩意儿?为什么要写上 ...

  5. html5语义化边框,Html5、Css3、ES6的新特性

    html5的新特性 1.语义化标签有利于seo,有助于爬虫抓取更多的有效信息,爬虫是依赖于标签来确定上下文和各个关键字的权重. 语义化的html在没有css的情况下也能呈现较好的内容结构与代码结构 方 ...

  6. HTML的表格标签,列表标签,表单标签,HTML5有哪些新特性

    HTML的表格标签,列表标签,表单标签,HTML5有哪些新特性 欢迎大家去博客冰山一树Sankey,浏览效果更好.直接右上角搜索该标题即可 博客园主页:博客园主页-冰山一树Sankey CSDN主页: ...

  7. php7 参数类型限定,PHP 7.2新特性:参数类型声明(附代码)

    php7.2版本具有新特性,功能和改进,可以让我们编写更好的代码,下面的文章中我将介绍php7.2中的一个新的功能:参数类型声明,话不多说,让我们来具体看看正文内容. 参数类型声明 从PHP 5开始, ...

  8. 【面试】HTML5 有哪些新特性?_声明方式

    最近看了一些与html基础相关的入门教学视频,心得感悟只有:不同特性的标签记住就好了!但理智告诉我,一切还未正式开始.肿么办?-_-# 是不是可以根据具体html的面试问题对理论知识进行认知拓展与实践 ...

  9. php标量类型包括,php7新特性之标量类型声明

    标量类型声明 什么是标量类型?首先要清楚这一点,标量类型(Scalar type)是相对复合类型(Compound type)来说的:标量类型只能有一个值,而复合类型可以包含多个值.复合类型是由标量类 ...

最新文章

  1. 漫画:崩溃了!!这程序是什么玩意儿!!!
  2. 如何在微信中增加附件?
  3. Java项目:基于SSM实现房屋租赁系统
  4. SQL语言包含4个部分
  5. Java 7之集合类型 - 二叉排序树、平衡树、红黑树---转
  6. 如何挖掘消费者的隐性需求?
  7. js中text方法是啥意识_一盏茶的时间,快速捕获JS中常用的方法(细心整理,持续更新ing)...
  8. C#:System.Data.Common命名空间(数据库抽象工厂的使用)
  9. SSH(Secure Shell Protocol)命令之 grep
  10. P4062 [Code+#1]Yazid 的新生舞会(分治做法)
  11. 开源程序识别图像像素点_开源浏览器扩展程序,可放大图像
  12. android命名管道创建使用
  13. WPF老矣,尚能饭否——且说说WPF今生未来(中):策略
  14. Java的基本数据类型与转换
  15. css模糊遮罩效果_遮罩效果 css3
  16. Idea中发布JAR包到中央仓库报错问题处理 unable to find valid certification path to requested target
  17. google 搜索接口
  18. 《电子元器件的可靠性》——2.5节威布尔分布及其概率纸的结构和用法
  19. 浏览器代理服务器拒绝连接
  20. 005_wz_bbk_-v详细信息,-c生成中间文件,链接次序

热门文章

  1. 通过SQL Server操作MySQL的步骤和方法
  2. 关于C#中实现两个应用程序消息通讯的问题
  3. 技术总监谈好的程序员如何写代码
  4. 用java编写一个计算器_用java程序编写一个计算器
  5. 在Windows Media Center中收听超过100,000个广播电台
  6. android启用hdcp_如何在Android上启用优先收件箱(和设置仅重要通知)
  7. Linux 内核中断内幕【转】
  8. 移动端web开发整理
  9. 在 Linux 下使用 RAID(二):使用 mdadm 工具创建软件 RAID 0 (条带化)
  10. document.elementFromPoint