UTF7Encoding.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 intké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é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 .

A következőre érvényes:

Lásd még