【发布时间】:2016-05-09 17:07:35
【问题描述】:
有没有办法获取固定大小缓冲区的长度?
类似:
public struct MyStruct
{
public unsafe fixed byte buffer[100];
public int foo()
{
return sizeof(buffer); // Compile error.
}
}
有没有办法完成这样的事情?
【问题讨论】:
-
为什么不定义一个像 const int BUFFER_SIZE = 100 这样的常量,然后使用 buffer[BUFFER_SIZE]。这运行速度更快,分配由编译器完成。
-
因为这会给我的结构增加一些不必要的冗长。我的代码会有很多这样的结构。有什么想法吗?谢谢。
-
这比在每个结构中放一个方法 foo 的代码要少很多。
-
但是我不打算创建那个 foo 方法,我只是写来澄清事情和概念:(
标签: c# pointers sizeof fixed unsafe