UTF7Encoding.GetMaxCharCount(Int32) Metoda

Definicja

Oblicza maksymalną liczbę znaków wyprodukowanych przez dekodowanie określonej liczby bajtów.Calculates the maximum number of characters produced by decoding the specified number of bytes.

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

Liczba bajtów do zdekodowania.The number of bytes to decode.

Zwraca

Int32

Maksymalna liczba znaków wytworzonych przez odkodowanie określonej liczby bajtów.The maximum number of characters produced by decoding the specified number of bytes.

Wyjątki

Parametr byteCount ma wartość niższą niż zero.byteCount is less than zero.

-lub--or- Wynikowa liczba znaków jest większa niż maksymalna liczba, którą można zwrócić jako int.The resulting number of characters is greater than the maximum number that can be returned as an int.

Wystąpiła rezerwa (Aby uzyskać więcej informacji, zobacz kodowanie znaków w programie .NET).A fallback occurred (for more information, see Character Encoding in .NET) lub-and- DecoderFallback jest ustawiony na DecoderExceptionFallback .DecoderFallback is set to DecoderExceptionFallback.

Przykłady

Poniższy przykład kodu demonstruje, jak użyć metody, GetMaxCharCount Aby zwrócić maksymalną liczbę znaków wytworzonych przez dekodowanie określonej liczby bajtów.The following code example demonstrates how to use the GetMaxCharCount method to return the maximum number of characters produced by decoding a specified number of bytes.

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

using System;
using System.Text;

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

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

Uwagi

Aby obliczyć dokładny rozmiar tablicy wymagany przez GetChars program do przechowywania wyników, aplikacja używa GetCharCount .To calculate the exact array size required by GetChars to store the resulting characters, the application uses GetCharCount. Aby obliczyć maksymalny rozmiar tablicy, aplikacja powinna używać GetMaxCharCount .To calculate the maximum array size, the application should use GetMaxCharCount. GetCharCountMetoda ogólnie zezwala na przydzielanie mniejszej ilości pamięci, podczas gdy GetMaxCharCount metoda zazwyczaj wykonuje się szybciej.The GetCharCount method generally allows allocation of less memory, while the GetMaxCharCount method generally executes faster.

GetMaxCharCount to najgorsza liczba przypadków, w tym najgorszy przypadek dla aktualnie wybranego elementu DecoderFallback .GetMaxCharCount is a worst-case number, including the worst case for the currently selected DecoderFallback. W przypadku wybrania rezerwy z potencjalnie dużym ciągiem GetMaxCharCount może zwracać duże wartości.If a fallback is chosen with a potentially large string, GetMaxCharCount can return large values.

W większości przypadków ta metoda zwraca rozsądne liczby dla małych ciągów.In most cases, this method returns reasonable numbers for small strings. W przypadku dużych ciągów może zajść potrzeba wyboru między użyciem bardzo dużych buforów i przechwycenia błędów w rzadkich przypadkach, gdy zostanie przekroczony bardziej rozsądny bufor.For large strings, you might have to choose between using very large buffers and catching errors in the rare case that a more reasonable buffer is exceeded. Warto również rozważyć inne podejście przy użyciu GetCharCount lub Decoder.Convert .You might also want to consider a different approach using GetCharCount or Decoder.Convert.

GetMaxCharCount nie ma relacji do GetBytes .GetMaxCharCount has no relation to GetBytes. Jeśli aplikacja wymaga użycia funkcji podobnej do GetBytes , należy użyć GetMaxByteCount .If your application needs a similar function to use with GetBytes, it should use GetMaxByteCount.

Uwaga

GetMaxCharCount(N) nie musi być taka sama jak wartość N* GetMaxCharCount(1) .GetMaxCharCount(N) is not necessarily the same value as N* GetMaxCharCount(1).

Dotyczy

Zobacz też