Decoder.GetChars 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.
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ığı.
- 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 GetChars
flush
false
kod çö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ı GetCharCount
GetChars
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
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 GetChars
flush
false
kod çö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ı GetCharCount
GetChars
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 chars
yazılan gerçek karakter sayısı.
Özel durumlar
byteIndex
veya byteCount
charIndex
sıfırdan küçüktür.
-veya-
byteindex
ve byteCount
içinde bytes
geçerli bir aralığı ifade etmeyin.
-veya-
charIndex
içinde chars
geç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 bytes
kodu çö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 GetChars
flush
false
kod çö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ı GetCharCount
GetChars
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
byteIndex
veya byteCount
charIndex
sıfırdan küçüktür.
-veya-
byteindex
ve byteCount
içinde bytes
geçerli bir aralığı ifade etmeyin.
-veya-
charIndex
içinde chars
geç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 GetChars
flush
false
kod çö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ı GetCharCount
GetChars
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 .