更新:2007 年 11 月
在 C# 中,可以使用
复制代码 | |
---|---|
private fixed char name[30]; |
备注
在早期版本的 C# 中,声明 C++ 样式的固定大小结构是很困难的,因为包含数组的 C# 结构不包含数组元素,而是包含对元素的引用。
C# 2.0 添加了在
例如,在 C# 2.0 之前,下面的 struct 的大小为 8 字节,其中 pathName 数组是对堆分配的数组的引用:
C# | 复制代码 |
---|---|
public struct MyArray { public char[] pathName; private int reserved; } |
在 C# 2.0 中,struct 可使用嵌入数组进行声明:
C# | 复制代码 |
---|---|
public struct MyArray // This code must appear in an unsafe block { public fixed char pathName[128]; } |
在此结构中,pathName 数组具有固定的大小和位置,因此可用在其他不安全的代码中。
128 个元素的 char 数组的大小为 256 字节。在固定大小的
另一种常见的固定大小的数组是
说明: |
---|
除了用 |
不安全缓冲区与常规数组在以下方面不同:
不安全缓冲区只能用在不安全上下文中。
不安全缓冲区始终是向量(或一维数组)。
数组的声明应包括计数,如 char id[8]。而不能使用 char id[]。
不安全缓冲区只能是不安全上下文中的结构的实例字段。