ToBase64Transform.TransformBlock(Byte[], Int32, Int32, Byte[], Int32) Metoda

Definicja

Konwertuje określony region tablicy bajtów wejściowych na wartość base 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 należy zacząć korzystać 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 należy rozpocząć 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 ma wartość null.

Parametr inputBuffer wymaga liczby nieujemnej.

Przykłady

W poniższym przykładzie kodu pokazano, jak wywołać metodę TransformBlock w celu iteracji po przekształceniu blockSizeprzez inputBytes metodę . Ten przykład kodu jest częścią większego przykładu udostępnionego 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 jest algorytmem blokowym, 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.

Dotyczy

Zobacz też