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