ToBase64Transform.TransformBlock(Byte[], Int32, Int32, Byte[], Int32) Yöntem
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
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 blockSize
dö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.