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[]
要计算到 base 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 个字节输出边界,才能匹配块转换。