UnicodeEncoding.GetMaxCharCount(Int32) Metod

Definition

Beräknar det maximala antalet tecken som genereras genom avkodning av det angivna antalet byte.

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

Parametrar

byteCount
Int32

Antalet byte som ska avkodas.

Returer

Det maximala antalet tecken som genereras genom avkodning av det angivna antalet byte.

Undantag

byteCount är mindre än noll.

-eller-

Det resulterande antalet byte är större än det maximala antalet som kan returneras som ett heltal.

En reserv inträffade (mer information finns i Character Encoding i .NET)

-och-

DecoderFallback är inställt på DecoderExceptionFallback.

Exempel

I följande exempel visas hur du använder GetMaxCharCount metoden för att returnera det maximala antalet tecken som genereras genom avkodning av ett angivet antal byte.

using System;
using System.Text;

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

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

Kommentarer

För att beräkna den exakta matrisstorlek som krävs för GetChars att lagra de resulterande tecknen använder GetCharCountprogrammet . För att beräkna den maximala matrisstorleken bör programmet använda GetMaxCharCount. Metoden GetCharCount allokerar vanligtvis mindre minne, medan GetMaxCharCount metoden vanligtvis körs snabbare.

GetMaxCharCount hämtar ett sämsta fall-tal, inklusive det värsta fallet för den valda DecoderFallback. Om du väljer en reserv med en potentiellt stor sträng GetMaxCharCount hämtar du stora värden.

I de flesta fall hämtar den här metoden rimliga tal för små strängar. För stora strängar kan du behöva välja mellan att använda mycket stora buffertar och fånga fel i det sällsynta fallet att en mer rimlig buffert överskrids. Du kanske också vill överväga en annan metod med eller GetCharCountConvert.

GetMaxCharCount har ingen relation till GetBytes. Om programmet behöver en liknande funktion som ska användas med GetBytesska det använda GetMaxByteCount.

Note

GetMaxCharCount(N) är inte nödvändigtvis samma värde som N* GetMaxCharCount(1).

Gäller för

Se även