共用方式為


UTF7Encoding.GetMaxByteCount(Int32) 方法

定義

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

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

參數

charCount
Int32

要編碼的字元數。

傳回

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

例外狀況

charCount 小於零。

-或-

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

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

-和-

EncoderFallback 設定為 EncoderExceptionFallback

範例

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

using namespace System;
using namespace System::Text;
int main()
{
   UTF7Encoding^ utf7 = gcnew UTF7Encoding;
   int charCount = 2;
   int maxByteCount = utf7->GetMaxByteCount( charCount );
   Console::WriteLine( "Maximum of {0} bytes needed to encode {1} characters.", maxByteCount, charCount );
}
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
        );
    }
}
Imports System.Text

Class UTF7EncodingExample
    
    Public Shared Sub Main()
        Dim utf7 As New UTF7Encoding()
        Dim charCount As Integer = 2
        Dim maxByteCount As Integer = utf7.GetMaxByteCount(charCount)
        Console.WriteLine( _
            "Maximum of {0} bytes needed to encode {1} characters.", _
            maxByteCount, _
            charCount _
        )
    End Sub
End Class

備註

若要計算儲存所產生位元組所需的 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)相同值。

適用於

另請參閱