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

Int32

Maximální počet znaků vytvořených 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 záložnímu obnovení (další informace najdete v tématu Kódování znaků v .NET). -a- DecoderFallback je nastavena na DecoderExceptionFallbackhodnotu .

Příklady

Následující příklad používá metodu GetMaxCharCount k vrácení maximálního počtu znaků vytvořený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

Chcete-li vypočítat přesnou velikost pole potřebnou GetChars k uložení výsledných znaků, zavoláte metodu GetCharCount . Chcete-li vypočítat maximální velikost pole, volejte metodu GetMaxCharCount . Metoda GetCharCount obecně přiděluje méně paměti, zatímco GetMaxCharCount metoda obvykle provádí rychleji.

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

Ve většině případů tato metoda vrací přiměřená čísla pro malé řetězce. U velkých řetězců si možná budete muset vybrat mezi používání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í vhodnější vyrovnávací paměti. Můžete také zvážit jiný přístup s použitím GetCharCount nebo Encoder.Convert.

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

Poznámka

GetMaxCharCount(N) nemusí být nutně stejná hodnota jako N* GetMaxCharCount(1).

Platí pro

Viz také