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.
In caso di override in una classe derivata, calcola il numero di byte prodotti dalla codifica di un set di caratteri.
Overload
| Nome | Descrizione |
|---|---|
| GetByteCount(ReadOnlySpan<Char>, Boolean) |
In caso di override in una classe derivata, calcola il numero di byte prodotti dalla codifica di un set di caratteri nell'intervallo "chars". Un parametro indica se cancellare lo stato interno del codificatore dopo il calcolo. |
| GetByteCount(Char*, Int32, Boolean) |
Quando sottoposto a override in una classe derivata, calcola il numero di byte prodotti dalla codifica di un set di caratteri a partire dal puntatore di caratteri specificato. Un parametro indica se cancellare lo stato interno del codificatore dopo il calcolo. |
| GetByteCount(Char[], Int32, Int32, Boolean) |
In caso di 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 cancellare lo stato interno del codificatore dopo il calcolo. |
Commenti
Questo metodo non influisce sullo stato del codificatore.
Per calcolare la dimensione esatta 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 su un blocco di dati immediatamente prima di chiamare GetByteCountGetBytes sullo stesso blocco, in modo che tutti i caratteri finali del blocco precedente siano inclusi nel calcolo.
GetByteCount(ReadOnlySpan<Char>, Boolean)
In caso di override in una classe derivata, calcola il numero di byte prodotti dalla codifica di un set di caratteri nell'intervallo "chars". Un parametro indica se cancellare lo stato interno del codificatore 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 codificatore dopo il calcolo; in caso contrario, false.
Valori restituiti
Numero di byte prodotti dalla codifica dei caratteri specificati e dei caratteri nel buffer interno.
Si applica a
GetByteCount(Char*, Int32, Boolean)
Importante
Questa API non è conforme a CLS.
Quando sottoposto a override in una classe derivata, calcola il numero di byte prodotti dalla codifica di un set di caratteri a partire dal puntatore di caratteri specificato. Un parametro indica se cancellare lo stato interno del codificatore dopo il calcolo.
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)]
public virtual int GetByteCount(char* chars, int count, bool flush);
[<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
[<System.CLSCompliant(false)>]
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 codificatore dopo il calcolo; in caso contrario, false.
Valori restituiti
Numero di byte prodotti dalla codifica dei caratteri specificati e dei caratteri 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)
In caso di 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 cancellare lo stato interno del codificatore 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 codificatore dopo il calcolo; in caso contrario, false.
Valori restituiti
Numero di byte prodotti dalla codifica dei caratteri specificati e dei caratteri 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 utilizzare il GetByteCount metodo per restituire il numero di byte necessari per codificare una matrice di caratteri usando un oggetto Unicode Encoder.
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.
'