惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
C
CERT Recently Published Vulnerability Notes
Know Your Adversary
Know Your Adversary
Security Archives - TechRepublic
Security Archives - TechRepublic
Security Latest
Security Latest
P
Privacy & Cybersecurity Law Blog
P
Privacy International News Feed
月光博客
月光博客
Stack Overflow Blog
Stack Overflow Blog
H
Hackread – Cybersecurity News, Data Breaches, AI and More
H
Help Net Security
Recent Commits to openclaw:main
Recent Commits to openclaw:main
AI
AI
O
OpenAI News
M
MIT News - Artificial intelligence
Scott Helme
Scott Helme
U
Unit 42
P
Proofpoint News Feed
罗磊的独立博客
C
Check Point Blog
MongoDB | Blog
MongoDB | Blog
Engineering at Meta
Engineering at Meta
博客园 - 三生石上(FineUI控件)
阮一峰的网络日志
阮一峰的网络日志
Apple Machine Learning Research
Apple Machine Learning Research
T
The Exploit Database - CXSecurity.com
I
InfoQ
云风的 BLOG
云风的 BLOG
aimingoo的专栏
aimingoo的专栏
Google DeepMind News
Google DeepMind News
W
WeLiveSecurity
Webroot Blog
Webroot Blog
P
Palo Alto Networks Blog
C
Cybersecurity and Infrastructure Security Agency CISA
N
News and Events Feed by Topic
Cisco Talos Blog
Cisco Talos Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
博客园 - Franky
A
About on SuperTechFans
美团技术团队
J
Java Code Geeks
T
Tenable Blog
L
LINUX DO - 最新话题
NISL@THU
NISL@THU
G
Google Developers Blog
Forbes - Security
Forbes - Security
爱范儿
爱范儿
S
Security @ Cisco Blogs
Project Zero
Project Zero
有赞技术团队
有赞技术团队

博客园 - 程序人生-123

如何科学设计自己的网站网页 如何利用Visual Studio创建自己的模板 网页设计中的页面尺寸标准 javascript小技巧之大全集 自定义服务器控件开发 网页META属性简介 CSS和JavaScript标签对照表 网站页面设计中的Css十大注意 网站压力测试 页面跳转 XHTML DHTML SHTML的区别 交换机路由器的组网 色彩搭配——网页设计技巧 怎样设计网页 Ping命令技巧 IE6、IE7、IE8共存方法 MOSS 对象模型的简单开发 开始→运行→命令集锦 SharePoint Designer 的利与弊
using关键字的用法以及作用
程序人生-123 · 2008-03-13 · via 博客园 - 程序人生-123

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


 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[] 12345 };
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[] 12345 };
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方法。这使该对象可以完全终止其非托管资源“}”块释放“{”块控制的资源。
基本上就是这些了吧!

转自:

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