使用非安全的代码快速访问数组
使用数组时,CLR会确保索引不超过数组的上下限,这样可以防止访问数组以外的内存,但是CLR在做这种检查时会有一定的性能代价,对于经常使用的代码(数组),可以使用非安全的代码,不让CLR进行代码的检查,下面是个简单的Demo,在代码中直接访问内存的例子
using System
public class MyClass
{
unsafe static MyArray()
{
//创建一个数组
int arr={1,3,5};
//获取指向数组开始位置的指针
fixed(int* element=&arr[0])
{
for(int i=0;i<arr.Length;i++)
{
Console.WriteLine(element[i]);
}
}
Console.ReadLine();
}
}
输出结果打出:1 2 3
using System
public class MyClass
{
unsafe static MyArray()
{
//创建一个数组
int arr={1,3,5};
//获取指向数组开始位置的指针
fixed(int* element=&arr[0])
{
for(int i=0;i<arr.Length;i++)
{
Console.WriteLine(element[i]);
}
}
Console.ReadLine();
}
}
输出结果打出:1 2 3