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.

C#
public virtual int GetChars (ReadOnlySpan<byte> bytes, Span<char> chars, bool flush);

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

.NET 9 ve diğer sürümler
Ürün Sürümler
.NET Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Standard 2.1

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.

C#
[System.CLSCompliant(false)]
public virtual int GetChars (byte* bytes, int byteCount, char* chars, int charCount, bool flush);
C#
[System.CLSCompliant(false)]
[System.Runtime.InteropServices.ComVisible(false)]
public virtual int GetChars (byte* bytes, int byteCount, char* chars, int charCount, bool flush);
C#
[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);

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

.NET 9 ve diğer sürümler
Ürün Sürümler
.NET Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1

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.

C#
public abstract int GetChars (byte[] bytes, int byteIndex, int byteCount, char[] chars, int charIndex);

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.

C#
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]

*/

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

.NET 9 ve diğer sürümler
Ürün Sürümler
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0

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.

C#
public virtual int GetChars (byte[] bytes, int byteIndex, int byteCount, char[] chars, int charIndex, bool flush);

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

.NET 9 ve diğer sürümler
Ürün Sürümler
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0