有没有办法获取固定大小缓冲区的长度?
类似于:
public struct MyStruct
{
public unsafe fixed byte buffer[100];
public int foo()
{
return sizeof(buffer); // Compile error.
}
}
有什么办法可以完成这样的事情吗?
最佳答案
嗯like在 C++ 中,您必须保持内置数组的大小。同样适用于 C# 中的固定缓冲区。这个类型是comparable到 inline_array
。这为您带来了诸如静态代码检查之类的好处。使用它们有点麻烦,因为它们不是 C# 的一流功能。因此,最好的解决方案可能是将大小保留为结构的一部分。您可能只需要处理它或使用集合/C# 的 System.Array
。也许另一种解决方案是将固定缓冲区创建为一个单独的结构,然后使其成为具有其他数据的另一个结构的一部分。
关于c# - 如何获得固定的缓冲区长度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37121586/