参考文献

http://www.cnblogs.com/morningwang/archive/2008/03/12/1102952.html

http://msdn.microsoft.com/zh-cn/library/sf0df423.aspx

在C# 中 using的用途主要有三个

第一个是   引用命名空间// 这个可以说是最常用的

using namespace;

第二个是 为命名空间或类型创建别名。这称为“using 别名指令”。

using Project = PC.MyCompany.Project;

Project.MyClass mc = new Project.MyClass();

第三个是

当使用 IDisposable 对象时,应在 using 语句中声明和实例化此对象。using   语句按照正确的方式调用对象上的 Dispose 方法,并(在您按照前面所示方式使用它时)会导致在调用 Dispose 时对象自身离开作用域。在 using 块中,对象是只读的并且无法修改或重新赋值。   using 语句确保即使在调用对象上的方法时发生异常Dispose方法也会被调用。可通过将对象放入 try 块中并在finally 块中调用Dispose来达到同样的结果;实际上,这就是编译器转换 using 语句的方式。前面的代码示例在编译时将扩展为以下代码(请注意,使用额外的大括号为对象创建限制范围):

using (Font font1 = new Font("Arial", 10.0f))
{
    byte charset = font1.GdiCharSet;
}
----------------------------分割线-------------------------------

{
  Font font1 = new Font("Arial", 10.0f);
  try
  {
    byte charset = font1.GdiCharSet;
  }
  finally
  {
    if (font1 != null)
      ((IDisposable)font1).Dispose();
  }
}

//这段是摘自MSDN 里边的话,换句话说就是  using 块里边的代码  掉在使用using之后,运行超出using 域后,变量(连接)在内存中会被释掉(非托管) 这样有两点好处,第一是  比较安全,即使有异常 也不会导致一直连接数据库等(当时看严峻的代码之后发现的),第二点是 开速释放掉内存之后  ,提高代码效率

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

C# 中using的几个用途的更多相关文章

  1. twitter storm源码走读之4 -- worker进程中线程的分类及用途

    欢迎转载,转载请注明出版,徽沪一郎. 本文重点分析storm的worker进程在正常启动之后有哪些类型的线程,针对每种类型的线程,剖析其用途及消息的接收与发送流程. 概述 worker进程启动过程中最 ...

  2. worker进程中线程的分类及用途

    worker进程中线程的分类及用途 欢迎转载,转载请注明出版,徽沪一郎. 本文重点分析storm的worker进程在正常启动之后有哪些类型的线程,针对每种类型的线程,剖析其用途及消息的接收与发送流程. ...

  3. Oracle 11G R2 RAC中的scan ip 的用途和基本原理【转】

    Oracle 11G R2 RAC增加了scan ip功能,在11.2之前,client链接数据库的时候要用vip,假如你的cluster有4个节点,那么客户端的tnsnames.ora中就对应有四个 ...

  4. 05 oracle中lock和latch的用途

    oracle中lock和latch的用途   本文向各位阐述Oracle的Latch机制,Latch,用金山词霸翻译是门插栓,闭锁,专业术语叫锁存器,我开始接触时就不大明白为什么不写Lock,不都是锁 ...

  5. CRM User Status profile中Business Transaction字段的用途

    有朋友问到User Status profile中Business Transaction字段的用途,如下图INPR, FINI所示. 实际上,这个字段作为一个桥梁,连接了User Status和Sy ...

  6. asp.net中Ajax控件的用途(二)

    1.个人觉得对于新手最为实用的PopupControlExtender,弹出层载体,在实例中可以弹出登录框,百度的登陆页面基本都用的这种形式,可以把浮动的panel宽高都设置为100%,以屏蔽底层操作 ...

  7. asp.net中Ajax控件的用途(一)

    1,UpdatePanel控件,用户更新部分内容,示例 放入一个Label和一个Button,单击按钮,label显示当前时间. 2,ScriptManagerProxy控件,每个页面只能有一个Scr ...

  8. C#中Dictionary的用法及用途

    Dictionary<string, string>是一个泛型 他本身有集合的功能有时候可以把它看成数组 他的结构是这样的:Dictionary<[key], [value]> ...

  9. (转)ASP.NET中常见文件类型及用途

    从入门导师那继承来的习惯,也是加上自己的所谓经验判断,一直对WEB开发不太感冒,可惜呀,从业近二十年,还得从头开始对付HTML.CSS.JS.ASPX,以前的经验,用不上啦!!!先从好好学习ASPX开 ...

随机推荐

  1. Nginx_查看并发连接数

    通过查看Nginx的并发连接,我们可以更清除的知道网站的负载情况.Nginx并发查看有两种方法(之所以这么说,是因为笔者只知道两种),一种是通过 web界面,一种是通过命令,web查看要比命令查看显示 ...

  2. OSG动画学习

    OSG动画学习 转自:http://bbs.osgchina.org/forum.php?mod=viewthread&tid=3899&_dsign=2587a6a9 学习动画,看了 ...

  3. [CareerCup] 17.4 Maximum of Two Numbers 两数中的较大值

    17.4 Write a method which finds the maximum of two numbers. You should not use if-else or any other ...

  4. Oracle--数据库中的五种约束

    数据库中的五种约束 数据库中的五种约束及其添加方法 五大约束 1.--主键约束(Primay Key Coustraint) 唯一性,非空性  2.--唯一约束 (Unique Counstraint ...

  5. setTimeout的用法

    var n = 0; function fnTime(){alert(++n);}// 常用写法// 不加括号方式setTimeout(fnTime,5000);// 加字符串方式setTimeout ...

  6. winform把图片存储到数据库

    1.先在Form中放一个PictureBox控件,再放三个按钮. 2.双击打开按钮,在里面写如下代码: OpenFileDialog open1 = new OpenFileDialog(); Dia ...

  7. SPFA导读及介绍(转载)

    适用范围:给定的图存在负权边,这时类似Dijkstra等算法便没有了用武之地,而Bellman-Ford算法的复杂度又过高,SPFA算法便派上用场了. 我们约定有向加权图G不存在负权回路,即最短路径一 ...

  8. php连接多数据库

    <?php $conn1=mysql_connect('localhost','root','','new_link '); $conn2=mysql_connect('localhost',' ...

  9. String的hashcode(java)

    hashCode就是我们所说的散列码,使用hashCode算法可以帮助我们进行高效率的查找,例如HashMap,说hashCode之前,先来看看Object类. Java程序中所有类的直接或间接父类, ...

  10. 【转】在sqlserver下增加MYSQL的链接服务器,实现分布式数据库开发第一步

    首先要在SQLserver上服务器上这装ODBC对mysql的支持,我下载了mysql-connector-odbc-5.1.5-win32.rar,安装后在ODBC中有了DRIVER={MySQL ...