public : array<Byte>^ Foo(array<Byte>^ data)
Run Code Online (Sandbox Code Playgroud)
获取动态大小托管数组
但是如何获得固定大小的托管字节数组呢?
我想强迫C#用户发送8字节数组; 并获得8个字节
样式:
public : Byte[8] Foo(Byte[8] data)
Run Code Online (Sandbox Code Playgroud)
编辑:
任何人都可以解释为什么它在安全环境中的不可能性?
您可以在结构内使用固定大小的缓冲区。不过,您需要将其置于不安全的块中。
unsafe struct fixedLengthByteArrayWrapper
{
public fixed byte byteArray[8];
}
Run Code Online (Sandbox Code Playgroud)
在 C++ 方面,您需要使用inline_array来表示这种类型。
正如 Marc 所说,固定大小的缓冲区使用起来并不有趣。您可能会发现进行运行时长度检查更方便。