ToBase64Transform.TransformBlock(Byte[], Int32, Int32, Byte[], Int32) Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Konwertuje określony region tablicy bajtów wejściowych na podstawowy 64 i kopiuje wynik do określonego regionu tablicy bajtów wyjściowych.
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
Parametry
- inputBuffer
- Byte[]
Dane wejściowe do obliczeń na podstawie 64.
- inputOffset
- Int32
Przesunięcie do tablicy bajtów wejściowych, z której rozpocznie się korzystanie z danych.
- inputCount
- Int32
Liczba bajtów w tablicy bajtów wejściowych do użycia jako dane.
- outputBuffer
- Byte[]
Dane wyjściowe, do których mają być zapisywane wyniki.
- outputOffset
- Int32
Przesunięcie do tablicy bajtów wyjściowych, z której rozpocznie się zapisywanie danych.
Zwraca
Liczba zapisanych bajtów.
Implementuje
Wyjątki
Bieżący ToBase64Transform obiekt został już usunięty.
Rozmiar danych jest nieprawidłowy.
Parametr inputBuffer
zawiera nieprawidłową długość przesunięcia.
-lub-
Parametr inputCount
zawiera nieprawidłową wartość.
Parametr inputBuffer
to null
.
Parametr inputBuffer
wymaga liczby nie ujemnej.
Przykłady
W poniższym przykładzie kodu pokazano, jak wywołać metodę TransformBlock , aby iterować przez inputBytes
transformację przez metodę blockSize
. Ten przykład kodu jest częścią większego przykładu podanego ToBase64Transform dla klasy.
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
Uwagi
Klasa ToBase64Transform to algorytm blokowy, który przetwarza bloki wejściowe o rozmiarze 3 bajtów i tworzy bloki wyjściowe o rozmiarze 4 bajtów. Metoda TransformBlock przekształca blok wejściowy 24 bitów na 32 bity danych znaków. Aby dopasować transformację bloku, należy zachować 3 granice wejściowe bajtów do 4 bajtów.