Encoder.GetByteCount Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Quando ne viene eseguito l'override in una classe derivata, calcola il numero di byte prodotti dalla codifica di un set di caratteri.
Overload
GetByteCount(ReadOnlySpan<Char>, Boolean) |
Quando ne viene eseguito l'override in una classe derivata, calcola il numero di byte prodotti dalla codifica di un set di caratteri nell'intervallo di caratteri "chars". Un parametro indica se lo stato interno del codificatore deve essere cancellato dopo il calcolo. |
GetByteCount(Char*, Int32, Boolean) |
Quando ne viene eseguito l'override in una classe derivata, calcola il numero di byte prodotti dalla codifica di un set di caratteri a partire dal puntatore ai caratteri specificato. Un parametro indica se lo stato interno del codificatore deve essere cancellato dopo il calcolo. |
GetByteCount(Char[], Int32, Int32, Boolean) |
Quando ne viene eseguito l'override in una classe derivata, calcola il numero di byte prodotti dalla codifica di un set di caratteri dalla matrice di caratteri specificata. Un parametro indica se lo stato interno del codificatore deve essere cancellato dopo il calcolo. |
Commenti
Questo metodo non influisce sullo stato del codificatore.
Per calcolare le dimensioni esatte della matrice che GetBytes richiede di archiviare i byte risultanti, l'applicazione deve usare GetByteCount.
Se GetBytes
viene chiamato con flush
impostato su false
, il codificatore archivia i caratteri finali alla fine del blocco di dati in un buffer interno e li usa nell'operazione di codifica successiva. L'applicazione deve chiamare GetByteCount
immediatamente un blocco di dati prima di chiamare GetBytes
lo stesso blocco, in modo che tutti i caratteri finali del blocco precedente siano inclusi nel calcolo.
GetByteCount(ReadOnlySpan<Char>, Boolean)
- Origine:
- Encoder.cs
- Origine:
- Encoder.cs
- Origine:
- Encoder.cs
Quando ne viene eseguito l'override in una classe derivata, calcola il numero di byte prodotti dalla codifica di un set di caratteri nell'intervallo di caratteri "chars". Un parametro indica se lo stato interno del codificatore deve essere cancellato dopo il calcolo.
public:
virtual int GetByteCount(ReadOnlySpan<char> chars, bool flush);
public virtual int GetByteCount (ReadOnlySpan<char> chars, bool flush);
abstract member GetByteCount : ReadOnlySpan<char> * bool -> int
override this.GetByteCount : ReadOnlySpan<char> * bool -> int
Public Overridable Function GetByteCount (chars As ReadOnlySpan(Of Char), flush As Boolean) As Integer
Parametri
- chars
- ReadOnlySpan<Char>
Intervallo di caratteri da codificare.
- flush
- Boolean
true
per simulare la cancellazione dello stato interno del decodificatore dopo il calcolo; in caso contrario, false
.
Restituisce
Numero di byte ottenuto dalla codifica dei caratteri specificati e di qualsiasi carattere nel buffer interno.
Si applica a
GetByteCount(Char*, Int32, Boolean)
- Origine:
- Encoder.cs
- Origine:
- Encoder.cs
- Origine:
- Encoder.cs
Importante
Questa API non è conforme a CLS.
Quando ne viene eseguito l'override in una classe derivata, calcola il numero di byte prodotti dalla codifica di un set di caratteri a partire dal puntatore ai caratteri specificato. Un parametro indica se lo stato interno del codificatore deve essere cancellato dopo il calcolo.
public:
virtual int GetByteCount(char* chars, int count, bool flush);
[System.CLSCompliant(false)]
public virtual int GetByteCount (char* chars, int count, bool flush);
[System.CLSCompliant(false)]
[System.Runtime.InteropServices.ComVisible(false)]
public virtual int GetByteCount (char* chars, int count, bool flush);
[System.CLSCompliant(false)]
[System.Runtime.InteropServices.ComVisible(false)]
[System.Security.SecurityCritical]
public virtual int GetByteCount (char* chars, int count, bool flush);
[<System.CLSCompliant(false)>]
abstract member GetByteCount : nativeptr<char> * int * bool -> int
override this.GetByteCount : nativeptr<char> * int * bool -> int
[<System.CLSCompliant(false)>]
[<System.Runtime.InteropServices.ComVisible(false)>]
abstract member GetByteCount : nativeptr<char> * int * bool -> int
override this.GetByteCount : nativeptr<char> * int * bool -> int
[<System.CLSCompliant(false)>]
[<System.Runtime.InteropServices.ComVisible(false)>]
[<System.Security.SecurityCritical>]
abstract member GetByteCount : nativeptr<char> * int * bool -> int
override this.GetByteCount : nativeptr<char> * int * bool -> int
Parametri
- chars
- Char*
Puntatore al primo carattere da codificare.
- count
- Int32
Numero di caratteri da codificare.
- flush
- Boolean
true
per simulare la cancellazione dello stato interno del decodificatore dopo il calcolo; in caso contrario, false
.
Restituisce
Numero di byte ottenuto dalla codifica dei caratteri specificati e di qualsiasi carattere nel buffer interno.
- Attributi
Eccezioni
chars
è null
(Nothing
in Visual Basic .NET).
count
è minore di zero.
Si è verificato un fallback (per altre informazioni, vedere Codifica dei caratteri in .NET)
-e-
Fallback è impostato su EncoderExceptionFallback.
Vedi anche
Si applica a
GetByteCount(Char[], Int32, Int32, Boolean)
- Origine:
- Encoder.cs
- Origine:
- Encoder.cs
- Origine:
- Encoder.cs
Quando ne viene eseguito l'override in una classe derivata, calcola il numero di byte prodotti dalla codifica di un set di caratteri dalla matrice di caratteri specificata. Un parametro indica se lo stato interno del codificatore deve essere cancellato dopo il calcolo.
public:
abstract int GetByteCount(cli::array <char> ^ chars, int index, int count, bool flush);
public abstract int GetByteCount (char[] chars, int index, int count, bool flush);
abstract member GetByteCount : char[] * int * int * bool -> int
Public MustOverride Function GetByteCount (chars As Char(), index As Integer, count As Integer, flush As Boolean) As Integer
Parametri
- chars
- Char[]
Matrice di caratteri contenente il set di caratteri da codificare.
- index
- Int32
Indice del primo carattere da codificare.
- count
- Int32
Numero di caratteri da codificare.
- flush
- Boolean
true
per simulare la cancellazione dello stato interno del decodificatore dopo il calcolo; in caso contrario, false
.
Restituisce
Numero di byte ottenuto dalla codifica dei caratteri specificati e di qualsiasi carattere nel buffer interno.
Eccezioni
chars
è null
.
index
o count
è minore di zero.
-oppure-
index
e count
non indicano un intervallo valido in chars
.
Si è verificato un fallback (per altre informazioni, vedere Codifica dei caratteri in .NET)
-e-
Fallback è impostato su EncoderExceptionFallback.
Esempio
Nell'esempio di codice seguente viene illustrato come usare il metodo per restituire il GetByteCount numero di byte necessari per codificare una matrice di caratteri usando un oggetto Unicode Encoder.
using namespace System;
using namespace System::Text;
int main()
{
// Unicode characters.
// Pi
// Sigma
array<Char>^chars = {L'\u03a0',L'\u03a3',L'\u03a6',L'\u03a9'};
Encoder^ uniEncoder = Encoding::Unicode->GetEncoder();
int byteCount = uniEncoder->GetByteCount( chars, 0, chars->Length, true );
Console::WriteLine( "{0} bytes needed to encode characters.", byteCount );
}
/* This code example produces the following output.
8 bytes needed to encode characters.
*/
using System;
using System.Text;
class EncoderExample {
public static void Main() {
// Unicode characters.
Char[] chars = new Char[] {
'\u0023', // #
'\u0025', // %
'\u03a0', // Pi
'\u03a3' // Sigma
};
Encoder uniEncoder = Encoding.Unicode.GetEncoder();
int byteCount = uniEncoder.GetByteCount(chars, 0, chars.Length, true);
Console.WriteLine(
"{0} bytes needed to encode characters.", byteCount
);
}
}
/* This example produces the following output.
8 bytes needed to encode characters.
*/
Imports System.Text
Imports Microsoft.VisualBasic.Strings
Class EncoderExample
Public Shared Sub Main()
' Unicode characters.
' ChrW(35) = #
' ChrW(37) = %
' ChrW(928) = Pi
' ChrW(931) = Sigma
Dim chars() As Char = {ChrW(35), ChrW(37), ChrW(928), ChrW(931)}
Dim uniEncoder As Encoder = Encoding.Unicode.GetEncoder()
Dim byteCount As Integer = _
uniEncoder.GetByteCount(chars, 0, chars.Length, True)
Console.WriteLine("{0} bytes needed to encode characters.", byteCount)
End Sub
End Class
'
'This example produces the following output.
'
'8 bytes needed to encode characters.
'