UTF7Encoding.GetMaxByteCount(Int32) 方法

定義

計算將指定數目的字元編碼所產生的最大位元組數目。

public override int GetMaxByteCount(int charCount);

參數

charCount
Int32

要編碼的字元數。

傳回

編碼指定字元數所產生的最大位元組數。

例外狀況

charCount 小於零。

-或-

所產生的位元組數目大於可用整數傳回的數目上限。

發生後援 (如需詳細資訊,請參閱 .NET 中的字元編碼)

-和-

EncoderFallback 設定為 EncoderExceptionFallback

範例

下列程式代碼範例示範如何使用 GetMaxByteCount 方法來傳回編碼指定字元數目所需的位元組數目上限。

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
        );
    }
}

備註

若要計算儲存所產生位元組所需的 GetBytes 確切數位大小,應用程式會使用 GetByteCount。 若要計算數位大小上限,應用程式應該使用 GetMaxByteCount。 方法 GetByteCount 通常允許配置較少的記憶體,而 GetMaxByteCount 方法通常執行速度較快。

GetMaxByteCount 是最差大小寫的數位,包括目前選取 EncoderFallback的最差大小寫。 如果選擇具有可能大型字串的後援, GetMaxByteCount 可以傳回大值。

在大部分情況下,此方法會傳回小型字串的合理數位。 對於大型字串,您可能必須在使用非常大的緩衝區和攔截錯誤之間選擇,在罕見的情況下,超過更合理的緩衝區。 您可能也想要考慮使用 GetByteCountEncoder.Convert的不同方法。 雖然UTF-7在編碼 ASCII 數據方面非常有效率,但每個字元一個字節,對其他數據而言非常沒有效率。 如前所述, GetMaxByteCount 處理最差的情況。 如果要編碼的數據主要是 ASCII,特別是當 ASCII 字元叢集在一起時,UTF-7 比此方法所傳回的數位更有效率。

GetMaxByteCount 與沒有關聯 GetChars。 如果您的應用程式需要與搭配 GetChars使用的類似函式,它應該使用 GetMaxCharCount

注意

GetMaxByteCount(N) 不一定與 N* GetMaxByteCount(1)相同值。

適用於

產品 版本
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9, 10
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0

另請參閱