fixed
关键字在 C# 中用于固定变量的内存地址,从而防止垃圾回收器移动它
下面是一个简单的示例,演示了如何在 C# 中使用 fixed
关键字:
using System;
class Program
{
static unsafe void Main()
{
// 创建一个整数数组
int[] numbers = { 1, 2, 3, 4, 5 };
// 使用 fixed 关键字固定数组的内存地址
fixed (int* ptr = numbers)
{
// 使用指针访问数组元素
for (int i = 0; i< numbers.Length; i++)
{
Console.WriteLine("Element {0} is at address {1}", i, (IntPtr)(ptr + i));
}
}
}
}
注意以下几点:
fixed
关键字,需要启用不安全代码。在项目属性中,将 “允许不安全代码” 选项设置为 “是”,或者在代码文件的开头添加 #define UNSAFE
预处理器指令。unsafe
关键字标记包含 fixed
语句的方法。fixed
语句中,将指针类型的变量分配给要固定的数组。fixed
语句的代码块中,可以使用指针访问固定的数组元素。请注意,使用 fixed
关键字和指针可能会导致代码更难理解和维护,因此应谨慎使用。在大多数情况下,使用 C# 提供的安全特性(如数组和集合类)是更好的选择。