Encoder.GetByteCount Method (Char(), Int32, Int32, Boolean)
[ This article is for Windows Phone 8 developers. If you’re developing for Windows 10, see the latest documentation. ]
When overridden in a derived class, calculates the number of bytes produced by encoding a set of characters from the specified character array. A parameter indicates whether to clear the internal state of the encoder after the calculation.
Assembly: mscorlib (in mscorlib.dll)
'Declaration Public MustOverride Function GetByteCount ( _ chars As Char(), _ index As Integer, _ count As Integer, _ flush As Boolean _ ) As Integer
Parameters
- chars
- Type:
System.Char
()
The character array containing the set of characters to encode.
- index
- Type: System.Int32
The zero-based index of the first character to encode.
- count
- Type: System.Int32
The number of characters to encode.
- flush
- Type: System.Boolean
true to simulate clearing the internal state of the encoder after the calculation; otherwise, false.
Return Value
Type: System.Int32The number of bytes produced by encoding the specified characters and any characters in the internal buffer.
| Exception | Condition |
|---|---|
| ArgumentNullException | chars is Nothing. |
| ArgumentOutOfRangeException | index or count is less than zero. -or- index and count do not denote a valid range in chars. |
| EncoderFallbackException | A fallback occurred. |
This method does not affect the state of the encoder.
The GetByteCount(Char(), Int32, Int32, Boolean) method calculates the exact array size that the GetBytes method requires to store the encoded bytes.
If GetBytes is called with flush set to false, the encoder stores trailing characters at the end of the data block in an internal buffer and uses them in the next encoding operation. The application should call GetByteCount on a block of data immediately before calling GetBytes on the same block, so that any trailing characters from the previous block are included in the calculation.
The following code example demonstrates how to use the GetByteCount method to return the number of bytes required to encode an array of characters using a Unicode Encoder.
Imports System.Text Imports Microsoft.VisualBasic.Strings Class Example Public Shared Sub Demo(ByVal outputBlock As System.Windows.Controls.TextBlock) ' 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) outputBlock.Text += String.Format("{0} bytes needed to encode characters.", byteCount) & vbCrLf End Sub 'Main End Class 'EncoderExample