ToBase64Transform.TransformBlock(Byte[], Int32, Int32, Byte[], Int32) 方法

定义

将输入字节数组的指定区域转换为 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[]

要计算到 base 64 的输入。

inputOffset
Int32

从中开始使用数据的输入字节数组的偏移量。

inputCount
Int32

要用作数据的输入字节数组中的字节数。

outputBuffer
Byte[]

要向其写入结果的输出。

outputOffset
Int32

从中开始写入数据的输出字节数组的偏移量。

返回

写入的字节数。

实现

例外

已释放当前 ToBase64Transform 对象。

数据大小无效。

inputOffset 参数包含无效的偏移长度。

-或-

inputCount 参数包含无效值。

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 个字节输出边界,才能匹配块转换。

适用于

另请参阅