.NET 中的不安全程式碼

  • 為了能夠在 .Net 專案中使用 unsafe 關鍵字,你必須在 Project Properties => Build 中選中允許不安全程式碼
  • 使用不安全的程式碼可以提高效能,但是,這是以程式碼安全為代價的(因此術語 unsafe)。

例如,當你使用 for 迴圈時,如下所示:

for (int i = 0; i < array.Length; i++)
{
    array[i] = 0;
}

.NET Framework 確保你不會超出陣列的邊界,如果索引超出邊界則丟擲 IndexOutOfRangeException

但是,如果使用不安全的程式碼,則可能超出陣列的範圍,如下所示:

unsafe
{
    fixed (int* ptr = array)
    {
        for (int i = 0; i <= array.Length; i++)
        {
            *(ptr+i) = 0;
        }
    }
}