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