ToBase64Transform.TransformBlock(Byte[], Int32, Int32, Byte[], Int32) Yöntem

Tanım

Giriş bayt dizisinin belirtilen bölgesini 64 tabanına dönüştürür ve sonucu çıkış bayt dizisinin belirtilen bölgesine kopyalar.

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

Parametreler

inputBuffer
Byte[]

64 tabanına işlem girişi.

inputOffset
Int32

Veri kullanmaya başlamak için giriş bayt dizisine uzaklık.

inputCount
Int32

Veri olarak kullanılacak giriş bayt dizisindeki bayt sayısı.

outputBuffer
Byte[]

Sonucun yazıldığı çıkış.

outputOffset
Int32

Veri yazmaya başlamak için çıkış bayt dizisine uzaklık.

Döndürülenler

Yazılan bayt sayısı.

Uygulamalar

Özel durumlar

Geçerli ToBase64Transform nesne zaten atılmış.

Veri boyutu geçerli değil.

inputOffset parametresi geçersiz bir uzaklık uzunluğu içeriyor.

-veya-

inputCount parametresi geçersiz bir değer içeriyor.

inputBuffer parametresi null'dir.

parametresi negatif inputCount olmayan bir sayı ve uzunluğuna inputBuffereşit veya daha küçük bir sayı gerektirir.

Örnekler

Aşağıdaki kod örneğinde tarafından dönüştürme TransformBlockyoluyla inputBytes yinelemek için yönteminin nasıl çağrıldığı blockSize gösterilmektedir. Bu kod örneği, sınıfı için ToBase64Transform sağlanan daha büyük bir örneğin parçasıdır.

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

Açıklamalar

ToBase64Transform sınıfı, 3 baytlık giriş bloklarını işleyen ve 4 baytlık çıkış blokları oluşturan bir blok algoritmasıdır. yöntemi, TransformBlock 24 bitlik bir giriş bloğunu 32 bit karakter verisine dönüştürür. Blok dönüşümünü eşleştirmek için 3 bayt giriş sınırlarını 4 bayt çıkış sınırlarına kadar tutmanız gerekir.

Şunlara uygulanır

Ayrıca bkz.