簡體   English   中英

固定大小的字節數組

[英]Fixed Size Byte Array

public : array<Byte>^ Foo(array<Byte>^ data)

獲取動態大小托管數組

但是如何獲得固定大小的托管字節數組呢?

我想強迫C#用戶發送8字節數組; 並獲得8個字節

樣式:

public : Byte[8] Foo(Byte[8] data)

編輯:

可以解釋為什么它在安全環境中的不可能性?

如果你想強制使用 8個字節...請考慮發送一個longulong 老派,但它的確有效。 它還具有不需要對象( byte[]是對象)的優點 - 它是純值類型(在這種情況下是基元)

C#不允許你這樣做。 您只需驗證數組的長度,如果長度不是8,則可能拋出異常。

另外,你的函數類型不能是Byte[8] ; 你必須把它改成Byte[]

您可以在結構中使用固定大小的緩沖區 但是你需要它在一個不安全的區域。

unsafe struct fixedLengthByteArrayWrapper
{
    public fixed byte byteArray[8];
}

在C ++方面,您需要使用inline_array來表示此類型。

正如Marc所說,固定大小的緩沖區並不適合使用。 您可能會發現進行運行時長度檢查更方便。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM