UTF8Encoding.GetMaxByteCount(Int32) Yöntem
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Belirtilen karakter sayısını kodlayarak üretilen en fazla bayt sayısını hesaplar.
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
Parametreler
- charCount
- Int32
Kodlanacak karakter sayısı.
Döndürülenler
Belirtilen karakter sayısını kodlayarak üretilen bayt sayısı üst sınırı.
Özel durumlar
charCount
, sıfırdan küçüktür.
-veya-
Elde edilen bayt sayısı, tamsayı olarak döndürülebilecek maksimum sayıdan büyüktür.
Geri dönüş oluştu (daha fazla bilgi için bkz. .NET'te Karakter Kodlama)
-Ve-
EncoderFallback olarak ayarlanır EncoderExceptionFallback.
Örnekler
Aşağıdaki örnek, belirtilen sayıda karakteri kodlamak için gereken en fazla bayt sayısını döndürmek için yöntemini kullanır 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
Açıklamalar
Sonucu elde edilen baytları depolamak için tarafından GetBytes gereken dizi boyutunu tam olarak hesaplamak için yöntemini çağırırsınız GetByteCount . En büyük dizi boyutunu hesaplamak için yöntemini çağırırsınız GetMaxByteCount . GetByteCount yöntemi genellikle daha az bellek ayırırkenGetMaxByteCount, yöntem genellikle daha hızlı yürütülür.
GetMaxByteCount , seçili EncoderFallbackdurumdaki için en kötü durum dahil olmak üzere en kötü durumlu bir sayıdır. Büyük olabilecek bir dize ile geri dönüş seçilirse, GetMaxByteCount büyük değerler döndürebilir.
Çoğu durumda, bu yöntem küçük dizeler için makul sayılar döndürür. Büyük dizeler için çok büyük arabellekler kullanma ve daha makul bir arabelleğin aşılması durumunda hataları yakalama arasında seçim yapmanız gerekebilir. veya Encoder.Convertkullanarak GetByteCount farklı bir yaklaşımı da göz önünde bulundurmak isteyebilirsiniz. Örneğin, İngilizce ve diğer birçok dilde metnin bir karakteri temsil etmesi için genellikle yalnızca bir UTF-8 bayt gerekir, ancak tarafından GetMaxByteCount döndürülen sayının dönüştürülecek dizenin tamamen dört bayt gerektiren karakterlerden oluşmasına olanak sağlaması gerekir.
GetMaxByteCount ile hiçbir ilişkisi GetCharsyoktur. Uygulamanızın ile GetCharskullanmak için benzer bir işleve ihtiyacı varsa, bunu kullanmalıdır GetMaxCharCount.
Not
GetMaxByteCount(N)
ile aynı değer N* GetMaxByteCount(1)
olmayabilir.