参考文献

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. Makefile简易模板

    MAKE = g++ -g #MAKE = gcc -g FILES = tf all : $(FILES) #DYSRC = target.c #DYTGT = $(DYSRC:.c=.o) %.o ...

  2. JS相关环境搭建:Nodejs、karma测试框架、jsDuck、Express

    第一章:压缩js(nodejs,uglify) 第一步:安装nodejs环境 直接下载http://www.nodejs.org/download/ 下载完成后直接下一步下一步即可,完了我们就具有no ...

  3. OSG中的示例程序简介

    OSG中的示例程序简介 转自:http://www.cnblogs.com/indif/archive/2011/05/13/2045136.html 1.example_osganimate一)演示 ...

  4. Super Jumping! Jumping! Jumping!——E

    E. Super Jumping! Jumping! Jumping! Time Limit: 1000ms Memory Limit: 32768KB 64-bit integer IO forma ...

  5. iOS中JSONModel的使用

    iOS中JSONModel的使用   流弊的JSON数据模型框架 https://github.com/jsonmodel/jsonmodel 版本 1.3.0 如果你喜欢JSONModel,并且使用 ...

  6. android-数据存储之手机内部file存储

    一.基础概要 1.说明: 1>应用程序运行需要一些较大的数据或者图片可保存在手机内部 2>文件类型:任意 3>路径:/data/data/packageName/files/ 4&g ...

  7. HDU 5762

    Teacher Bo Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others) Tot ...

  8. 对Oracle10g rac ons服务的一些理解

    1.什么是ONS ONS(Oracle Notification Service)是Oracle Clusterware 实现FAN Event Push模型的基础.     在传统模型中,客户端需要 ...

  9. rman恢复误删除的一张表(不完全恢复)

    恢复误删除的一张表可以使用很多方法,如日志挖掘.闪回等,rman恢复(不完全恢复)肯定不是最好的,也不建议用, 现在我们只是演示一下这种恢复. 1 RMAN备份数据库 2创建测试表 3查看此时的SCN ...

  10. FineUi导出时禁用ajax即EnableAjax="false"出现问题的解决方法

    fineui导出时会出现乱码, 在按钮上添加EnableAjax="false"属性禁用ajax就可以正常导出.但如果我在后台代码中直接return 而不进行导出流操作,则前台脚本 ...