.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;
}
}
}