UTF7Encoding.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 intké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éldakód bemutatja, hogyan használható a metódus a GetMaxByteCount megadott számú karakter kódolásához szükséges bájtok maximális számának visszaadására.
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
Megjegyzések
A kapott bájtok tárolásához szükséges GetBytes pontos tömbméret kiszámításához az alkalmazás a következőt használja GetByteCount: . A maximális tömbméret kiszámításához az alkalmazásnak a következőt kell használnia GetMaxByteCount: . A GetByteCount metódus általában kevesebb memória lefoglalását teszi lehetővé, 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 Bár az UTF-7 nagyon hatékony az ASCII-adatok kódolásában, karakterenként egy bájt, más adatok esetében rendkívül hatékony. Ahogy fentebb említettük, GetMaxByteCount egy legrosszabb esettel foglalkozik. Ha a kódolandó adatok nagyrészt ASCII-k, és különösen akkor, ha az ASCII karakterfürt együtt van, az UTF-7 lényegesen hatékonyabb, mint a metódus által visszaadott szám.
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 .