面试题答案
一键面试- 使用不安全代码块(unsafe block)的场景:
- 当需要进行直接内存操作时,例如处理指针、访问非托管资源。这在性能敏感的场景,如编写底层图形库、高性能计算库等可能会用到。
- 与旧的C或C++代码进行交互,需要遵循其内存管理和指针操作方式时。
- C#代码示例:
class Program
{
static void Main()
{
int[] numbers = { 10, 20, 30 };
unsafe
{
fixed (int* ptr = numbers)
{
Console.WriteLine(*ptr);
}
}
}
}
在上述代码中:
- 首先定义了一个整数数组
numbers
。 - 然后使用
unsafe
关键字开启不安全代码块。 - 在不安全代码块中,使用
fixed
关键字将托管数组numbers
固定在内存中,并获取其指针ptr
。这样就可以通过指针ptr
来访问数组的第一个元素,通过解引用*ptr
并打印出来。