Aracılığıyla paylaş


UnicodeEncoding.GetCharCount Yöntem

Tanım

Bir bayt dizisinin kodunu çözerek üretilen karakter sayısını hesaplar.

Aşırı Yüklemeler

GetCharCount(Byte*, Int32)

Belirtilen bayt işaretçisinde başlayan bir bayt dizisinin kodunu çözerek üretilen karakter sayısını hesaplar.

GetCharCount(Byte[], Int32, Int32)

Belirtilen bayt dizisinden bir bayt dizisinin kodunu çözerek üretilen karakter sayısını hesaplar.

GetCharCount(Byte*, Int32)

Kaynak:
UnicodeEncoding.cs
Kaynak:
UnicodeEncoding.cs
Kaynak:
UnicodeEncoding.cs

Önemli

Bu API, CLS uyumlu değildir.

Belirtilen bayt işaretçisinde başlayan bir bayt dizisinin kodunu çözerek üretilen karakter sayısını hesaplar.

public:
 override int GetCharCount(System::Byte* bytes, int count);
[System.CLSCompliant(false)]
public override int GetCharCount (byte* bytes, int count);
[System.CLSCompliant(false)]
[System.Security.SecurityCritical]
public override int GetCharCount (byte* bytes, int count);
[System.CLSCompliant(false)]
[System.Runtime.InteropServices.ComVisible(false)]
public override int GetCharCount (byte* bytes, int count);
[System.CLSCompliant(false)]
[System.Security.SecurityCritical]
[System.Runtime.InteropServices.ComVisible(false)]
public override int GetCharCount (byte* bytes, int count);
[<System.CLSCompliant(false)>]
override this.GetCharCount : nativeptr<byte> * int -> int
[<System.CLSCompliant(false)>]
[<System.Security.SecurityCritical>]
override this.GetCharCount : nativeptr<byte> * int -> int
[<System.CLSCompliant(false)>]
[<System.Runtime.InteropServices.ComVisible(false)>]
override this.GetCharCount : nativeptr<byte> * int -> int
[<System.CLSCompliant(false)>]
[<System.Security.SecurityCritical>]
[<System.Runtime.InteropServices.ComVisible(false)>]
override this.GetCharCount : nativeptr<byte> * int -> int

Parametreler

bytes
Byte*

Kodunu çözmek için ilk bayta işaret eden bir işaretçi.

count
Int32

Kodu çözecek bayt sayısı.

Döndürülenler

Belirtilen bayt dizisinin kodunu çözerek üretilen karakter sayısı.

Öznitelikler

Özel durumlar

bytes is null (Nothing).

count, 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.

Hata algılama etkinleştirildi ve bytes geçersiz bayt dizisi içeriyor.

Bir geri dönüş oluştu (daha fazla bilgi için bkz. .NET'te Karakter Kodlama)

-Ve-

DecoderFallback olarak ayarlanır DecoderExceptionFallback.

Açıklamalar

Sonuçta elde edilen karakterlerin depolanmasını gerektiren GetChars dizi boyutunu tam olarak hesaplamak için, uygulama kullanır GetCharCount. En büyük dizi boyutunu hesaplamak için, uygulama kullanmalıdır GetMaxCharCount. GetCharCount yöntemi genellikle daha az bellek ayırırkenGetMaxCharCount, yöntem genellikle daha hızlı yürütülür.

Hata algılama ile geçersiz bir dizi bu yöntemin oluşturmasına ArgumentExceptionneden olur. Hata algılama olmadan geçersiz diziler yoksayılır ve özel durum oluşmaz.

Ayrıca bkz.

Şunlara uygulanır

GetCharCount(Byte[], Int32, Int32)

Kaynak:
UnicodeEncoding.cs
Kaynak:
UnicodeEncoding.cs
Kaynak:
UnicodeEncoding.cs

Belirtilen bayt dizisinden bir bayt dizisinin kodunu çözerek üretilen karakter sayısını hesaplar.

public:
 override int GetCharCount(cli::array <System::Byte> ^ bytes, int index, int count);
public override int GetCharCount (byte[] bytes, int index, int count);
override this.GetCharCount : byte[] * int * int -> int
Public Overrides Function GetCharCount (bytes As Byte(), index As Integer, count As Integer) As Integer

Parametreler

bytes
Byte[]

Kod çözme bayt sırasını içeren bayt dizisi.

index
Int32

Kodunu çözmek için ilk bayt dizini.

count
Int32

Kodu çözecek bayt sayısı.

Döndürülenler

Belirtilen bayt dizisinin kodunu çözerek üretilen karakter sayısı.

Özel durumlar

bytes is null (Nothing).

index veya count sıfırdan küçüktür.

-veya-

index ve count içinde bytesgeçerli bir aralığı ifade etmeyin.

-veya-

Elde edilen bayt sayısı, tamsayı olarak döndürülebilecek maksimum sayıdan büyüktür.

Hata algılama etkinleştirildi ve bytes geçersiz bayt dizisi içeriyor.

Bir geri dönüş oluştu (daha fazla bilgi için bkz. .NET'te Karakter Kodlama)

-Ve-

DecoderFallback olarak ayarlanır DecoderExceptionFallback.

Örnekler

Aşağıdaki örnek kullanarak bayt dizisindeki GetCharCountUnicodeEncodingbir öğe aralığının kodunu çözerek üretilen karakter sayısını döndürmek için yönteminin nasıl kullanılacağını gösterir.

using namespace System;
using namespace System::Text;
int main()
{
   array<Byte>^bytes = {85,0,110,0,105,0,99,0,111,0,100,0,101,0};
   UnicodeEncoding^ Unicode = gcnew UnicodeEncoding;
   int charCount = Unicode->GetCharCount( bytes, 2, 8 );
   Console::WriteLine( "{0} characters needed to decode bytes.", charCount );
}
using System;
using System.Text;

class UnicodeEncodingExample {
    public static void Main() {
        Byte[] bytes = new Byte[] {
            85, 0, 110, 0, 105, 0, 99, 0, 111, 0, 100, 0, 101, 0
        };

        UnicodeEncoding Unicode = new UnicodeEncoding();
        int charCount = Unicode.GetCharCount(bytes, 2, 8);
        Console.WriteLine(
            "{0} characters needed to decode bytes.", charCount
        );
    }
}
Imports System.Text

Class UnicodeEncodingExample
    
    Public Shared Sub Main()
        Dim bytes() As Byte = {85, 0, 110, 0, 105, 0, 99, 0, 111, 0, 100, 0, 101, 0}
        
        Dim uni As New UnicodeEncoding()
        Dim charCount As Integer = uni.GetCharCount(bytes, 2, 8)
        Console.WriteLine("{0} characters needed to decode bytes.", charCount)
    End Sub
End Class

Açıklamalar

Sonuçta elde edilen karakterleri depolamak için gereken GetChars dizi boyutunu tam olarak hesaplamak için, uygulama kullanır GetCharCount. En büyük dizi boyutunu hesaplamak için, uygulama kullanmalıdır GetMaxCharCount. GetCharCount yöntemi genellikle daha az bellek ayırırkenGetMaxCharCount, yöntem genellikle daha hızlı yürütülür.

Hata algılama ile geçersiz bir dizi bu yöntemin oluşturmasına ArgumentExceptionneden olur. Hata algılama olmadan geçersiz diziler yoksayılır ve özel durum oluşmaz.

Ayrıca bkz.

Şunlara uygulanır