C#8.0新語法using declaration
我們在代碼中經常使用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
看起來舒服多瞭有沒有。
以上就是本文的全部內容,希望對大傢的學習有所幫助,也希望大傢多多支持WalkonNet。
推薦閱讀:
- C#代碼延時的幾種實現
- C#實現簡單學生成績管理系統
- C# Console.WriteLine()用法案例詳解
- C#中async和await的深入分析
- .Net中Task Parallel Library的基本用法