C#的using 语句

using 语句会确保调用了对象的 Dispose 方法,即使在调用对象上的方法时发生异常也是如此,当然了,前提条件是对象类型必须实现 IDisposable 接口。还有,在 using 块中,对象是只读的所以你无法进行修改或重新分配。如下例子:

先建一个 Student 类,它实现了 IDisposable 接口:
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

/// <summary>
/// Student 的摘要说明
/// </summary>
public class Student : IDisposable
{
    private String _Name;
    private Int32 _Age;

    /// <summary>
    /// 构造函数
    /// </summary>
    /// <param name="name"></param>
    /// <param name="age"></param>
    public Student(String name, Int32 age)
    {
        _Name = name;
        _Age = age;
    }

    /// <summary>
    /// 释放对象
    /// </summary>
    public void Dispose()
    {
        //
    }

    /// <summary>
    /// 姓名
    /// </summary>
    public String Name
    {
        get { return _Name; }
        set { _Name = value; }
    }

    /// <summary>
    /// 年龄
    /// </summary>
    public Int32 Age
    {
        get { return _Age; }
        set { _Age = value; }
    }

}

using 语句使用示例:
Student stu;

using (stu = new Student("AA", 20))
{
    Response.Write(stu.Name);
}

if (stu is Student)
    Response.Write("yes");
else
    Response.Write("no");

说明:

1.Student 必须实现 IDisposable 接口,否则程序将出错,提示:using 语句中使用的类型必须可隐式转换为“System.IDisposable”;
2.输出yes,说明调用Dispose后,对象并没有被释放;

参考文章:http://msdn.microsoft.com/zh-cn/asp.net/yh598w02.aspx

评论: 0 | 引用: 0 | 查看次数: 5734
发表评论
登录后再发表评论!