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 での文字エンコード」を参照) および EncoderFallback が EncoderExceptionFallback に設定されます。
例
次の例では、このメソッドを使用 GetMaxByteCount して、指定した文字数をエンコードするために必要な最大バイト数を返す方法を示します。
using namespace System;
using namespace System::Text;
int main()
{
UnicodeEncoding^ Unicode = gcnew UnicodeEncoding;
int charCount = 2;
int maxByteCount = Unicode->GetMaxByteCount( charCount );
Console::WriteLine( "Maximum of {0} bytes needed to encode {1} characters.", maxByteCount, charCount );
}
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する必要があります。 一般に、このメソッドは割り当てるメモリが少なくなりますが、一般に、メソッドのGetMaxByteCount実行速度はGetByteCount速くなります。
GetMaxByteCount現在選択されているの最悪のケースを含む、最悪のケース番号を取得し EncoderFallback ます。 大きい可能性がある文字列でフォールバックを選択した場合は、 GetMaxByteCount 大きな値を返すことができます。
ほとんどの場合、このメソッドは小さい文字列に対して適切な数値を取得します。 大きな文字列の場合は、非常に大きなバッファーを使用して、より合理的なバッファーを超えるまれなケースでエラーをキャッチするかを選択する必要があります。 またはを使用して別の方法を検討することもでき GetByteCount Encoder.Convert ます。
GetMaxByteCountには関係がありません GetChars 。 アプリケーションで使用するのと同様の関数が必要な GetChars場合は、使用する必要があります GetMaxCharCount。
注意
GetMaxByteCount(N)
はと同じ値であるとは限りません N* GetMaxByteCount(1)
。