Aracılığıyla paylaş


Decoder.GetChars Yöntem

Tanım

Türetilmiş bir sınıfta geçersiz kılındığında, bir bayt dizisinin kodunu bir karakter kümesine çözer.

Aşırı Yüklemeler

GetChars(ReadOnlySpan<Byte>, Span<Char>, Boolean)

Türetilmiş bir sınıfta geçersiz kılındığında, bir dizi span baytını ve iç arabellekteki tüm baytları belirtilen karakter işaretçisinde başlayan bir dizi karaktere çözer. Parametre, dönüştürmeden sonra kod çözücü iç durumunun temizlenip temizlenmeyeceğini gösterir.

GetChars(Byte*, Int32, Char*, Int32, Boolean)

Türetilmiş bir sınıfta geçersiz kılındığında, belirtilen bayt işaretçisinde başlayan bir bayt dizisinin ve iç arabellekteki tüm baytların kodunu, belirtilen karakter işaretçisinde başlayan bir dizi karaktere dönüştürür. Parametre, dönüştürmeden sonra kod çözücü iç durumunun temizlenip temizlenmeyeceğini gösterir.

GetChars(Byte[], Int32, Int32, Char[], Int32)

Türetilmiş bir sınıfta geçersiz kılındığında, belirtilen bayt dizisindeki bir bayt dizisinin ve iç arabellekteki tüm baytların kodunu belirtilen karakter dizisine çözer.

GetChars(Byte[], Int32, Int32, Char[], Int32, Boolean)

Türetilmiş bir sınıfta geçersiz kılındığında, belirtilen bayt dizisindeki bir bayt dizisinin ve iç arabellekteki tüm baytların kodunu belirtilen karakter dizisine çözer. Parametre, dönüştürmeden sonra kod çözücü iç durumunun temizlenip temizlenmeyeceğini gösterir.

GetChars(ReadOnlySpan<Byte>, Span<Char>, Boolean)

Kaynak:
Decoder.cs
Kaynak:
Decoder.cs
Kaynak:
Decoder.cs

Türetilmiş bir sınıfta geçersiz kılındığında, bir dizi span baytını ve iç arabellekteki tüm baytları belirtilen karakter işaretçisinde başlayan bir dizi karaktere çözer. Parametre, dönüştürmeden sonra kod çözücü iç durumunun temizlenip temizlenmeyeceğini gösterir.

public:
 virtual int GetChars(ReadOnlySpan<System::Byte> bytes, Span<char> chars, bool flush);
public virtual int GetChars (ReadOnlySpan<byte> bytes, Span<char> chars, bool flush);
abstract member GetChars : ReadOnlySpan<byte> * Span<char> * bool -> int
override this.GetChars : ReadOnlySpan<byte> * Span<char> * bool -> int
Public Overridable Function GetChars (bytes As ReadOnlySpan(Of Byte), chars As Span(Of Char), flush As Boolean) As Integer

Parametreler

bytes
ReadOnlySpan<Byte>

Kodunu çözmek için bayt aralığı.

chars
Span<Char>

Sonuçta elde edilen karakter kümesini yazmak için bir yayılma alanı.

flush
Boolean

true dönüştürmeden sonra kod çözücü iç durumunu temizlemek için; aksi takdirde , false.

Döndürülenler

Parametresi tarafından chars belirtilen span'da yazılan gerçek karakter sayısı.

Açıklamalar

nesnesinin Decoder çağrısı arasındaki durumu kaydettiğini GetCharsunutmayın. Uygulama bir veri akışıyla tamamlandığında, durum bilgilerinin boşaltıldığından flush emin olmak için parametresini true olarak ayarlamalıdır. Bu ayar ile kod çözücü, veri bloğunun sonundaki geçersiz baytları yoksayar ve iç arabelleği temizler.

Sonuçta elde edilen karakterlerin depolanmasını gerektiren GetChars tam yayılma boyutunu hesaplamak için, uygulama kullanmalıdır GetCharCount.

olarak ayarlanırsa GetCharsflushfalsekod çözücü, veri bloğunun sonundaki baytları bir iç arabellekte depolar ve bunları bir sonraki kod çözme işleminde kullanır. Uygulamanın aynı blokta çağrı yapmadan hemen önce bir veri bloğu üzerinde çağrısı GetCharCountGetChars yapması gerekir, böylece önceki bloktaki sondaki baytlar hesaplamaya dahil edilir.

Uygulamanız bir giriş akışının birçok kesimini dönüştürecekse yöntemini kullanmayı Convert göz önünde bulundurun. GetChars çıkış aralığı yeterince büyük değilse bir özel durum oluşturur, ancak Convert mümkün olduğunca fazla alan doldurur ve çıktı dizisinin en az iki karaktere izin vermesi koşuluyla okunan ve yazılan baytları döndürür. Daha fazla yorum için konuya da bakın Encoding.GetChars .

Şunlara uygulanır

GetChars(Byte*, Int32, Char*, Int32, Boolean)

Kaynak:
Decoder.cs
Kaynak:
Decoder.cs
Kaynak:
Decoder.cs

Önemli

Bu API, CLS uyumlu değildir.

Türetilmiş bir sınıfta geçersiz kılındığında, belirtilen bayt işaretçisinde başlayan bir bayt dizisinin ve iç arabellekteki tüm baytların kodunu, belirtilen karakter işaretçisinde başlayan bir dizi karaktere dönüştürür. Parametre, dönüştürmeden sonra kod çözücü iç durumunun temizlenip temizlenmeyeceğini gösterir.

public:
 virtual int GetChars(System::Byte* bytes, int byteCount, char* chars, int charCount, bool flush);
[System.CLSCompliant(false)]
public virtual int GetChars (byte* bytes, int byteCount, char* chars, int charCount, bool flush);
[System.CLSCompliant(false)]
[System.Runtime.InteropServices.ComVisible(false)]
public virtual int GetChars (byte* bytes, int byteCount, char* chars, int charCount, bool flush);
[System.CLSCompliant(false)]
[System.Runtime.InteropServices.ComVisible(false)]
[System.Security.SecurityCritical]
public virtual int GetChars (byte* bytes, int byteCount, char* chars, int charCount, bool flush);
[<System.CLSCompliant(false)>]
abstract member GetChars : nativeptr<byte> * int * nativeptr<char> * int * bool -> int
override this.GetChars : nativeptr<byte> * int * nativeptr<char> * int * bool -> int
[<System.CLSCompliant(false)>]
[<System.Runtime.InteropServices.ComVisible(false)>]
abstract member GetChars : nativeptr<byte> * int * nativeptr<char> * int * bool -> int
override this.GetChars : nativeptr<byte> * int * nativeptr<char> * int * bool -> int
[<System.CLSCompliant(false)>]
[<System.Runtime.InteropServices.ComVisible(false)>]
[<System.Security.SecurityCritical>]
abstract member GetChars : nativeptr<byte> * int * nativeptr<char> * int * bool -> int
override this.GetChars : nativeptr<byte> * int * nativeptr<char> * int * bool -> int

Parametreler

bytes
Byte*

Kodunu çözmek için ilk bayta işaret eden bir işaretçi.

byteCount
Int32

Kodu çözecek bayt sayısı.

chars
Char*

Sonuçta elde edilen karakter kümesini yazmaya başlayabileceğiniz konumun işaretçisi.

charCount
Int32

Yazacak karakter sayısı üst sınırı.

flush
Boolean

true dönüştürmeden sonra kod çözücü iç durumunu temizlemek için; aksi takdirde , false.

Döndürülenler

Parametresi tarafından chars belirtilen konumda yazılan gerçek karakter sayısı.

Öznitelikler

Özel durumlar

bytes is null (Nothing).

-veya-

chars is null (Nothing).

byteCount veya charCount sıfırdan küçüktür.

charCount , sonuçta elde edilen karakter sayısından küçüktür.

Bir geri dönüş oluştu (daha fazla bilgi için bkz. .NET'te Karakter Kodlama)

-Ve-

Fallback olarak ayarlanır DecoderExceptionFallback.

Açıklamalar

nesnesinin Decoder çağrısı arasındaki durumu kaydettiğini GetCharsunutmayın. Uygulama bir veri akışıyla tamamlandığında, durum bilgilerinin boşaltıldığından flush emin olmak için parametresini true olarak ayarlamalıdır. Bu ayar ile kod çözücü, veri bloğunun sonundaki geçersiz baytları yoksayar ve iç arabelleği temizler.

Sonuçta elde edilen karakterlerin depolanmasını gerektiren GetChars tam arabellek boyutunu hesaplamak için, uygulama kullanmalıdır GetCharCount.

olarak ayarlanırsa GetCharsflushfalsekod çözücü, veri bloğunun sonundaki baytları bir iç arabellekte depolar ve bunları bir sonraki kod çözme işleminde kullanır. Uygulamanın aynı blokta çağrı yapmadan hemen önce bir veri bloğu üzerinde çağrısı GetCharCountGetChars yapması gerekir, böylece önceki bloktaki sondaki baytlar hesaplamaya dahil edilir.

Uygulamanız bir giriş akışının birçok kesimini dönüştürecekse yöntemini kullanmayı Convert göz önünde bulundurun. GetChars çıkış arabelleği yeterince büyük değilse bir özel durum oluşturur, ancak Convert mümkün olduğunca fazla alan doldurur ve çıkış dizisinin en az iki karaktere izin vermesi koşuluyla okunan baytları ve karakterleri döndürür. Daha fazla yorum için konuya da bakın Encoding.GetChars .

Ayrıca bkz.

Şunlara uygulanır

GetChars(Byte[], Int32, Int32, Char[], Int32)

Kaynak:
Decoder.cs
Kaynak:
Decoder.cs
Kaynak:
Decoder.cs

Türetilmiş bir sınıfta geçersiz kılındığında, belirtilen bayt dizisindeki bir bayt dizisinin ve iç arabellekteki tüm baytların kodunu belirtilen karakter dizisine çözer.

public:
 abstract int GetChars(cli::array <System::Byte> ^ bytes, int byteIndex, int byteCount, cli::array <char> ^ chars, int charIndex);
public abstract int GetChars (byte[] bytes, int byteIndex, int byteCount, char[] chars, int charIndex);
abstract member GetChars : byte[] * int * int * char[] * int -> int
Public MustOverride Function GetChars (bytes As Byte(), byteIndex As Integer, byteCount As Integer, chars As Char(), charIndex As Integer) As Integer

Parametreler

bytes
Byte[]

Kod çözme bayt sırasını içeren bayt dizisi.

byteIndex
Int32

Kodunu çözmek için ilk bayt dizini.

byteCount
Int32

Kodu çözecek bayt sayısı.

chars
Char[]

Sonuçta elde edilen karakter kümesini içeren karakter dizisi.

charIndex
Int32

Sonuçta elde edilen karakter kümesini yazmaya başlayabileceğiniz dizin.

Döndürülenler

içine charsyazılan gerçek karakter sayısı.

Özel durumlar

bytes is null (Nothing).

-veya-

chars is null (Nothing).

byteIndex veya byteCountcharIndex sıfırdan küçüktür.

-veya-

byteindex ve byteCount içinde bytesgeçerli bir aralığı ifade etmeyin.

-veya-

charIndex içinde charsgeçerli bir dizin değil.

chars , sonuçta elde edilen karakterleri barındırmak için dizinin sonuna kadar yeterli kapasiteye charIndex sahip değildir.

Bir geri dönüş oluştu (daha fazla bilgi için bkz. .NET'te Karakter Kodlama)

-Ve-

Fallback olarak ayarlanır DecoderExceptionFallback.

Örnekler

Aşağıdaki örnek, bir bayt dizisindeki bir öğe aralığının kodunu çözmeyi ve bunları bir Unicode karakter dizisinde depolamayı gösterir. GetCharCount yöntemi, dizisinde byteskodu çözülen öğeleri depolamak için gereken karakter sayısını hesaplamak için kullanılır. yöntemi bayt GetChars dizisindeki belirtilen öğelerin kodunu çözer ve bunları yeni karakter dizisinde depolar.

using namespace System;
using namespace System::Text;
using namespace System::Collections;
int main()
{
   array<Char>^chars;
   array<Byte>^bytes = {85,0,110,0,105,0,99,0,111,0,100,0,101,0};
   Decoder^ uniDecoder = Encoding::Unicode->GetDecoder();
   int charCount = uniDecoder->GetCharCount( bytes, 0, bytes->Length );
   chars = gcnew array<Char>(charCount);
   int charsDecodedCount = uniDecoder->GetChars( bytes, 0, bytes->Length, chars, 0 );
   Console::WriteLine( "{0} characters used to decode bytes.", charsDecodedCount );
   Console::Write( "Decoded chars: " );
   IEnumerator^ myEnum = chars->GetEnumerator();
   while ( myEnum->MoveNext() )
   {
      Char c = safe_cast<Char>(myEnum->Current);
      Console::Write( "[{0}]", c.ToString() );
   }

   Console::WriteLine();
}

/* This code example produces the following output.

7 characters used to decode bytes.
Decoded chars: [U][n][i][c][o][d][e]

*/
using System;
using System.Text;

class UnicodeEncodingExample {
    public static void Main() {
        Char[] chars;
        Byte[] bytes = new Byte[] {
            85, 0, 110, 0, 105, 0, 99, 0, 111, 0, 100, 0, 101, 0
        };

        Decoder uniDecoder = Encoding.Unicode.GetDecoder();

        int charCount = uniDecoder.GetCharCount(bytes, 0, bytes.Length);
        chars = new Char[charCount];
        int charsDecodedCount = uniDecoder.GetChars(bytes, 0, bytes.Length, chars, 0);

        Console.WriteLine(
            "{0} characters used to decode bytes.", charsDecodedCount
        );

        Console.Write("Decoded chars: ");
        foreach (Char c in chars) {
            Console.Write("[{0}]", c);
        }
        Console.WriteLine();
    }
}

/* This code example produces the following output.

7 characters used to decode bytes.
Decoded chars: [U][n][i][c][o][d][e]

*/
Imports System.Text

Class UnicodeEncodingExample
    
    Public Shared Sub Main()
        Dim chars() As Char
        Dim bytes() As Byte = { _
            85, 0, 110, 0, 105, 0, 99, 0, 111, 0, 100, 0, 101, 0 _
        }
        
        Dim uniDecoder As Decoder = Encoding.Unicode.GetDecoder()
        
        Dim charCount As Integer = uniDecoder.GetCharCount(bytes, 0, bytes.Length)
        chars = New Char(charCount - 1) {}
        Dim charsDecodedCount As Integer = _
            uniDecoder.GetChars(bytes, 0, bytes.Length, chars, 0)
        
        Console.WriteLine( _
            "{0} characters used to decode bytes.", _
            charsDecodedCount _
        )
        
        Console.Write("Decoded chars: ")
        Dim c As Char
        For Each c In  chars
            Console.Write("[{0}]", c)
        Next c
        Console.WriteLine()
    End Sub
End Class

'This code example produces the following output.
'
'7 characters used to decode bytes.
'Decoded chars: [U][n][i][c][o][d][e]
'

Açıklamalar

nesnesinin Decoder çağrısı arasındaki durumu kaydettiğini GetCharsunutmayın. Uygulama bir veri akışıyla tamamlandığında, durum bilgilerinin boşaltıldığından flush emin olmak için parametresini true olarak ayarlamalıdır. Bu ayar ile kod çözücü, veri bloğunun sonundaki geçersiz baytları yoksayar ve iç arabelleği temizler.

Sonuçta elde edilen karakterlerin depolanmasını gerektiren GetChars dizi boyutunu tam olarak hesaplamak için uygulamanın kullanması GetCharCountgerekir.

olarak ayarlanırsa GetCharsflushfalsekod çözücü, veri bloğunun sonundaki baytları bir iç arabellekte depolar ve bunları bir sonraki kod çözme işleminde kullanır. Uygulamanın aynı blokta çağrı yapmadan hemen önce bir veri bloğu üzerinde çağrısı GetCharCountGetChars yapması gerekir, böylece önceki bloktaki sondaki baytlar hesaplamaya dahil edilir.

Uygulamanız bir giriş akışının birçok kesimini dönüştürecekse yöntemini kullanmayı Convert göz önünde bulundurun. GetChars çıkış arabelleği yeterince büyük değilse bir özel durum oluşturur, ancak Convert mümkün olduğunca fazla alan doldurur ve çıkış dizisinin en az iki karaktere izin vermesi koşuluyla okunan baytları ve karakterleri döndürür. Daha fazla yorum için konuya da bakın Encoding.GetChars .

Ayrıca bkz.

Şunlara uygulanır

GetChars(Byte[], Int32, Int32, Char[], Int32, Boolean)

Kaynak:
Decoder.cs
Kaynak:
Decoder.cs
Kaynak:
Decoder.cs

Türetilmiş bir sınıfta geçersiz kılındığında, belirtilen bayt dizisindeki bir bayt dizisinin ve iç arabellekteki tüm baytların kodunu belirtilen karakter dizisine çözer. Parametre, dönüştürmeden sonra kod çözücü iç durumunun temizlenip temizlenmeyeceğini gösterir.

public:
 virtual int GetChars(cli::array <System::Byte> ^ bytes, int byteIndex, int byteCount, cli::array <char> ^ chars, int charIndex, bool flush);
public virtual int GetChars (byte[] bytes, int byteIndex, int byteCount, char[] chars, int charIndex, bool flush);
abstract member GetChars : byte[] * int * int * char[] * int * bool -> int
override this.GetChars : byte[] * int * int * char[] * int * bool -> int
Public Overridable Function GetChars (bytes As Byte(), byteIndex As Integer, byteCount As Integer, chars As Char(), charIndex As Integer, flush As Boolean) As Integer

Parametreler

bytes
Byte[]

Kod çözme bayt sırasını içeren bayt dizisi.

byteIndex
Int32

Kodunu çözmek için ilk bayt dizini.

byteCount
Int32

Kodu çözecek bayt sayısı.

chars
Char[]

Sonuçta elde edilen karakter kümesini içeren karakter dizisi.

charIndex
Int32

Sonuçta elde edilen karakter kümesini yazmaya başlayabileceğiniz dizin.

flush
Boolean

true dönüştürmeden sonra kod çözücü iç durumunu temizlemek için; aksi takdirde , false.

Döndürülenler

Parametresine chars yazılan gerçek karakter sayısı.

Özel durumlar

bytes is null (Nothing).

-veya-

chars is null (Nothing).

byteIndex veya byteCountcharIndex sıfırdan küçüktür.

-veya-

byteindex ve byteCount içinde bytesgeçerli bir aralığı ifade etmeyin.

-veya-

charIndex içinde charsgeçerli bir dizin değil.

chars , sonuçta elde edilen karakterleri barındırmak için dizinin sonuna kadar yeterli kapasiteye charIndex sahip değildir.

Bir geri dönüş oluştu (daha fazla bilgi için bkz. .NET'te Karakter Kodlama)

-Ve-

Fallback olarak ayarlanır DecoderExceptionFallback.

Açıklamalar

nesnesinin Decoder çağrısı arasındaki durumu kaydettiğini GetCharsunutmayın. Uygulama bir veri akışıyla tamamlandığında, durum bilgilerinin boşaltıldığından flush emin olmak için parametresini true olarak ayarlamalıdır. Bu ayar ile kod çözücü, veri bloğunun sonundaki geçersiz baytları yoksayar ve iç arabelleği temizler.

Sonuçta elde edilen karakterlerin depolanmasını gerektiren GetChars dizi boyutunu tam olarak hesaplamak için uygulamanın kullanması GetCharCountgerekir.

olarak ayarlanırsa GetCharsflushfalsekod çözücü, veri bloğunun sonundaki baytları bir iç arabellekte depolar ve bunları bir sonraki kod çözme işleminde kullanır. Uygulamanın aynı blokta çağrı yapmadan hemen önce bir veri bloğu üzerinde çağrısı GetCharCountGetChars yapması gerekir, böylece önceki bloktaki sondaki baytlar hesaplamaya dahil edilir.

Uygulamanız bir giriş akışının birçok kesimini dönüştürecekse yöntemini kullanmayı Convert göz önünde bulundurun. GetChars çıkış arabelleği yeterince büyük değilse bir özel durum oluşturur, ancak Convert mümkün olduğunca fazla alan doldurur ve çıkış dizisinin en az iki karaktere izin vermesi koşuluyla okunan baytları ve karakterleri döndürür. Daha fazla yorum için konuya da bakın Encoding.GetChars .

Ayrıca bkz.

Şunlara uygulanır