Aracılığıyla paylaş


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.

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

-veya-

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

inputBuffer parametresidirnull.

inputBuffer parametresi negatif olmayan bir sayı gerektirir.

Örnekler

Aşağıdaki kod örneği, ile blockSizedönüştürme yoluyla inputBytes yinelemek için yönteminin nasıl çağrılduğunu TransformBlock gösterir. 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 );
}
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

sınıfı, ToBase64Transform 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ırına kadar tutmanız gerekir.

Şunlara uygulanır

Ayrıca bkz.