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

class UTF8EncodingExample {
    public static void Main() {
        UTF8Encoding utf8 = new UTF8Encoding();
        int charCount = 2;
        int maxByteCount = utf8.GetMaxByteCount(charCount);
        Console.WriteLine(
            "Maximum of {0} bytes needed to encode {1} characters.",
            maxByteCount,
            charCount
        );
    }
}
Imports System.Text

Class UTF8EncodingExample
    
    Public Shared Sub Main()
        Dim utf8 As New UTF8Encoding()
        Dim charCount As Integer = 2
        Dim maxByteCount As Integer = utf8.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-8 位元組來代表字元,但所傳回 GetMaxByteCount 的數位必須允許轉換字串的可能性,全都包含每個需要四個位元組的字元。

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

注意

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

適用於

另請參閱