GetByteCount Method (Char[], Int32, Int32, Boolean)
Collapse the table of content
Expand the table of content

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.

Namespace:  System.Text
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.Int32
The number of bytes produced by encoding the specified characters and any characters in the internal buffer.

ExceptionCondition
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


Windows Phone OS

Supported in: 8.1, 8.0, 7.1, 7.0

Windows Phone

Show:
© 2017 Microsoft