zoukankan      html  css  js  c++  java
  • C# 8.0的新的using语法——Using declarations

    我们在代码中经常使用using保障非托管资源的释放 

    static void Main(string[] args)
    {
        using (var options = Parse(args))
        {
            if (options["verbose"]) { WriteLine("Logging..."); }
            ...
        } // options disposed here
    }

    using虽然释放数据非常有效,但是有的时候会带来过多的缩进,导致代码不好阅读。 

    using (var a = ...)
    {
        //do something 1
        using (var a = ...)
        {
            //do something 2
            using (var a = ...)
            {
                //do something 3
            }
        }
    }

    在C# 8.0中引入了一个新的using语法,可以不用花括号,变量出了其生命周期自动释放  该语法功能上有点类似于C++的scoped_ptr,不过也支持async模式下的自动dispose。

    static void Main(string[] args)
    {
        using var options = Parse(args);
        if (options["verbose"]) { WriteLine("Logging..."); }
    } // options disposed here

    在新语法的加持下,上面的代码就可以简化如下

    using var a = ...;
    //do something 1
    using var b = ...; //do something 2
    using var c = ...; //do something 3

     看起来舒服多了有没有。

  • 相关阅读:
    HUAS 1482 lsy的后宫(DP+矩阵快速幂)
    HUAS 1483 mex(离线+线段树)
    oracle 分页
    oracle 表查询(二)
    oracle 表查询(一)
    oracle 表的管理
    oracle 用户管理
    oracle sql*plus常用命令
    挑选数据库
    oracle sequence用法
  • 原文地址:https://www.cnblogs.com/TianFang/p/10322359.html
Copyright © 2011-2022 走看看