Aracılığıyla paylaş


UTF8Encoding.GetMaxCharCount(Int32) Yöntem

Tanım

Belirtilen bayt sayısının kodunu çözerek üretilen en fazla karakter sayısını hesaplar.

public:
 override int GetMaxCharCount(int byteCount);
public override int GetMaxCharCount (int byteCount);
override this.GetMaxCharCount : int -> int
Public Overrides Function GetMaxCharCount (byteCount As Integer) As Integer

Parametreler

byteCount
Int32

Kodu çözecek bayt sayısı.

Döndürülenler

Belirtilen bayt sayısının kodunu çözerek üretilen en fazla karakter sayısı.

Özel durumlar

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

-veya-

Elde edilen bayt sayısı, tamsayı olarak döndürülebilecek maksimum sayıdan büyüktür.

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

-Ve-

DecoderFallback olarak ayarlanır DecoderExceptionFallback.

Örnekler

Aşağıdaki örnek, belirtilen sayıda bayt kodunu çözerek üretilen en fazla karakter sayısını döndürmek için yöntemini kullanır GetMaxCharCount .

using namespace System;
using namespace System::Text;
int main()
{
   UTF8Encoding^ utf8 = gcnew UTF8Encoding;
   int byteCount = 8;
   int maxCharCount = utf8->GetMaxCharCount( byteCount );
   Console::WriteLine( "Maximum of {0} characters needed to decode {1} bytes.", maxCharCount, byteCount );
}
using System;
using System.Text;

class UTF8EncodingExample {
    public static void Main() {
        UTF8Encoding utf8 = new UTF8Encoding();
        int byteCount = 8;
        int maxCharCount = utf8.GetMaxCharCount(byteCount);
        Console.WriteLine(
            "Maximum of {0} characters needed to decode {1} bytes.",
            maxCharCount,
            byteCount
        );
    }
}
Imports System.Text

Class UTF8EncodingExample
    
    Public Shared Sub Main()
        Dim utf8 As New UTF8Encoding()
        Dim byteCount As Integer = 8
        Dim maxCharCount As Integer = utf8.GetMaxCharCount(byteCount)
        Console.WriteLine( _
            "Maximum of {0} characters needed to decode {1} bytes.", _
            maxCharCount, _
            byteCount _
        )
    End Sub
End Class

Açıklamalar

Sonuç karakterlerini depolamak için gereken GetChars dizi boyutunu tam olarak hesaplamak için yöntemini çağırırsınız GetCharCount . En büyük dizi boyutunu hesaplamak için yöntemini çağırırsınız GetMaxCharCount . GetCharCount yöntemi genellikle daha az bellek ayırırkenGetMaxCharCount, yöntem genellikle daha hızlı yürütülür.

GetMaxCharCount , şu anda seçili DecoderFallbackolan için en kötü durum dahil olmak üzere en kötü durumlu bir sayıdır. Büyük olabilecek bir dize ile bir geri dönüş seçilirse, GetMaxCharCount büyük değerler döndürebilir.

Çoğu durumda, bu yöntem küçük dizeler için makul sayılar döndürür. Büyük dizeler için, çok büyük arabellekler kullanma ve daha makul bir arabelleğin aşılması durumunda hataları yakalama arasında seçim yapmanız gerekebilir. veya Encoder.Convertkullanarak GetCharCount farklı bir yaklaşımı da göz önünde bulundurmak isteyebilirsiniz.

GetMaxCharCount ile hiçbir ilişkisi GetBytesyoktur. Uygulamanızın ile GetBytesbirlikte kullanmak için benzer bir işleve ihtiyacı varsa, bunu kullanmalıdır GetMaxByteCount.

Not

GetMaxCharCount(N) ile aynı değer N* GetMaxCharCount(1)olmayabilir.

Şunlara uygulanır

Ayrıca bkz.