这里的using 作用是什么?

xuhongxin8477 2008-11-23 03:18:53

using System;
using System.IO;
using System.Text;

class Test
{
public static void Main()
{
string path = @"c:\temp\MyTest.txt";

// Delete the file if it exists.
if (!File.Exists(path))
{
// Create the file.
using (FileStream fs = File.Create(path))
{
Byte[] info = new UTF8Encoding(true).GetBytes("This is some text in the file.");

// Add some information to the file.
fs.Write(info, 0, info.Length);
}
}

// Open the stream and read it back.
using (FileStream fs = File.OpenRead(path))
{
byte[] b = new byte[1024];
UTF8Encoding temp = new UTF8Encoding(true);

while (fs.Read(b,0,b.Length) > 0)
{
Console.WriteLine(temp.GetString(b));
}
}
}
}
...全文
236 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
跃睿 2008-11-23
  • 打赏
  • 举报
回复
两种作用,一种是导入包,你让看的这一种是自动释放资源,如果你不写using用try...catch方法的话,必须用close方法关闭文件流!!!
vrhero 2008-11-23
  • 打赏
  • 举报
回复
这里的using语句用来提供能确保正确使用IDisposable对象的方便语法...

按照规则,当使用 IDisposable 对象时,应在 using 语句中声明和实例化此对象。using 语句按照正确的方式调用对象上的 Dispose 方法,并(在您按照前面所示方式使用它时)会导致在调用 Dispose 时对象自身处于范围之外。在 using 块中,对象是只读的并且无法进行修改或重新分配。

using 语句确保调用 Dispose,即使在调用对象上的方法时发生异常也是如此。通过将对象放入 try 块中,并在调用 finally 块中的 Dispose,可以获得相同的结果;实际上,这就是编译器转换 using 语句的方式。
Fibona 2008-11-23
  • 打赏
  • 举报
回复
定义一个范围,将在此范围之外释放一个或多个对象。

using 语句允许程序员指定使用资源的对象应当何时释放资源。为 using 语句提供的对象必须实现 IDisposable 接口。此接口提供了 Dispose 方法,该方法将释放此对象的资源。

可以在到达 using 语句的末尾时,或者在该语句结束之前引发了异常并且控制权离开语句块时,退出 using 语句。

可以在 using 语句中声明对象(如上所示),或者在 using 语句之前声明对象,如下所示:

Font font2 = new Font("Arial", 10.0f);
using (font2)
{
// use font2
}


可以有多个对象与 using 语句一起使用,但是必须在 using 语句内部声明这些对象,如下所示:


using (Font font3 = new Font("Arial", 10.0f),
font4 = new Font("Arial", 10.0f))
{
// Use font3 and font4.
}

pojianbing 2008-11-23
  • 打赏
  • 举报
回复
using 语句允许程序员指定使用资源的对象应当何时释放资源。为 using 语句提供的对象必须实现 IDisposable 接口。此接口提供了 Dispose 方法,该方法将释放此对象的资源。

可以在到达 using 语句的末尾时,或者在该语句结束之前引发了异常并且控制权离开语句块时,退出 using 语句。
xuhongxin8477 2008-11-23
  • 打赏
  • 举报
回复
我已经包含了System.IO ,不用using,也应该可以使用FileStream啊?
3楼的说释放内存?using有这个功能?msdn上没写啊?能说详细些吗?
wuyq11 2008-11-23
  • 打赏
  • 举报
回复
using有两个主要用途:
作为指令,用于为命名空间创建别名或导入其他命名空间中定义的类型。
作为语句,用于定义一个范围,在此范围的末尾将释放对象。

孤独侠客123 2008-11-23
  • 打赏
  • 举报
回复
刚看错了.呵呵...你说的是下面的using啊.就是定义一个范围.使定义的变量在这个范围内有效
在范围结束时处理对象。而希望无论因为什么原因,只要离开了这个代码段就自动调用这个类实例的Dispose。
mafgm 2008-11-23
  • 打赏
  • 举报
回复
应该是可以起到释放内存的作用
孤独侠客123 2008-11-23
  • 打赏
  • 举报
回复
using 就是引入这个命名空间,你就可以直接使用命名空间下面的东西了.
相当于java里的import.当然如果不使用using ,你也可以直接System.IO.FileStream这样使用

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧