UTF7Encoding.GetMaxByteCount(Int32) Yöntem

Tanım

Belirtilen karakter sayısını kodlayarak üretilen en fazla bayt sayısını hesaplar.

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

Parametreler

charCount
Int32

Kodlanacak karakter sayısı.

Döndürülenler

Belirtilen karakter sayısını kodlayarak üretilen bayt sayısı üst sınırı.

Özel durumlar

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

-veya-

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

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

-ve-

EncoderFallback olarak ayarlanır EncoderExceptionFallback.

Örnekler

Aşağıdaki kod örneği, belirtilen sayıda karakteri kodlamak için gereken bayt sayısı üst sınırını döndürmek için yönteminin nasıl kullanılacağını GetMaxByteCount gösterir.

using System;
using System.Text;

class UTF7EncodingExample {
    public static void Main() {
        UTF7Encoding utf7 = new UTF7Encoding();
        int charCount = 2;
        int maxByteCount = utf7.GetMaxByteCount(charCount);
        Console.WriteLine(
            "Maximum of {0} bytes needed to encode {1} characters.",
            maxByteCount,
            charCount
        );
    }
}
Imports System.Text

Class UTF7EncodingExample
    
    Public Shared Sub Main()
        Dim utf7 As New UTF7Encoding()
        Dim charCount As Integer = 2
        Dim maxByteCount As Integer = utf7.GetMaxByteCount(charCount)
        Console.WriteLine( _
            "Maximum of {0} bytes needed to encode {1} characters.", _
            maxByteCount, _
            charCount _
        )
    End Sub
End Class

Açıklamalar

Uygulama, tarafından elde edilen baytları depolamak için gereken GetBytes dizi boyutunu tam olarak hesaplamak için kullanır GetByteCount. En büyük dizi boyutunu hesaplamak için uygulama kullanmalıdır GetMaxByteCount. GetByteCount yöntemi genellikle daha az bellek ayırmaya izin verirken, GetMaxByteCount yöntem genellikle daha hızlı yürütülür.

GetMaxByteCount , seçili EncoderFallbackdurumdaki için en kötü durum da dahil olmak üzere en kötü durumlu bir sayıdır. Büyük olabilecek bir dize ile geri dönüş seçilirse, GetMaxByteCount 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ı gibi nadir durumlarda hataları yakalama arasında seçim yapmanız gerekebilir. veya GetByteCountkullanarak Encoder.Convert farklı bir yaklaşımı da göz önünde bulundurmak isteyebilirsiniz. UTF-7, karakter başına bir bayt olan ASCII verilerini kodlamada çok verimli olsa da, diğer veriler için son derece verimsizdir. Yukarıda belirtildiği gibi, GetMaxByteCount en kötü durumla ilgilenir. Kodlanacak veriler büyük ölçüde ASCII ise ve özellikle de ASCII karakterleri birlikte kümeleniyorsa, UTF-7 bu yöntem tarafından döndürülen sayıdan önemli ölçüde daha verimlidir.

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

Note

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

Şunlara uygulanır

Ayrıca bkz.