ToBase64Transform.TransformBlock(Byte[], Int32, Int32, Byte[], Int32) Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Converte l'area specificata della matrice di byte di input in base 64 e copia il risultato nell'area specificata della matrice di byte di output.
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
Parametri
- inputBuffer
- Byte[]
Input da calcolare in base 64.
- inputOffset
- Int32
Offset nella matrice di byte di input da cui iniziare a usare i dati.
- inputCount
- Int32
Numero di byte nella matrice di byte di input da usare come dati.
- outputBuffer
- Byte[]
Output in cui scrivere il risultato.
- outputOffset
- Int32
Offset nella matrice di byte di output da cui iniziare la scrittura dei dati.
Restituisce
Numero di byte scritti.
Implementazioni
Eccezioni
L'oggetto ToBase64Transform corrente è già stato eliminato.
Le dimensioni dei dati non sono valide.
Il parametro inputOffset
contiene una lunghezza di offset non valida.
-o-
Il parametro inputCount
contiene un valore non valido.
Il parametro inputBuffer
è null
.
Il parametro inputCount
richiede un numero non negativo e minore o uguale alla lunghezza di inputBuffer
.
Esempio
Nell'esempio di codice seguente viene illustrato come chiamare il metodo TransformBlock per scorrere inputBytes
trasformazione tramite blockSize
. Questo esempio di codice fa parte di un esempio più ampio fornito per la classe 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
Commenti
La classe ToBase64Transform è un algoritmo a blocchi che elabora blocchi di input di 3 byte e crea blocchi di output di 4 byte. Il metodo TransformBlock trasforma un blocco di input di 24 bit in 32 bit di dati di tipo carattere. È necessario mantenere 3 limiti di input di byte a 4 limiti di output di byte per trovare la corrispondenza con la trasformazione del blocco.