UTF8Encoding.GetMaxByteCount(Int32) Metódus

Definíció

Kiszámítja a megadott számú karakter kódolásával előállított bájtok maximális számát.

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

Paraméterek

charCount
Int32

A kódolandó karakterek száma.

Válaszok

A megadott számú karakter kódolásával előállított bájtok maximális száma.

Kivételek

charCount kisebb, mint nulla.

-vagy-

Az eredményül kapott bájtszám nagyobb, mint az egész számként visszaadható maximális szám.

Hiba történt (további információ: Acharacter kódolása a .NET)

-és-

EncoderFallback EncoderExceptionFallbackértékre van állítva.

Példák

Az alábbi példa a GetMaxByteCount metódus használatával adja vissza a megadott számú karakter kódolásához szükséges bájtok maximális számát.

using System;
using System.Text;

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

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

Megjegyzések

Az eredményként kapott bájtok tárolásához szükséges GetBytes pontos tömbméret kiszámításához hívja meg a metódust GetByteCount . A maximális tömbméret kiszámításához hívja meg a metódust GetMaxByteCount . A GetByteCount metódus általában kevesebb memóriát foglal le, míg a GetMaxByteCount metódus általában gyorsabban fut.

GetMaxByteCount a legrosszabb esetszám, beleértve a jelenleg kiválasztott EncoderFallbackeset legrosszabb esetét is. Ha egy tartalékot egy potenciálisan nagy sztringgel választ, GetMaxByteCount nagy értékeket adhat vissza.

A legtöbb esetben ez a módszer a kis sztringekhez megfelelő számokat ad vissza. Nagy sztringek esetén előfordulhat, hogy választania kell a nagyon nagy pufferek használata és a hibák észlelése között abban a ritka esetben, amikor egy ésszerűbb puffer túllépése történik. Érdemes lehet megfontolni egy másik megközelítést is a vagy a .GetByteCountEncoder.Convert Az angol és sok más nyelvű szövegnek például gyakran csak egy UTF-8 bájtra van szüksége egy karakter megjelenítéséhez, de a visszaadott GetMaxByteCount számnak lehetővé kell tennie, hogy a konvertálandó sztring teljes egészében olyan karakterekből áll, amelyek mindegyike négy bájtot igényel.

GetMaxByteCount nincs kapcsolata a .-hez GetChars. Ha az alkalmazásnak hasonló függvényre van szüksége, GetCharsakkor azt kell használnia GetMaxCharCount.

Note

GetMaxByteCount(N) nem feltétlenül ugyanaz az érték, mint N* GetMaxByteCount(1)a .

A következőre érvényes:

Lásd még