UTF8Encoding.GetMaxByteCount(Int32) Metode
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Menghitung jumlah maksimum byte yang dihasilkan dengan mengodekan jumlah karakter yang ditentukan.
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
Parameter
- charCount
- Int32
Jumlah karakter yang akan dikodekan.
Mengembalikan
Jumlah maksimum byte yang dihasilkan dengan mengodekan jumlah karakter yang ditentukan.
Pengecualian
charCount
kurang dari nol.
-atau-
Jumlah byte yang dihasilkan lebih besar dari angka maksimum yang dapat dikembalikan sebagai bilangan bulat.
Fallback terjadi (untuk informasi selengkapnya, lihat Pengodean Karakter di .NET)
-dan-
EncoderFallback diatur ke EncoderExceptionFallback.
Contoh
Contoh berikut menggunakan GetMaxByteCount metode untuk mengembalikan jumlah maksimum byte yang diperlukan untuk mengodekan sejumlah karakter tertentu.
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
Keterangan
Untuk menghitung ukuran array yang tepat yang diperlukan oleh GetBytes untuk menyimpan byte yang dihasilkan, Anda memanggil GetByteCount metode . Untuk menghitung ukuran array maksimum, Anda memanggil GetMaxByteCount metode . Metode ini GetByteCount umumnya mengalokasikan lebih sedikit memori, sementara GetMaxByteCount metode umumnya dijalankan lebih cepat.
GetMaxByteCount adalah angka kasus terburuk, termasuk kasus terburuk untuk yang saat ini dipilih EncoderFallback. Jika fallback dipilih dengan string yang berpotensi besar, GetMaxByteCount dapat mengembalikan nilai besar.
Dalam kebanyakan kasus, metode ini mengembalikan angka yang wajar untuk string kecil. Untuk string besar, Anda mungkin harus memilih antara menggunakan buffer yang sangat besar dan menangkap kesalahan dalam kasus yang jarang terjadi bahwa buffer yang lebih masuk akal terlampaui. Anda mungkin juga ingin mempertimbangkan pendekatan yang berbeda menggunakan GetByteCount atau Encoder.Convert. Misalnya, teks dalam bahasa Inggris dan banyak bahasa lain sering kali hanya membutuhkan satu byte UTF-8 untuk mewakili karakter, tetapi angka yang dikembalikan oleh GetMaxByteCount harus memungkinkan kemungkinan bahwa string yang akan dikonversi akan sepenuhnya terdiri dari karakter yang masing-masing membutuhkan empat byte.
GetMaxByteCount tidak memiliki hubungan dengan GetChars. Jika aplikasi Anda memerlukan fungsi serupa untuk digunakan dengan GetChars, aplikasi harus menggunakan GetMaxCharCount.
Catatan
GetMaxByteCount(N)
belum tentu nilai yang sama dengan N* GetMaxByteCount(1)
.