阅读量:0
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# 提供的安全特性(如数组和集合类)是更好的选择。