其实对于.NET的学习者一开始都接触using这个关键字了,可能大家没有怎么在意,包括我本人也是的,直到今天有人问我using的作用时,才引起了我的注意。
      概况来说可以分为两种:第一种,就是using作为引用命名空间的引用(这个就是调用.NET的API或自己定义的方法),这一种其实比较常见我在这里就不多说了。主要是第二种,先看一小Demo吧!

Code
 1using System;
 2using System.IO;
 3
 4/**//// <summary>
 5/// FileDemo 的摘要说明
 6/// </summary>
 7public class FileDemo
 8{
 9    public FileDemo()
10    {
11        //
12        // TODO: 在此处添加构造函数逻辑
13        //
14    }
15    public void MainMethodOne()  //这个是using的用法 隐式的调用Dispose()方法的
16    {
17        //创建写入临时文件的字符串
18        Byte[] bytesToWrite = new Byte[] { 1, 2, 3, 4, 5 };
19        //创建临时文件
20        using (FileStream fs = new FileStream("Temp.txt", FileMode.Create))
21        {
22            //将字符串写入临时文件
23            fs.Write(bytesToWrite, 0, bytesToWrite.Length);
24        }
25        //删除临时文件
26        File.Delete("Temp.txt"); //现在它总能释放资源
27    }
28
29    public void MainMethodTwo() //这个是显示的调用Dispose()方法的
30    {
31        //创建写入临时文件的字符串
32        Byte[] bytesToWrite = new Byte[] { 1, 2, 3, 4, 5 };
33        //创建临时文件
34        FileStream fs = null;
35        try
36        
37            fs = new FileStream("Temp.txt", FileMode.Create));
38            //将字符串写入临时文件
39            fs.Write(bytesToWrite, 0, bytesToWrite.Length);
40        }
41        finally
42        {
43            //写完后显式关闭文件
44            if(fs!=null)
45            {
46                (IDisposable)fs.Dispose();
47            }
48        }
49        //删除临时文件
50        File.Delete("Temp.txt"); 
51    }
52}
53

在这里using的作用是作为一个临时对象的生存区域;因为.NET是托管代码的机制,而我们有时需要代码要求非托管资源,如文件句柄或SQL连接。在使用一个或多个此类资源完成代码后,using块确保这些资源的释放。在这种情况下我们就需要使用using了。
using 块可以分获取、使用和释放三个部分。
1.获取表示创建变量并将其初始化,以便引用系统资源。在using()中
2.使用表示访问资源并使用资源执行操作。using{}之间的语句代表资源的使用过程。
3.释放表示针对resourcename中的对象调用Dispose方法。这使该对象可以完全终止其非托管资源“}”块释放“{”块控制的资源。
基本上就是这些了吧!

转载于:https://www.cnblogs.com/morningwang/archive/2008/03/12/1102952.html

using关键字的用法以及作用相关推荐

  1. static关键字的用法与作用

    在java的关键字中,static和final是两个我们必须掌握的关键字.不同于其他关键字,他们都有多种用法,而且在一定环境下使用,可以提高程序的运行性能,优化程序的结构.下面我们先来了解一下stat ...

  2. 解析java当中switch语句的作用和break、continue关键字的用法

    解析java当中switch语句的作用和break.continue关键字的用法 A. switch语句 1.含义 是分支结构,使程序按照条件的判断结果去执行相应的程序代码. 2.语法 switch( ...

  3. escape mysql_MySQL中ESCAPE关键字的用法详解

    MySQL转义 转义即表示转义字符原来的语义,一个转义字符的目的是开始一个字符序列,使得转义字符开头的该字符序列具有不同于该字符序列单独出现时的语义. MySQL中,转义字符以"" ...

  4. __declspec关键字详细用法

    __declspec关键字详细用法 2009-01-21 16:23 __declspec用于指定所给定类型的实例的与Microsoft相关的存储方式.其它的有关存储方式的修饰符如static与ext ...

  5. instance的用法 php,php面向对象之instanceof关键字的用法

    instanceof是php5中新增的关键字,它的作用有2个:(1)判断一个对象是否是某个类的实例,(2)判断一个对象是否实现了某个接口. 一般格式为:ObjectName instanceof Cl ...

  6. inline内联的用法与作用

    inline内联的用法与作用      内联函数是一种编译机制,优点从代码上是看不出来的,但是程序的执行效率上有差别,通常,编译器对函数调用的处理是一种类似中断的方式,即当执行到函数调用语句时,程序把 ...

  7. java instanceof 动态_Java关键字instanceof用法及实现策略

    instanceof 严格来说是Java中的一个双目运算符,用来测试一个对象是否为一个类的实例,用法为: boolean result = obj instanceof Class 其中 obj 为一 ...

  8. C++中virtual关键字的用法

    关于virtual关键字的用法总结如下,有错误或者总结不到位的情况请能帮本人指出,非常感谢! Virtual是C++ OO机制中很重要的一个关键字.只要是学过C++的人都知道在类Base中加了Virt ...

  9. java final char_java基本数据类型总结 类型转换 final关键字的用法

    java基本数据类型总结 Java数据类型总结 数据类型在计算机语言里面,是对内存位置的一个抽象表达方式,可以理解为针对内存的一种抽象的表达方式.接触每种语言的时候,都会存在数据类型的认识,有复杂的. ...

最新文章

  1. docker 保存 环境持久化_18、docker的持久化存储和数据共享
  2. SQL   PL/SQL   SQL*PLUS三者的区别
  3. wrapper 并集如何使用
  4. python缩进说法_【多选题】关于Python程序中与“缩进”有关的说法中,以下选项中错误的是()。...
  5. python读取枚举_在python中枚举(enumerate in python)
  6. GridView 的EmptyDataText 及 EmptyDataTemplate
  7. 炉石怎么看服务器是否维护,炉石传说服务器维护故障补偿方案详细内容
  8. 互动教程 for Excel 2016
  9. 莫烦python_莫烦python教学网站
  10. 金山词霸2009牛津版完整破解版+绿色精简版下载
  11. 计算机绘出一条虚线算法步骤,计算机图形学 第二章 基本图形生成算法.ppt
  12. Ubuntu 和NVIDIA显卡的兼容问题解决
  13. 一款JavaScript 混淆(Obfuscator)工具(Tool)的研究(六)更新
  14. 基于SSM的博客系统-原创教程
  15. 一文了解啤酒、葡萄酒、黄酒的种类
  16. 记一次投票活动的感触
  17. java Math类的常用方法介绍
  18. B3U3 Text A Language Focus 共32词
  19. HM-3200: Tetramesh(四面体网格)
  20. idm 无法下载此文件 备注: SSL_connect error 5

热门文章

  1. Nginx页面乱码问题
  2. 牛客 2022年中国高校计算机大赛-团队程序设计天梯赛(GPLT)上海理工大学校内选拔赛 签到题13题
  3. 【软考】算法与数据结构复习指南
  4. AcWing基础算法课Level-2 第二讲 数据结构
  5. 【Codeforces gym 102388】SUFE ICPC Team Formation Test,签到题BDG
  6. java求几何周长面积_JAVA:编写求解几何图形(如三角形,矩型,圆,多边型)的周长、面积的应用程序...
  7. vue mianjs 引用css_7个有用的Vue开发技巧
  8. apicloud mysql 登录_PHP+MySQL实现前台的登陆注册。
  9. bzoj 2844: albus就是要第一个出场(线性基)
  10. bzoj 1605: [Usaco2008 Open]Crisis on the Farm 牧场危机(DP)