fixed
關(guān)鍵字在 C# 中用于固定變量的內(nèi)存地址,從而防止垃圾回收器移動(dòng)它
下面是一個(gè)簡單的示例,演示了如何在 C# 中使用 fixed
關(guān)鍵字:
using System;
class Program
{
static unsafe void Main()
{
// 創(chuàng)建一個(gè)整數(shù)數(shù)組
int[] numbers = { 1, 2, 3, 4, 5 };
// 使用 fixed 關(guān)鍵字固定數(shù)組的內(nèi)存地址
fixed (int* ptr = numbers)
{
// 使用指針訪問數(shù)組元素
for (int i = 0; i< numbers.Length; i++)
{
Console.WriteLine("Element {0} is at address {1}", i, (IntPtr)(ptr + i));
}
}
}
}
注意以下幾點(diǎn):
fixed
關(guān)鍵字,需要啟用不安全代碼。在項(xiàng)目屬性中,將 “允許不安全代碼” 選項(xiàng)設(shè)置為 “是”,或者在代碼文件的開頭添加 #define UNSAFE
預(yù)處理器指令。unsafe
關(guān)鍵字標(biāo)記包含 fixed
語句的方法。fixed
語句中,將指針類型的變量分配給要固定的數(shù)組。fixed
語句的代碼塊中,可以使用指針訪問固定的數(shù)組元素。請注意,使用 fixed
關(guān)鍵字和指針可能會(huì)導(dǎo)致代碼更難理解和維護(hù),因此應(yīng)謹(jǐn)慎使用。在大多數(shù)情況下,使用 C# 提供的安全特性(如數(shù)組和集合類)是更好的選擇。