Aracılığıyla paylaş


UnicodeEncoding.GetMaxByteCount(Int32) Yöntem

Tanım

Belirtilen karakter sayısını kodlayarak üretilen bayt sayısı üst sınırı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ı, 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-

EncoderFallback olarak ayarlanır EncoderExceptionFallback.

Örnekler

Aşağıdaki örnek, 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 namespace System;
using namespace System::Text;
int main()
{
   UnicodeEncoding^ Unicode = gcnew UnicodeEncoding;
   int charCount = 2;
   int maxByteCount = Unicode->GetMaxByteCount( charCount );
   Console::WriteLine( "Maximum of {0} bytes needed to encode {1} characters.", maxByteCount, charCount );
}
using System;
using System.Text;

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

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

Açıklamalar

Uygulama, sonuç baytlarını 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ırırkenGetMaxByteCount, yöntem genellikle daha hızlı yürütülür.

GetMaxByteCount seçili durumdaki EncoderFallbackiçin en kötü durum dahil olmak üzere en kötü durum numarasını alır. Büyük olabilecek bir dize ile bir 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ı alı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 GetByteCount farklı bir yaklaşımı da göz önünde bulundurmak isteyebilirsiniz.

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

Not

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

Şunlara uygulanır

Ayrıca bkz.