介紹

若您是一位 C# Developer,應該對於 using statement 並不陌生。在  C# 8.0 內,您可以使用新的 using declaration 功能,透過 using 關鍵字宣告一個物件而不需要主動設定範圍,而在超過特定範圍時讓物件被 dispose。



下列是 using statement 範例 (從程式碼 11 行 - 24 行,透過 { } 介定範圍)
 
List<string> lines = new List<string>

{
    "First Line",
    "Second Line",
    "Third Line"
};

int skippedLines = 0;

using (var file1 = new System.IO.StreamWriter("Sample.txt"))
{
    foreach (string line in lines)
    {
        if (!line.Contains("Second"))
        {
            file1.WriteLine(line);
        }
        else
        {
             skippedLines++;
        }
    }
}

而 using declaration 不需要宣告物件的範圍,由編譯器自行處理,下列是  using declaration 範例( 範圍從 11 行 ~ 22 行,但不需要透過 { } 介定範圍
 
List<string> lines = new List<string>

{
     "First Line",
     "Second Line",
     "Third Line"
};

int skippedLines = 0;

using var file2 = new System.IO.StreamWriter("Sample.txt");
foreach (string line in lines)
{
    if (!line.Contains("Second"))
    {
        file2.WriteLine(line);
    }
    else
    { 
        skippedLines++;
    }
}

透過圖片比較容理解: using declaration 的範圍如下圖紅色箭頭:

倘若你的方法很小,且 using declarations 範圍不大,則使用 using declarations 是不錯的選擇。