Decoder.GetChars Yöntem

Tanım

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

Aşırı Yüklemeler

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

Türetilmiş bir sınıfta geçersiz kılındığında, iç arabellekteki bir dizi span baytını ve tüm baytları belirtilen karakter işaretçisinde başlayarak depolanan 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, 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şlayarak depolanan 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 dizisinden 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 dizisinden 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
Kaynak:
Decoder.cs
Kaynak:
Decoder.cs

Türetilmiş bir sınıfta geçersiz kılındığında, iç arabellekteki bir dizi span baytını ve tüm baytları belirtilen karakter işaretçisinde başlayarak depolanan 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(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 bir bayt aralığı.

chars
Span<Char>

Sonuçta elde edilen karakter kümesini yazmak için bir span.

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 yayılma noktasında yazılan gerçek karakter sayısı.

Açıklamalar

nesnesinin Decoder çağrısı arasında durum kaydettiğini GetCharsunutmayın. Uygulama bir veri akışıyla tamamlandığında, durum bilgilerinin temizlendiğinden 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.

ile GetCharsçağrılırsa flushfalse, kod çözücü veri bloğunun sonundaki baytları bir iç arabellekte depolar ve bunları bir sonraki kod çözme işleminde kullanır. Uygulama, aynı blokta çağrı GetCharCount yapmadan hemen önce bir veri bloğu üzerinde çağrı GetChars yapmalıdır, 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. Ayrıca daha fazla açıklama için konuya bakın Encoding.GetChars .

Şunlara uygulanır

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

Kaynak:
Decoder.cs
Kaynak:
Decoder.cs
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şlayarak depolanan 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 bayt işaretçisi.

byteCount
Int32

Kodu çözecek bayt sayısı.

chars
Char*

Sonuçta elde edilen karakter kümesini yazmaya başlamak için konum 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.

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ında durum kaydettiğini GetCharsunutmayın. Uygulama bir veri akışıyla tamamlandığında, durum bilgilerinin temizlendiğinden 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.

ile GetCharsçağrılırsa flushfalse, kod çözücü veri bloğunun sonundaki baytları bir iç arabellekte depolar ve bunları bir sonraki kod çözme işleminde kullanır. Uygulama, aynı blokta çağrı GetCharCount yapmadan hemen önce bir veri bloğu üzerinde çağrı GetChars yapmalıdır, 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 çıktı dizisinin en az iki karaktere izin vermesi koşuluyla okunan ve yazılan baytları döndürür. Ayrıca daha fazla açıklama için konuya 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
Kaynak:
Decoder.cs
Kaynak:
Decoder.cs

Türetilmiş bir sınıfta geçersiz kılındığında, belirtilen bayt dizisinden 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[]

Kodunu çözmek için 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şlanacağı 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 dizinin sonundan charIndex elde edilen karakterleri barındırmak için yeterli kapasiteye sahip değil.

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, bayt dizisindeki bir öğe aralığının kodunu çözmeyi ve bunları unicode karakter dizisinde depolamayı gösterir. yöntemi, GetCharCount kodu çözülen öğeleri dizisinde bytesdepolamak 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 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ında durum kaydettiğini GetCharsunutmayın. Uygulama bir veri akışıyla tamamlandığında, durum bilgilerinin temizlendiğinden 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, uygulama kullanmalıdır GetCharCount.

ile GetCharsçağrılırsa flushfalse, kod çözücü veri bloğunun sonundaki baytları bir iç arabellekte depolar ve bunları bir sonraki kod çözme işleminde kullanır. Uygulama, aynı blokta çağrı GetCharCount yapmadan hemen önce bir veri bloğu üzerinde çağrı GetChars yapmalıdır, 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 çıktı dizisinin en az iki karaktere izin vermesi koşuluyla okunan ve yazılan baytları döndürür. Ayrıca daha fazla açıklama için konuya 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
Kaynak:
Decoder.cs
Kaynak:
Decoder.cs

Türetilmiş bir sınıfta geçersiz kılındığında, belirtilen bayt dizisinden 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[]

Kodunu çözmek için 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şlanacağı 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 dizinin sonundan charIndex elde edilen karakterleri barındırmak için yeterli kapasiteye sahip değil.

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ında durum kaydettiğini GetCharsunutmayın. Uygulama bir veri akışıyla tamamlandığında, durum bilgilerinin temizlendiğinden 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, uygulama kullanmalıdır GetCharCount.

ile GetCharsçağrılırsa flushfalse, kod çözücü veri bloğunun sonundaki baytları bir iç arabellekte depolar ve bunları bir sonraki kod çözme işleminde kullanır. Uygulama, aynı blokta çağrı GetCharCount yapmadan hemen önce bir veri bloğu üzerinde çağrı GetChars yapmalıdır, 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 çıktı dizisinin en az iki karaktere izin vermesi koşuluyla okunan ve yazılan baytları döndürür. Ayrıca daha fazla açıklama için konuya bakın Encoding.GetChars .

Ayrıca bkz.

Şunlara uygulanır