zoukankan      html  css  js  c++  java
  • using语法糖

    资源的分类

    首先说一下资源的分类:

    托管资源:由CLR管理分配和释放资源

    非托管资源:不受CLR管理的对象,如 文件(StreamReader,BinaryReader,DataTable,各种Stream类),Socket,COM,数据库连接

    实际应用

    在处理网络,文件相关的地方,经常用到using语法糖。

    文件处理类,网络类 等等都已继承了IDisposable

    (没有实现IDisposable不能使用using语法糖)

    Using使用Demo

    class Program
    {
        static void Main(string[] args)
        {
            using (var mydis = new MyDisposable())
            {
                Console.WriteLine(1);
            }
            Console.WriteLine(2);
            //输出:1,0,2
    
            //没有继承IDisposable,不能使用此语法
            //using (var tab = new TabClass())
            //{
                
            //}
        }
    }
    
    public class MyDisposable:IDisposable
    {
        /// <summary>
        /// TODO 释放资源
        /// </summary>
        public void Dispose()
        {
            Console.WriteLine(0);
        }
    }
    
    public class TabClass
    {
        public void Close()
        {
            
        }
    }

    using实质

    使用ildasm.exe来查看using,using语法会被解析成try-finally语句,也就是using(){}语法结束时会自动调用Dispose方法释放非托管资源

    image

  • 相关阅读:
    jsp报源码
    c#简单写售票系统
    linux常用命令大全[转]
    【转载】大型网站渗透思之信息收集
    Ajax初窥
    屏蔽win10中文输入法
    win10禁止更新的方法
    win10进入到安全模式的三种方法
    7代CPU安装win7的方法
    python的输出问题
  • 原文地址:https://www.cnblogs.com/zhaoqingqing/p/5181196.html
Copyright © 2011-2022 走看看