Bagikan melalui


UTF7Encoding.GetMaxByteCount(Int32) Metode

Definisi

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 int.

Fallback terjadi (untuk informasi selengkapnya, lihat Pengodean Karakter di .NET)

-dan-

EncoderFallback diatur ke EncoderExceptionFallback.

Contoh

Contoh kode berikut menunjukkan cara menggunakan GetMaxByteCount metode untuk mengembalikan jumlah maksimum byte yang diperlukan untuk mengodekan jumlah karakter tertentu.

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

Keterangan

Untuk menghitung ukuran array yang tepat yang diperlukan oleh GetBytes untuk menyimpan byte yang dihasilkan, aplikasi menggunakan GetByteCount. Untuk menghitung ukuran array maksimum, aplikasi harus menggunakan GetMaxByteCount. Metode ini GetByteCount umumnya memungkinkan alokasi memori yang lebih sedikit, sementara metode umumnya GetMaxByteCount 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. Meskipun UTF-7 sangat efisien dalam mengodekan data ASCII, satu byte per karakter, sangat tidak efisien untuk data lain. Seperti yang dinyatakan di atas, GetMaxByteCount menangani kasus terburuk. Jika data yang akan dikodekan sebagian besar adalah ASCII, dan terutama jika kluster karakter ASCII bersama-sama, UTF-7 secara signifikan lebih efisien daripada angka yang dikembalikan oleh metode ini.

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).

Berlaku untuk

Lihat juga