Aracılığıyla paylaş


Encoder.GetByteCount Yöntem

Tanım

Türetilmiş bir sınıfta geçersiz kılındığında, bir karakter kümesini kodlayarak üretilen bayt sayısını hesaplar.

Aşırı Yüklemeler

GetByteCount(ReadOnlySpan<Char>, Boolean)

Türetilmiş bir sınıfta geçersiz kılındığında, 'chars' span içindeki bir karakter kümesini kodlayarak üretilen bayt sayısını hesaplar. Parametre, hesaplamadan sonra kodlayıcının iç durumunun temizlenip temizlenmeyeceğini gösterir.

GetByteCount(Char*, Int32, Boolean)

Türetilmiş bir sınıfta geçersiz kılındığında, belirtilen karakter işaretçisinde başlayan bir karakter kümesini kodlayarak üretilen bayt sayısını hesaplar. Parametre, hesaplamadan sonra kodlayıcının iç durumunun temizlenip temizlenmeyeceğini gösterir.

GetByteCount(Char[], Int32, Int32, Boolean)

Türetilmiş bir sınıfta geçersiz kılındığında, belirtilen karakter dizisinden bir karakter kümesi kodlayarak üretilen bayt sayısını hesaplar. Parametre, hesaplamadan sonra kodlayıcının iç durumunun temizlenip temizlenmeyeceğini gösterir.

Açıklamalar

Bu yöntem kodlayıcının durumunu etkilemez.

Elde edilen baytların depolanmasını gerektiren GetBytes dizi boyutunu tam olarak hesaplamak için, uygulamanın kullanması GetByteCountgerekir.

olarak flush ayarlanırsa GetBytesfalsekodlayıcı, veri bloğunun sonundaki karakterleri bir iç arabellekte depolar ve bunları bir sonraki kodlama işleminde kullanır. Uygulamanın aynı blokta çağrı yapmadan hemen önce bir veri bloğu üzerinde çağrısı GetByteCountGetBytes yapması gerekir, böylece önceki bloktaki tüm son karakterler hesaplamaya dahil edilir.

GetByteCount(ReadOnlySpan<Char>, Boolean)

Kaynak:
Encoder.cs
Kaynak:
Encoder.cs
Kaynak:
Encoder.cs

Türetilmiş bir sınıfta geçersiz kılındığında, 'chars' span içindeki bir karakter kümesini kodlayarak üretilen bayt sayısını hesaplar. Parametre, hesaplamadan sonra kodlayıcının iç durumunun temizlenip temizlenmeyeceğini gösterir.

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

Parametreler

chars
ReadOnlySpan<Char>

Kodlamak için bir karakter aralığı.

flush
Boolean

true hesaplamadan sonra kodlayıcının iç durumunu temizleme işleminin benzetimini yapmak için; aksi takdirde , false.

Döndürülenler

Belirtilen karakterleri ve iç arabellekteki karakterleri kodlayarak üretilen bayt sayısı.

Şunlara uygulanır

GetByteCount(Char*, Int32, Boolean)

Kaynak:
Encoder.cs
Kaynak:
Encoder.cs
Kaynak:
Encoder.cs

Önemli

Bu API, CLS uyumlu değildir.

Türetilmiş bir sınıfta geçersiz kılındığında, belirtilen karakter işaretçisinde başlayan bir karakter kümesini kodlayarak üretilen bayt sayısını hesaplar. Parametre, hesaplamadan sonra kodlayıcının iç durumunun temizlenip temizlenmeyeceğini gösterir.

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

Parametreler

chars
Char*

Kodlanan ilk karakterin işaretçisi.

count
Int32

Kodlanacak karakter sayısı.

flush
Boolean

true hesaplamadan sonra kodlayıcının iç durumunu temizleme işleminin benzetimini yapmak için; aksi takdirde , false.

Döndürülenler

Belirtilen karakterleri ve iç arabellekteki karakterleri kodlayarak üretilen bayt sayısı.

Öznitelikler

Özel durumlar

chars is null (Nothing Visual Basic .NET'te).

count, sıfırdan küçüktür.

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

-Ve-

Fallback olarak ayarlanır EncoderExceptionFallback.

Ayrıca bkz.

Şunlara uygulanır

GetByteCount(Char[], Int32, Int32, Boolean)

Kaynak:
Encoder.cs
Kaynak:
Encoder.cs
Kaynak:
Encoder.cs

Türetilmiş bir sınıfta geçersiz kılındığında, belirtilen karakter dizisinden bir karakter kümesi kodlayarak üretilen bayt sayısını hesaplar. Parametre, hesaplamadan sonra kodlayıcının iç durumunun temizlenip temizlenmeyeceğini gösterir.

public:
 abstract int GetByteCount(cli::array <char> ^ chars, int index, int count, bool flush);
public abstract int GetByteCount (char[] chars, int index, int count, bool flush);
abstract member GetByteCount : char[] * int * int * bool -> int
Public MustOverride Function GetByteCount (chars As Char(), index As Integer, count As Integer, flush As Boolean) As Integer

Parametreler

chars
Char[]

Kodlanması gereken karakter kümesini içeren karakter dizisi.

index
Int32

Kodlanan ilk karakterin dizini.

count
Int32

Kodlanacak karakter sayısı.

flush
Boolean

true hesaplamadan sonra kodlayıcının iç durumunu temizleme işleminin benzetimini yapmak için; aksi takdirde , false.

Döndürülenler

Belirtilen karakterleri ve iç arabellekteki karakterleri kodlayarak üretilen bayt sayısı.

Özel durumlar

chars, null değeridir.

index veya count sıfırdan küçüktür.

-veya-

index ve count içinde charsgeçerli bir aralığı ifade etmeyin.

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

-Ve-

Fallback olarak ayarlanır EncoderExceptionFallback.

Örnekler

Aşağıdaki kod örneği, Unicode Encoderkullanarak bir karakter dizisini GetByteCount kodlamak için gereken bayt sayısını döndürmek için yönteminin nasıl kullanılacağını gösterir.

using namespace System;
using namespace System::Text;
int main()
{
   
   // Unicode characters.
   
   // Pi
   // Sigma
   array<Char>^chars = {L'\u03a0',L'\u03a3',L'\u03a6',L'\u03a9'};
   Encoder^ uniEncoder = Encoding::Unicode->GetEncoder();
   int byteCount = uniEncoder->GetByteCount( chars, 0, chars->Length, true );
   Console::WriteLine( "{0} bytes needed to encode characters.", byteCount );
}

/* This code example produces the following output. 

8 bytes needed to encode characters.

*/
using System;
using System.Text;

class EncoderExample {
    public static void Main() {
        // Unicode characters.
        Char[] chars = new Char[] {
            '\u0023', // #
            '\u0025', // %
            '\u03a0', // Pi
            '\u03a3'  // Sigma
        };

        Encoder uniEncoder = Encoding.Unicode.GetEncoder();
        int byteCount = uniEncoder.GetByteCount(chars, 0, chars.Length, true);
        Console.WriteLine(
            "{0} bytes needed to encode characters.", byteCount
        );
    }
}

/* This example produces the following output.

8 bytes needed to encode characters.

*/
Imports System.Text
Imports Microsoft.VisualBasic.Strings

Class EncoderExample
    
    Public Shared Sub Main()
        ' Unicode characters.
        ' ChrW(35)  = #
        ' ChrW(37)  = %
        ' ChrW(928) = Pi
        ' ChrW(931) = Sigma
        Dim chars() As Char = {ChrW(35), ChrW(37), ChrW(928), ChrW(931)}
        
        Dim uniEncoder As Encoder = Encoding.Unicode.GetEncoder()
        Dim byteCount As Integer = _
            uniEncoder.GetByteCount(chars, 0, chars.Length, True)
        Console.WriteLine("{0} bytes needed to encode characters.", byteCount)
    End Sub
End Class
'
'This example produces the following output.
'
'8 bytes needed to encode characters.
'

Ayrıca bkz.

Şunlara uygulanır