ToBase64Transform.TransformBlock(Byte[], Int32, Int32, Byte[], Int32) Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Преобразует заданную область входного массива байтов в кодировку base64 и копирует результат в заданную область выходного массива байтов.
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[]
Входные данные, подлежащие преобразованию в кодировку base64.
- inputOffset
- Int32
Смещение во входном массиве байтов, начиная с которого следует использовать данные.
- inputCount
- Int32
Число байтов во входном массиве для использования в качестве данных.
- outputBuffer
- Byte[]
Выходной массив, в который записывается результат.
- outputOffset
- Int32
Смещение в выходном массиве байтов, начиная с которого следует записывать данные.
Возвращаемое значение
Количество записанных байт.
Реализации
Исключения
Текущий объект ToBase64Transform уже был удален.
Недопустимый размер данных.
Для параметра inputBuffer
задано недопустимое значение смещения.
-или-
Недопустимое значение параметра inputCount
.
Параметр inputBuffer
имеет значение null
.
Значение параметра inputBuffer
не должно быть отрицательным.
Примеры
В следующем примере кода показано, как вызвать TransformBlock метод для итерации путем inputBytes
преобразования с помощью blockSize
. Этот пример входит в состав более крупного примера использования класса 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-байтовых границ выходных данных.