Sdílet prostřednictvím


UTF8Encoding.GetMaxCharCount(Int32) Metoda

Definice

Vypočítá maximální počet znaků vytvořených dekódováním zadaného počtu bajtů.

public:
 override int GetMaxCharCount(int byteCount);
public override int GetMaxCharCount (int byteCount);
override this.GetMaxCharCount : int -> int
Public Overrides Function GetMaxCharCount (byteCount As Integer) As Integer

Parametry

byteCount
Int32

Počet bajtů k dekódování.

Návraty

Maximální počet znaků vytvořený dekódováním zadaného počtu bajtů.

Výjimky

Hodnota byteCount je menší než nula.

-nebo-

Výsledný počet bajtů je větší než maximální počet, který lze vrátit jako celé číslo.

Došlo k náhradnímu použití (další informace najdete v tématu Kódování znaků v .NET)

-A-

DecoderFallback je nastavená na DecoderExceptionFallbackhodnotu .

Příklady

Následující příklad používá metodu GetMaxCharCount k vrácení maximálního počtu znaků produkovaných dekódováním zadaného počtu bajtů.

using namespace System;
using namespace System::Text;
int main()
{
   UTF8Encoding^ utf8 = gcnew UTF8Encoding;
   int byteCount = 8;
   int maxCharCount = utf8->GetMaxCharCount( byteCount );
   Console::WriteLine( "Maximum of {0} characters needed to decode {1} bytes.", maxCharCount, byteCount );
}
using System;
using System.Text;

class UTF8EncodingExample {
    public static void Main() {
        UTF8Encoding utf8 = new UTF8Encoding();
        int byteCount = 8;
        int maxCharCount = utf8.GetMaxCharCount(byteCount);
        Console.WriteLine(
            "Maximum of {0} characters needed to decode {1} bytes.",
            maxCharCount,
            byteCount
        );
    }
}
Imports System.Text

Class UTF8EncodingExample
    
    Public Shared Sub Main()
        Dim utf8 As New UTF8Encoding()
        Dim byteCount As Integer = 8
        Dim maxCharCount As Integer = utf8.GetMaxCharCount(byteCount)
        Console.WriteLine( _
            "Maximum of {0} characters needed to decode {1} bytes.", _
            maxCharCount, _
            byteCount _
        )
    End Sub
End Class

Poznámky

Pokud chcete vypočítat přesnou velikost pole vyžadovanou funkcí GetChars pro uložení výsledných znaků, zavolejte metodu GetCharCount . Pokud chcete vypočítat maximální velikost pole, zavolejte metodu GetMaxCharCount . Metoda GetCharCount obecně přiděluje méně paměti, zatímco GetMaxCharCount metoda se obecně spouští rychleji.

GetMaxCharCount je nejhorší číslo, včetně nejhoršího případu pro aktuálně vybraný DecoderFallback. Pokud zvolíte záložní s potenciálně velkým řetězcem, GetMaxCharCount může vrátit velké hodnoty.

Ve většině případů tato metoda vrátí přiměřené hodnoty pro malé řetězce. U velkých řetězců si možná budete muset vybrat mezi použitím velmi velkých vyrovnávacích pamětí a zachycením chyb ve výjimečných případech, kdy dojde k překročení rozumnější vyrovnávací paměti. Můžete také zvážit jiný přístup pomocí nebo GetCharCountEncoder.Convert.

GetMaxCharCount nemá žádný vztah k GetBytes. Pokud vaše aplikace potřebuje podobnou funkci pro použití s GetBytes, měla by používat GetMaxByteCount.

Poznámka

GetMaxCharCount(N) není nutně stejná hodnota jako N* GetMaxCharCount(1).

Platí pro

Viz také