ToBase64Transform.TransformBlock(Byte[], Int32, Int32, Byte[], Int32) 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
將輸入位元組陣列的指定區域轉換為base 64,並將結果複製到輸出位元組陣列的指定區域。
public:
virtual int TransformBlock(cli::array <System::Byte> ^ inputBuffer, int inputOffset, int inputCount, cli::array <System::Byte> ^ outputBuffer, int outputOffset);
public int TransformBlock (byte[] inputBuffer, int inputOffset, int inputCount, byte[] outputBuffer, int outputOffset);
abstract member TransformBlock : byte[] * int * int * byte[] * int -> int
override this.TransformBlock : byte[] * int * int * byte[] * int -> int
Public Function TransformBlock (inputBuffer As Byte(), inputOffset As Integer, inputCount As Integer, outputBuffer As Byte(), outputOffset As Integer) As Integer
參數
- inputBuffer
- Byte[]
要計算為基底 64 的輸入。
- inputOffset
- Int32
輸入位元組陣列的位移,要從中開始使用數據。
- inputCount
- Int32
要當做數據使用的輸入位元組陣列中的位元組數目。
- outputBuffer
- Byte[]
要寫入結果的輸出。
- outputOffset
- Int32
要從中開始寫入資料的輸出位元組數位移。
傳回
寫入的位元組數目。
實作
例外狀況
目前 ToBase64Transform 對象已經處置。
數據大小無效。
inputBuffer
參數是 null
。
inputCount
參數需要非負數,且長度小於或等於 inputBuffer
。
範例
下列程式代碼範例示範如何呼叫 TransformBlock 方法,透過 blockSize
逐一查看 inputBytes
轉換。 此程式代碼範例是提供給 ToBase64Transform 類別之較大範例的一部分。
int inputBlockSize = base64Transform->InputBlockSize;
while ( inputBytes->Length - inputOffset > inputBlockSize )
{
base64Transform->TransformBlock(
inputBytes,
inputOffset,
inputBytes->Length - inputOffset,
outputBytes,
0 );
inputOffset += base64Transform->InputBlockSize;
outputFileStream->Write(
outputBytes,
0,
base64Transform->OutputBlockSize );
}
int inputBlockSize = base64Transform.InputBlockSize;
while(inputBytes.Length - inputOffset > inputBlockSize)
{
base64Transform.TransformBlock(
inputBytes,
inputOffset,
inputBytes.Length - inputOffset,
outputBytes,
0);
inputOffset += base64Transform.InputBlockSize;
outputFileStream.Write(
outputBytes,
0,
base64Transform.OutputBlockSize);
}
Dim inputBlockSize As Integer = base64Transform.InputBlockSize
While (inputBytes.Length - inputOffset > inputBlockSize)
base64Transform.TransformBlock( _
inputBytes, _
inputOffset, _
inputBytes.Length - inputOffset, _
outputBytes, _
0)
inputOffset += base64Transform.InputBlockSize
outputFileStream.Write(outputBytes, _
0, _
base64Transform.OutputBlockSize)
End While
備註
ToBase64Transform 類別是區塊演算法,會處理 3 個字節的輸入區塊,並建立 4 個字節的輸出區塊。 TransformBlock 方法會將24位的輸入區塊轉換成32位的字元數據。 您必須將 3 個字節輸入界限維持為 4 個字節輸出界限,才能符合區塊轉換。