UTF8Encoding.GetMaxByteCount(Int32) Metódus
Definíció
Fontos
Egyes információk olyan, kiadás előtti termékekre vonatkoznak, amelyek a kiadásig még jelentősen módosulhatnak. A Microsoft nem vállal kifejezett vagy törvényi garanciát az itt megjelenő információért.
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ó:
-é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 .