C# 的 using 与 VB 的 using 语句

作者:vkvi 来源:千一网络(原创) 日期:2007-6-16

这里所说的 using 并不是 @ Import、using 与 Imports 一文的 using。

C# 中,using 关键字可以创建 using 指令和 using 语句,分别对应 VB 中的 Imports 语句和 using 语句

C# 和 VB 中的 using 语句作用是:定义一个范围,将在此范围之外释放一个或多个对象。

.NET Framework 公共语言运行库 (CLR) 会自动释放用于存储不再需要的对象的内存,但是通常由程序来尽快释放不需要内存更好一些,using 就实现了由程序来控制什么时候释放内存。

看示例(根据微软示例修改),使用 using 的语句调用了 IDisposable.Dispose,而未使用 using 的则没有调用。为 using 语句提供的对象必须实现 IDisposable 接口。

<%@ Page Language="C#" Debug="true" %>
<script runat="server">
    class C : IDisposable
    {
        Label lb;
       
        public C(Label Alb)
        {
            lb = Alb;
        }
       
        public void UseLimitedResource()
        {
            lb.Text += "Using limited resource...<br />";
        }
       
        void IDisposable.Dispose()
        {
            lb.Text += "Disposing limited resource.<br />";
        }
    }
   
    void Page_Load(object sender, EventArgs e)
    {
        using (C c = new C(lb))
        {
            c.UseLimitedResource();
        }
        lb.Text += "Now outside using statement.<br />";
   
        C c2 = new C(lb2);
        c2.UseLimitedResource();
    }
</script>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>Using 语句(C#)</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
    <asp:Label ID="lb" runat="server"></asp:Label>
    <hr />
    <asp:Label ID="lb2" runat="server"></asp:Label>
    </div>
    </form>
</body>
</html>

将显示

Using limited resource...
Disposing limited resource.
Now outside using statement.

Using limited resource...

Using 块的工作方式类似于 Try...Finally 构造,在该构造中,Try 块使用资源,而 Finally 块释放资源。因此,不管您如何退出块,Using 块都可确保资源的释放。即使发生未处理的异常(除 StackOverflowException 外),也是如此。

相关阅读

你前面那位网友看了:Image 控件无 ImageUrl 导致页面执行两次

▲▲▲嘿,欢迎转载传播本站原创文章,尽量保留来源噢。▲▲▲

文章评论
标题:必填
内容:
本站永远终止与捏造“罪名”不支付广告费的某度联盟合作。
vkvi
vkvi

作者简介: vkvi,致力于 .NET Web 开发、移动开发的技术推广,在 .NET、SQL Server、Windows Server 等方面有深入研究和丰富经验,10 年间共计撰写文章 4000 余篇。 主持金融、国土、农业、电商等多个行业项目执行, 推行“技术提升生产力、人心决定成功率”的管理理论。 联系他