UnicodeEncoding.GetMaxByteCount(Int32) 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
計算編碼指定字元數所產生的最大位元組數。
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
需要編碼的字元數。
傳回
編碼指定字元數所產生的最大位元組數。
例外狀況
後來出現了備用機制(更多資訊請參見 .NET 中的字元編碼)
-及-
範例
以下範例示範如何使用此 GetMaxByteCount 方法回傳編碼指定字元所需的最大位元組數。
using System;
using System.Text;
class UnicodeEncodingExample {
public static void Main() {
UnicodeEncoding Unicode = new UnicodeEncoding();
int charCount = 2;
int maxByteCount = Unicode.GetMaxByteCount(charCount);
Console.WriteLine(
"Maximum of {0} bytes needed to encode {1} characters.",
maxByteCount,
charCount
);
}
}
Imports System.Text
Class UnicodeEncodingExample
Public Shared Sub Main()
Dim uni As New UnicodeEncoding()
Dim charCount As Integer = 2
Dim maxByteCount As Integer = uni.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 可能很大,則可回傳較大值。
在大多數情況下,此方法能取得小字串的合理數值。 對於大字串,你可能得在使用非常大的緩衝區和在罕見情況下抓出錯誤之間做選擇,因為緩衝區超過了更合理的緩衝區。 你也可以考慮使用 GetByteCount 或 Encoder.Convert的其他方法。
GetMaxByteCount 與 無關 GetChars。 如果你的應用程式需要類似的功能來搭配 GetChars,它應該使用 GetMaxCharCount。
Note
GetMaxByteCount(N) 不一定與 N* GetMaxByteCount(1)相同。