ToBase64Transform.TransformBlock(Byte[], Int32, Int32, Byte[], Int32) Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Преобразует указанный регион входного массива байтов в базу 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 метод для итерации путем inputBytesblockSizeпреобразования. Этот пример кода является частью более крупного примера, предоставленного для 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);
}
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 байтов.