<Type Name="UnicodeEncoding" FullName="System.Text.UnicodeEncoding" FullNameSP="System_Text_UnicodeEncoding" Maintainer="ecma">
  <TypeSignature Language="ILASM" Value=".class public serializable UnicodeEncoding extends System.Text.Encoding" />
  <TypeSignature Language="C#" Value="public class UnicodeEncoding : System.Text.Encoding" />
  <TypeSignature Language="ILAsm" Value=".class public auto ansi serializable beforefieldinit UnicodeEncoding extends System.Text.Encoding" />
  <MemberOfLibrary>BCL</MemberOfLibrary>
  <AssemblyInfo>
    <AssemblyName>mscorlib</AssemblyName>
    <AssemblyPublicKey>[00 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00 ]</AssemblyPublicKey>
    <AssemblyVersion>1.0.5000.0</AssemblyVersion>
    <AssemblyVersion>2.0.0.0</AssemblyVersion>
    <AssemblyVersion>4.0.0.0</AssemblyVersion>
  </AssemblyInfo>
  <ThreadingSafetyStatement>All public static members of this type are safe for multithreaded operations. No instance members are guaranteed to be thread safe.</ThreadingSafetyStatement>
  <Base>
    <BaseTypeName>System.Text.Encoding</BaseTypeName>
  </Base>
  <Interfaces />
  <Attributes>
    <Attribute>
      <AttributeName>System.Runtime.InteropServices.ComVisible(true)</AttributeName>
    </Attribute>
  </Attributes>
  <Docs>
    <summary>
      <para>Represents a Unicode implementation of <see cref="T:System.Text.Encoding" />.</para>
    </summary>
    <remarks>
      <para>
        <see cref="T:System.Text.UnicodeEncoding" /> encodes each Unicode character in UTF-16, i.e. as
   two consecutive bytes. Both little-endian and big-endian encodings are
   supported.</para>
      <block subset="none" type="note">
        <para> On little-endian platforms such as Intel
      machines, it is generally more efficient to store Unicode characters in
      little-endian. However, many other platforms can store Unicode characters in
      big-endian. Unicode files can be distinguished by the presence of the byte order
      mark (U+FEFF), which is written as either 0xfe 0xff or 0xff 0xfe. </para>
        <para> This <see cref="T:System.Text.Encoding" /> implementation can detect a byte order mark automatically
   and switch byte orders, based on a parameter specified in the constructor.</para>
        <para> ISO/IEC 10646 defines UCS-2 and UCS-4. UCS-4 is a four-byte (32-bit)
   encoding containing 2<sup>31</sup> code positions, divided into 128
groups of 256 planes. Each plane contains 2<sup>16</sup> code
positions. UCS-2 is a two-byte (16-bit) encoding containing the
2<sup>16</sup> code positions of UCS-4 for which the upper two bytes
are zero, known as Plane Zero or the Basic Multilingual Plane (BMP).
For example, the code position for LATIN CAPITAL LETTER A in UCS-4
is 0x00000041 whereas in UCS-2 it is 0x0041.</para>
        <para> ISO/IEC 10646 also defines UTF-16, which stands for "UCS
   Transformation Format for 16 Planes of Group 00". UTF-16 is a two
   byte encoding that uses an extension mechanism to represent
   2<sup>21</sup> code positions. UTF-16 represents code
positions in Plane Zero by its UCS-2 code value and code positions in
Planes 1 through 16 by a pair of special code values,
called surrogates. UTF-16 is equivalent to the Unicode Standard. For a
detailed description of UTF-16 and surrogates, see "The Unicode Standard Version 3.0"
Appendix C.</para>
      </block>
    </remarks>
  </Docs>
  <Members>
    <Member MemberName=".ctor">
      <MemberSignature Language="ILASM" Value="public rtspecialname specialname instance void .ctor()" />
      <MemberSignature Language="C#" Value="public UnicodeEncoding ();" />
      <MemberSignature Language="ILAsm" Value=".method public hidebysig specialname rtspecialname instance void .ctor() cil managed" />
      <MemberType>Constructor</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>1.0.5000.0</AssemblyVersion>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue />
      <Parameters />
      <Docs>
        <summary>
          <para> Constructs and initializes
      a new instance of the <see cref="T:System.Text.UnicodeEncoding" />
      class.
      </para>
        </summary>
        <remarks>
          <para> The new instance uses little-endian encoding and includes the Unicode byte-order
      mark in conversions.
      </para>
        </remarks>
      </Docs>
      <Excluded>0</Excluded>
    </Member>
    <Member MemberName=".ctor">
      <MemberSignature Language="ILASM" Value="public rtspecialname specialname instance void .ctor(bool bigEndian, bool byteOrderMark)" />
      <MemberSignature Language="C#" Value="public UnicodeEncoding (bool bigEndian, bool byteOrderMark);" />
      <MemberSignature Language="ILAsm" Value=".method public hidebysig specialname rtspecialname instance void .ctor(bool bigEndian, bool byteOrderMark) cil managed" />
      <MemberType>Constructor</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>1.0.5000.0</AssemblyVersion>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue />
      <Parameters>
        <Parameter Name="bigEndian" Type="System.Boolean" />
        <Parameter Name="byteOrderMark" Type="System.Boolean" />
      </Parameters>
      <Docs>
        <param name="bigEndian">A <see cref="T:System.Boolean" /> value that specifies the byte-ordering to use for the new instance. Specify <see langword="true" /> to use big-endian ordering; specify <see langword="false" /> to use little-endian ordering. </param>
        <param name="byteOrderMark">A <see cref="T:System.Boolean" /> value that specifies whether to include the Unicode byte order mark in translated strings. Specify <see langword="true" /> to include the Unicode byte-order mark; otherwise, specify <see langword="false" /> . </param>
        <summary>
          <para> Constructs and initializes a new instance of the <see cref="T:System.Text.UnicodeEncoding" /> class using the specified Boolean
   flags.</para>
        </summary>
        <remarks>To be added.</remarks>
      </Docs>
      <Excluded>0</Excluded>
    </Member>
    <Member MemberName=".ctor">
      <MemberSignature Language="C#" Value="public UnicodeEncoding (bool bigEndian, bool byteOrderMark, bool throwOnInvalidBytes);" />
      <MemberSignature Language="ILAsm" Value=".method public hidebysig specialname rtspecialname instance void .ctor(bool bigEndian, bool byteOrderMark, bool throwOnInvalidBytes) cil managed" />
      <MemberType>Constructor</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <Parameters>
        <Parameter Name="bigEndian" Type="System.Boolean" />
        <Parameter Name="byteOrderMark" Type="System.Boolean" />
        <Parameter Name="throwOnInvalidBytes" Type="System.Boolean" />
      </Parameters>
      <Docs>
        <param name="bigEndian">To be added.</param>
        <param name="byteOrderMark">To be added.</param>
        <param name="throwOnInvalidBytes">To be added.</param>
        <summary>To be added.</summary>
        <remarks>To be added.</remarks>
        <since version=".NET 2.0" />
      </Docs>
    </Member>
    <Member MemberName="CharSize">
      <MemberSignature Language="C#" Value="public const int CharSize = 2;" />
      <MemberSignature Language="ILAsm" Value=".field public static literal int32 CharSize = (2)" />
      <MemberType>Field</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>1.0.5000.0</AssemblyVersion>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <MemberValue>2</MemberValue>
      <Docs>
        <summary>To be added.</summary>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="Equals">
      <MemberSignature Language="ILASM" Value=".method public hidebysig virtual bool Equals(object value)" />
      <MemberSignature Language="C#" Value="public override bool Equals (object value);" />
      <MemberSignature Language="ILAsm" Value=".method public hidebysig virtual instance bool Equals(object value) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>1.0.5000.0</AssemblyVersion>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="value" Type="System.Object" />
      </Parameters>
      <Docs>
        <param name="value">The <see cref="T:System.Object" /> to compare to the current instance.</param>
        <summary>
          <para>Determines whether the current instance and the
      specified <see cref="T:System.Object" /> represent the
      same type and value.</para>
        </summary>
        <returns>
          <para>
            <see langword="true" /> if <paramref name="value" /> represents the same type and value as the
   current instance. If <paramref name="value" /> is a null reference or is not an
   instance of <see cref="T:System.Text.UnicodeEncoding" />, returns <see langword="false" />.</para>
        </returns>
        <remarks>
          <para>
            <block subset="none" type="note">This method overrides <see cref="M:System.Object.Equals(System.Object)" qualify="true" />.</block>
          </para>
        </remarks>
      </Docs>
      <Excluded>0</Excluded>
    </Member>
    <Member MemberName="GetByteCount">
      <MemberSignature Language="ILASM" Value=".method public hidebysig virtual int32 GetByteCount(string s)" />
      <MemberSignature Language="C#" Value="public override int GetByteCount (string s);" />
      <MemberSignature Language="ILAsm" Value=".method public hidebysig virtual instance int32 GetByteCount(string s) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>1.0.5000.0</AssemblyVersion>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="s" Type="System.String" />
      </Parameters>
      <Docs>
        <param name="s">A <see cref="T:System.String" /> to encode as Unicode-encoded characters.</param>
        <summary>
          <para>Returns the number of bytes required to encode the
      specified string as Unicode-encoded characters. </para>
        </summary>
        <returns>
          <para>A <see cref="T:System.Int32" />
containing the number of bytes needed to encode <paramref name="s" /> as Unicode-encoded
characters. </para>
        </returns>
        <remarks>
          <para>
            <block subset="none" type="note">This method
      overrides <see cref="M:System.Text.Encoding.GetByteCount(System.Char[])" qualify="true" />.</block>
          </para>
        </remarks>
        <exception cref="T:System.ArgumentNullException">
          <paramref name="s" /> is <see langword="null" />.</exception>
      </Docs>
      <Excluded>0</Excluded>
    </Member>
    <Member MemberName="GetByteCount">
      <MemberSignature Language="C#" Value="public override int GetByteCount (char* chars, int count);" />
      <MemberSignature Language="ILAsm" Value=".method public hidebysig virtual instance int32 GetByteCount(char* chars, int32 count) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <Attributes>
        <Attribute>
          <AttributeName>System.CLSCompliant(false)</AttributeName>
        </Attribute>
        <Attribute>
          <AttributeName>System.Runtime.InteropServices.ComVisible(false)</AttributeName>
        </Attribute>
      </Attributes>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="chars" Type="System.Char*" />
        <Parameter Name="count" Type="System.Int32" />
      </Parameters>
      <Docs>
        <param name="chars">To be added.</param>
        <param name="count">To be added.</param>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
        <since version=".NET 2.0" />
      </Docs>
    </Member>
    <Member MemberName="GetByteCount">
      <MemberSignature Language="ILASM" Value=".method public hidebysig virtual int32 GetByteCount(class System.Char[] chars, int32 index, int32 count)" />
      <MemberSignature Language="C#" Value="public override int GetByteCount (char[] chars, int index, int count);" />
      <MemberSignature Language="ILAsm" Value=".method public hidebysig virtual instance int32 GetByteCount(char[] chars, int32 index, int32 count) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>1.0.5000.0</AssemblyVersion>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="chars" Type="System.Char[]" />
        <Parameter Name="index" Type="System.Int32" />
        <Parameter Name="count" Type="System.Int32" />
      </Parameters>
      <Docs>
        <param name="chars"> A <see cref="T:System.Char" /> array to encode as Unicode-encoded characters. </param>
        <param name="index">A <see cref="T:System.Int32" /> that specifies the first index of <paramref name="chars" /> to encode. </param>
        <param name="count">A <see cref="T:System.Int32" /> that specifies the number of elements in <paramref name="chars" /> to encode. </param>
        <summary>
          <para>Determines the exact number of bytes required to encode the specified range
      of the specified array of characters as Unicode-encoded characters. </para>
        </summary>
        <returns>
          <para>A <see cref="T:System.Int32" /> whose
   value equals the number of bytes required to encode the range in <paramref name="chars" />
   from <paramref name="index" /> to <paramref name="index" /> + <paramref name="count" /> - 1 as Unicode-encoded
   characters.</para>
        </returns>
        <remarks>
          <para>
            <block subset="none" type="note">This method overrides <see cref="M:System.Text.Encoding.GetByteCount(System.Char[])" qualify="true" />.</block>
          </para>
        </remarks>
        <exception cref="T:System.ArgumentNullException">
          <paramref name="chars " /> is <see langword="null" /> . </exception>
        <exception cref="T:System.ArgumentOutOfRangeException">
          <para>
            <paramref name="index" /> &lt; 0.</para>
          <para>-or-</para>
          <para>
            <paramref name="count" /> &lt; 0.</para>
          <para>-or-</para>
          <para>
            <paramref name="index" /> and<paramref name=" count " />do not specify a valid range in <paramref name="chars" /> (i.e. (<paramref name=" index" /> + <paramref name="count" />) &gt; <paramref name="chars" />.Length).</para>
        </exception>
      </Docs>
      <Excluded>0</Excluded>
    </Member>
    <Member MemberName="GetBytes">
      <MemberSignature Language="ILASM" Value=".method public hidebysig virtual class System.Byte[] GetBytes(string s)" />
      <MemberSignature Language="C#" Value="public override byte[] GetBytes (string s);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Byte[]</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="s" Type="System.String" />
      </Parameters>
      <Docs>
        <param name="s">A <see cref="T:System.String" /> to encode as Unicode-encoded characters. </param>
        <summary>
          <para>Encodes the specified string as Unicode-encoded characters. </para>
        </summary>
        <returns>
          <para> A <see cref="T:System.Byte" /> array containing the encoded representation of
<paramref name="s" /> as Unicode-encoded characters.</para>
        </returns>
        <remarks>
          <para>
            <block subset="none" type="note">This method overrides <see cref="M:System.Text.Encoding.GetBytes(System.Char[])" qualify="true" />.</block>
          </para>
        </remarks>
        <exception cref="T:System.ArgumentNullException">
          <paramref name="s" /> is <see langword="null" />.</exception>
      </Docs>
      <Excluded>0</Excluded>
      <AssemblyInfo>
        <AssemblyVersion>1.0.5000.0</AssemblyVersion>
      </AssemblyInfo>
    </Member>
    <Member MemberName="GetBytes">
      <MemberSignature Language="C#" Value="public override int GetBytes (char* chars, int charCount, byte* bytes, int byteCount);" />
      <MemberSignature Language="ILAsm" Value=".method public hidebysig virtual instance int32 GetBytes(char* chars, int32 charCount, unsigned int8* bytes, int32 byteCount) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <Attributes>
        <Attribute>
          <AttributeName>System.CLSCompliant(false)</AttributeName>
        </Attribute>
        <Attribute>
          <AttributeName>System.Runtime.InteropServices.ComVisible(false)</AttributeName>
        </Attribute>
      </Attributes>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="chars" Type="System.Char*" />
        <Parameter Name="charCount" Type="System.Int32" />
        <Parameter Name="bytes" Type="System.Byte*" />
        <Parameter Name="byteCount" Type="System.Int32" />
      </Parameters>
      <Docs>
        <param name="chars">To be added.</param>
        <param name="charCount">To be added.</param>
        <param name="bytes">To be added.</param>
        <param name="byteCount">To be added.</param>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
        <since version=".NET 2.0" />
      </Docs>
    </Member>
    <Member MemberName="GetBytes">
      <MemberSignature Language="ILASM" Value=".method public hidebysig virtual int32 GetBytes(class System.Char[] chars, int32 charIndex, int32 charCount, class System.Byte[] bytes, int32 byteIndex)" />
      <MemberSignature Language="C#" Value="public override int GetBytes (char[] chars, int charIndex, int charCount, byte[] bytes, int byteIndex);" />
      <MemberSignature Language="ILAsm" Value=".method public hidebysig virtual instance int32 GetBytes(char[] chars, int32 charIndex, int32 charCount, unsigned int8[] bytes, int32 byteIndex) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>1.0.5000.0</AssemblyVersion>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="chars" Type="System.Char[]" />
        <Parameter Name="charIndex" Type="System.Int32" />
        <Parameter Name="charCount" Type="System.Int32" />
        <Parameter Name="bytes" Type="System.Byte[]" />
        <Parameter Name="byteIndex" Type="System.Int32" />
      </Parameters>
      <Docs>
        <param name="chars">A <see cref="T:System.Char" /> array of characters to encode as Unicode-encoded characters. </param>
        <param name="charIndex">A <see cref="T:System.Int32" /> that specifies the first index of <paramref name="chars" /> to encode. </param>
        <param name="charCount">A <see cref="T:System.Int32" /> that specifies the number of elements in <paramref name="chars" /> to encode. </param>
        <param name="bytes">A <see cref="T:System.Byte" /> array to encode into. </param>
        <param name="byteIndex">A <see cref="T:System.Int32" /> that specifies the first index of <paramref name="bytes" /> to encode into. </param>
        <summary>
          <para> Encodes the specified range of the specified character array into
      the specified range of the specified byte array as Unicode-encoded characters. </para>
        </summary>
        <returns>
          <para>A <see cref="T:System.Int32" />
containing the number of bytes encoded into <paramref name="bytes" /> as Unicode-encoded
characters. </para>
        </returns>
        <remarks>
          <block subset="none" type="note">
            <para> This method overrides <see cref="M:System.Text.Encoding.GetBytes(System.Char[])" qualify="true" />.</para>
            <para>
              <see cref="M:System.Text.UnicodeEncoding.GetByteCount(System.Char[],System.Int32,System.Int32)" /> can be used to determine the exact number of
   bytes that will be produced for a given range of characters. Alternatively,
<see cref="M:System.Text.UnicodeEncoding.GetMaxByteCount(System.Int32)" />
can be used to determine the maximum number of bytes that will be produced for
a given number of characters, regardless of the actual character values.</para>
          </block>
        </remarks>
        <exception cref="T:System.ArgumentException">
          <para>
            <paramref name="bytes" /> does not contain sufficient space to store the encoded characters.</para>
        </exception>
        <exception cref="T:System.ArgumentNullException">
          <para>
            <paramref name="chars " />is <see langword="null" />. </para>
          <para>-or- </para>
          <para>
            <paramref name="bytes " /> is <see langword="null" />. </para>
        </exception>
        <exception cref="T:System.ArgumentOutOfRangeException">
          <para>
            <paramref name="charIndex" /> &lt; 0. </para>
          <para> -or- </para>
          <para>
            <paramref name="charCount " /> &lt; 0. </para>
          <para> -or- </para>
          <para>
            <paramref name="byteIndex " /> &lt; 0. </para>
          <para> -or- </para>
          <para>
            <paramref name="charIndex" /> and <paramref name="charCount" /> do not specify a valid range in <paramref name="chars" /> (i.e. ( <paramref name="charIndex " />+ <paramref name="charCount " />) &gt; <paramref name="chars" />.Length).</para>
          <para>-or-</para>
          <para>
            <paramref name="byteIndex" /> &gt; <paramref name="bytes" />.Length.</para>
        </exception>
      </Docs>
      <Excluded>0</Excluded>
    </Member>
    <Member MemberName="GetBytes">
      <MemberSignature Language="ILASM" Value=".method public hidebysig virtual int32 GetBytes(string s, int32 charIndex, int32 charCount, class System.Byte[] bytes, int32 byteIndex)" />
      <MemberSignature Language="C#" Value="public override int GetBytes (string s, int charIndex, int charCount, byte[] bytes, int byteIndex);" />
      <MemberSignature Language="ILAsm" Value=".method public hidebysig virtual instance int32 GetBytes(string s, int32 charIndex, int32 charCount, unsigned int8[] bytes, int32 byteIndex) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>1.0.5000.0</AssemblyVersion>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="s" Type="System.String" />
        <Parameter Name="charIndex" Type="System.Int32" />
        <Parameter Name="charCount" Type="System.Int32" />
        <Parameter Name="bytes" Type="System.Byte[]" />
        <Parameter Name="byteIndex" Type="System.Int32" />
      </Parameters>
      <Docs>
        <param name="s">A <see cref="T:System.String" /> to encode as Unicode-encoded characters. </param>
        <param name="charIndex">A <see cref="T:System.Int32" /> that specifies the first index of <paramref name="s" /> from which to encode. </param>
        <param name="charCount">A <see cref="T:System.Int32" /> that specifies the number of elements in <paramref name="s" /> to encode. </param>
        <param name="bytes">A <see cref="T:System.Byte" /> array to encode into. </param>
        <param name="byteIndex">A <see cref="T:System.Int32" /> that specifies the first index of <paramref name="bytes" /> to encode into. </param>
        <summary>
          <para>Encodes the specified range of the specified string into the specified range
      of the specified array of bytes as Unicode-encoded characters.</para>
        </summary>
        <returns>
          <para>A <see cref="T:System.Int32" /> whose
   value equals the number of bytes encoded into <paramref name="bytes" /> as Unicode-encoded
   characters. </para>
        </returns>
        <remarks>
          <para>
            <block subset="none" type="note">This method overrides <see cref="M:System.Text.Encoding.GetBytes(System.Char[])" qualify="true" />.</block>
          </para>
        </remarks>
        <exception cref="T:System.ArgumentException">
          <para>
            <paramref name="bytes" /> does not contain sufficient space to store the encoded characters.</para>
        </exception>
        <exception cref="T:System.ArgumentNullException">
          <para>
            <paramref name="s" /> is <see langword="null" />. </para>
          <para>-or-</para>
          <para>
            <paramref name="bytes " />is <see langword="null" />. </para>
        </exception>
        <exception cref="T:System.ArgumentOutOfRangeException">
          <para>
            <paramref name="charIndex" /> &lt; 0. </para>
          <para>-or-</para>
          <para>
            <paramref name="charCount " /> &lt; 0. </para>
          <para>-or-</para>
          <para>
            <paramref name="byteIndex " /> &lt; 0. </para>
          <para>-or-</para>
          <para>
            <paramref name="charIndex " />and <paramref name="charCount" /> do not specify a valid range in <paramref name="s" /> (i.e. (<paramref name="charIndex" /> + <paramref name="charCount" />) &gt; <paramref name="s" />.Length).</para>
          <para>-or-</para>
          <para>
            <paramref name="byteIndex" /> &gt;= <paramref name="bytes" />.Length.</para>
        </exception>
      </Docs>
      <Excluded>0</Excluded>
    </Member>
    <Member MemberName="GetCharCount">
      <MemberSignature Language="C#" Value="public override int GetCharCount (byte* bytes, int count);" />
      <MemberSignature Language="ILAsm" Value=".method public hidebysig virtual instance int32 GetCharCount(unsigned int8* bytes, int32 count) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <Attributes>
        <Attribute>
          <AttributeName>System.CLSCompliant(false)</AttributeName>
        </Attribute>
        <Attribute>
          <AttributeName>System.Runtime.InteropServices.ComVisible(false)</AttributeName>
        </Attribute>
      </Attributes>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="bytes" Type="System.Byte*" />
        <Parameter Name="count" Type="System.Int32" />
      </Parameters>
      <Docs>
        <param name="bytes">To be added.</param>
        <param name="count">To be added.</param>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
        <since version=".NET 2.0" />
      </Docs>
    </Member>
    <Member MemberName="GetCharCount">
      <MemberSignature Language="ILASM" Value=".method public hidebysig virtual int32 GetCharCount(class System.Byte[] bytes, int32 index, int32 count)" />
      <MemberSignature Language="C#" Value="public override int GetCharCount (byte[] bytes, int index, int count);" />
      <MemberSignature Language="ILAsm" Value=".method public hidebysig virtual instance int32 GetCharCount(unsigned int8[] bytes, int32 index, int32 count) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>1.0.5000.0</AssemblyVersion>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="bytes" Type="System.Byte[]" />
        <Parameter Name="index" Type="System.Int32" />
        <Parameter Name="count" Type="System.Int32" />
      </Parameters>
      <Docs>
        <param name="bytes">A <see cref="T:System.Byte" /> array to decode as Unicode-encoded characters. </param>
        <param name="index">A <see cref="T:System.Int32" /> that specifies the first index in <paramref name="bytes" /> to decode. </param>
        <param name="count">A <see cref="T:System.Int32" /> that specifies the number of elements in <paramref name="bytes" /> to decode. </param>
        <summary>
          <para>Determines the exact number of characters that will be produced by decoding
      the specified range of the specified array of bytes as Unicode-encoded
      characters. </para>
        </summary>
        <returns>
          <para>A <see cref="T:System.Int32" />
whose value equals the number of characters a call to <see cref="M:System.Text.UnicodeEncoding.GetChars(System.Byte[],System.Int32,System.Int32,System.Char[],System.Int32)" /> will produce if presented with the
specified range of <paramref name="bytes" /> as Unicode-encoded characters.</para>
        </returns>
        <remarks>
          <para>
            <block subset="none" type="note">This method overrides <see cref="M:System.Text.Encoding.GetCharCount(System.Byte[])" qualify="true" />.</block>
          </para>
        </remarks>
        <exception cref="T:System.ArgumentNullException">
          <paramref name="bytes " /> is <see langword="null" />. </exception>
        <exception cref="T:System.ArgumentOutOfRangeException">
          <para>
            <paramref name="index" /> &lt; 0.</para>
          <para> -or-</para>
          <para>
            <paramref name="count" /> &lt; 0.</para>
          <para> -or-</para>
          <para>
            <paramref name=" index" /> and <paramref name="count" /> do not specify a valid range in <paramref name=" bytes" /> (i.e. (<paramref name="index" /> + <paramref name="count" />) &gt; <paramref name=" bytes" />.Length).</para>
        </exception>
      </Docs>
      <Excluded>0</Excluded>
    </Member>
    <Member MemberName="GetChars">
      <MemberSignature Language="C#" Value="public override int GetChars (byte* bytes, int byteCount, char* chars, int charCount);" />
      <MemberSignature Language="ILAsm" Value=".method public hidebysig virtual instance int32 GetChars(unsigned int8* bytes, int32 byteCount, char* chars, int32 charCount) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <Attributes>
        <Attribute>
          <AttributeName>System.CLSCompliant(false)</AttributeName>
        </Attribute>
        <Attribute>
          <AttributeName>System.Runtime.InteropServices.ComVisible(false)</AttributeName>
        </Attribute>
      </Attributes>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="bytes" Type="System.Byte*" />
        <Parameter Name="byteCount" Type="System.Int32" />
        <Parameter Name="chars" Type="System.Char*" />
        <Parameter Name="charCount" Type="System.Int32" />
      </Parameters>
      <Docs>
        <param name="bytes">To be added.</param>
        <param name="byteCount">To be added.</param>
        <param name="chars">To be added.</param>
        <param name="charCount">To be added.</param>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
        <since version=".NET 2.0" />
      </Docs>
    </Member>
    <Member MemberName="GetChars">
      <MemberSignature Language="ILASM" Value=".method public hidebysig virtual int32 GetChars(class System.Byte[] bytes, int32 byteIndex, int32 byteCount, class System.Char[] chars, int32 charIndex)" />
      <MemberSignature Language="C#" Value="public override int GetChars (byte[] bytes, int byteIndex, int byteCount, char[] chars, int charIndex);" />
      <MemberSignature Language="ILAsm" Value=".method public hidebysig virtual instance int32 GetChars(unsigned int8[] bytes, int32 byteIndex, int32 byteCount, char[] chars, int32 charIndex) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>1.0.5000.0</AssemblyVersion>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="bytes" Type="System.Byte[]" />
        <Parameter Name="byteIndex" Type="System.Int32" />
        <Parameter Name="byteCount" Type="System.Int32" />
        <Parameter Name="chars" Type="System.Char[]" />
        <Parameter Name="charIndex" Type="System.Int32" />
      </Parameters>
      <Docs>
        <param name="bytes">A <see cref="T:System.Byte" /> array to decode as Unicode-encoded characters. </param>
        <param name="byteIndex">A <see cref="T:System.Int32" /> that specifies the first index of <paramref name="bytes" /> from which to decode. </param>
        <param name="byteCount">A <see cref="T:System.Int32" /> that specifies the number of elements in <paramref name="bytes" /> to decode. </param>
        <param name="chars">A <see cref="T:System.Char" /> array to decode into. </param>
        <param name="charIndex">A <see cref="T:System.Int32" /> that specifies the first index of <paramref name="chars" /> to store the decoded bytes. </param>
        <summary>
          <para>Decodes the specified range of the specified array of bytes into the
      specified range of the specified array of characters as Unicode-encoded
      characters. </para>
        </summary>
        <returns>
          <para>A <see cref="T:System.Int32" />
containing the number of characters decoded into <paramref name="chars" /> as
Unicode-encoded characters. </para>
        </returns>
        <remarks>
          <block subset="none" type="note">
            <para> This method overrides <see cref="M:System.Text.Encoding.GetChars(System.Byte[])" qualify="true" />.</para>
            <para>
              <see cref="M:System.Text.UnicodeEncoding.GetCharCount(System.Byte[],System.Int32,System.Int32)" /> can be used to determine the exact number of
   characters that will be produced for a given range of bytes. Alternatively,
<see cref="M:System.Text.UnicodeEncoding.GetMaxCharCount(System.Int32)" />
can be used to determine the maximum number of characters that will be
produced for a given number of bytes, regardless of the actual byte values.</para>
          </block>
        </remarks>
        <exception cref="T:System.ArgumentException">
          <para>
            <paramref name="chars" /> does not contain sufficient space to store the decoded characters.</para>
        </exception>
        <exception cref="T:System.ArgumentNullException">
          <para>
            <paramref name="chars " />is <see langword="null" />. </para>
          <para>-or-</para>
          <para>
            <paramref name="bytes " />is <see langword="null" />. </para>
        </exception>
        <exception cref="T:System.ArgumentOutOfRangeException">
          <para>
            <paramref name="byteIndex" /> &lt; 0.</para>
          <para>-or-</para>
          <para>
            <paramref name="byteCount" /> &lt; 0.</para>
          <para>-or-</para>
          <para>
            <paramref name="charIndex" /> &lt; 0.</para>
          <para>-or-</para>
          <para>
            <paramref name="byteIndex" /> and <paramref name="byteCount" /> do not specify a valid range in <paramref name="bytes" /> (i.e. (<paramref name="byteIndex " />+ <paramref name="byteCount " />) &gt; <paramref name="bytes" />.Length). </para>
          <para>-or-</para>
          <para>
            <paramref name="charIndex" /> &gt; <paramref name="chars" />.Length.</para>
        </exception>
      </Docs>
      <Excluded>0</Excluded>
    </Member>
    <Member MemberName="GetDecoder">
      <MemberSignature Language="ILASM" Value=".method public hidebysig virtual class System.Text.Decoder GetDecoder()" />
      <MemberSignature Language="C#" Value="public override System.Text.Decoder GetDecoder ();" />
      <MemberSignature Language="ILAsm" Value=".method public hidebysig virtual instance class System.Text.Decoder GetDecoder() cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>1.0.5000.0</AssemblyVersion>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Text.Decoder</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>
          <para> Returns a <see cref="T:System.Text.Decoder" /> object
   for the current instance.</para>
        </summary>
        <returns>
          <para> A <see cref="T:System.Text.Decoder" /> object for
   the current
   instance.</para>
        </returns>
        <remarks>
          <block subset="none" type="note">
            <para> This method overrides <see cref="M:System.Text.Encoding.GetDecoder" qualify="true" />. </para>
            <para> Unlike the <see cref="M:System.Text.UnicodeEncoding.GetChars(System.Byte[],System.Int32,System.Int32,System.Char[],System.Int32)" /> method, the <see cref="M:System.Text.Decoder.GetChars(System.Byte[],System.Int32,System.Int32,System.Char[],System.Int32)" />
method provided by a <see cref="T:System.Text.Decoder" />
object can convert partial sequences of bytes into
partial sequences of characters by maintaining the appropriate state between
the conversions.</para>
            <para> This implementation returns a decoder that
   simply forwards calls to <see cref="M:System.Text.UnicodeEncoding.GetCharCount(System.Byte[],System.Int32,System.Int32)" /> and <see cref="M:System.Text.UnicodeEncoding.GetChars(System.Byte[],System.Int32,System.Int32,System.Char[],System.Int32)" /> to the corresponding methods of the
   current instance. It is recommended that
   encoding implementations that requires state to be maintained between successive
   conversions override this method and return an instance of an appropriate decoder
   implementation.
   </para>
          </block>
        </remarks>
      </Docs>
      <Excluded>0</Excluded>
    </Member>
    <Member MemberName="GetEncoder">
      <MemberSignature Language="C#" Value="public override System.Text.Encoder GetEncoder ();" />
      <MemberSignature Language="ILAsm" Value=".method public hidebysig virtual instance class System.Text.Encoder GetEncoder() cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>1.0.5000.0</AssemblyVersion>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <Attributes>
        <Attribute>
          <AttributeName>System.Runtime.InteropServices.ComVisible(false)</AttributeName>
        </Attribute>
      </Attributes>
      <ReturnValue>
        <ReturnType>System.Text.Encoder</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="GetHashCode">
      <MemberSignature Language="ILASM" Value=".method public hidebysig virtual int32 GetHashCode()" />
      <MemberSignature Language="C#" Value="public override int GetHashCode ();" />
      <MemberSignature Language="ILAsm" Value=".method public hidebysig virtual instance int32 GetHashCode() cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>1.0.5000.0</AssemblyVersion>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>
          <para>Generates a hash code for the current instance.</para>
        </summary>
        <returns>
          <para>A <see cref="T:System.Int32" />
containing the hash code for the current instance.</para>
        </returns>
        <remarks>
          <para>The algorithm used to generate the hash code is
      unspecified.</para>
          <para>
            <block subset="none" type="note">This method overrides <see cref="M:System.Object.GetHashCode" qualify="true" />.</block>
          </para>
        </remarks>
      </Docs>
      <Excluded>0</Excluded>
    </Member>
    <Member MemberName="GetMaxByteCount">
      <MemberSignature Language="ILASM" Value=".method public hidebysig virtual int32 GetMaxByteCount(int32 charCount)" />
      <MemberSignature Language="C#" Value="public override int GetMaxByteCount (int charCount);" />
      <MemberSignature Language="ILAsm" Value=".method public hidebysig virtual instance int32 GetMaxByteCount(int32 charCount) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>1.0.5000.0</AssemblyVersion>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="charCount" Type="System.Int32" />
      </Parameters>
      <Docs>
        <param name="charCount">A <see cref="T:System.Int32" /> whose value represents a number of characters to encode as Unicode-encoded characters. </param>
        <summary>
          <para>Returns the maximum number of bytes required to encode the specified number of characters as Unicode-encoded characters, regardless
      of the actual character values. </para>
        </summary>
        <returns>
          <para>A <see cref="T:System.Int32" />
containing the maximum number of bytes required to encode <paramref name="charCount" />
characters as Unicode-encoded characters.</para>
        </returns>
        <remarks>
          <block subset="none" type="note">
            <para> This method overrides <see cref="M:System.Text.Encoding.GetMaxByteCount(System.Int32)" qualify="true" />.</para>
            <para> Use this method to determine an appropriate minimum
      buffer size for byte arrays passed to <see cref="M:System.Text.UnicodeEncoding.GetBytes(System.Char[],System.Int32,System.Int32,System.Byte[],System.Int32)" /> or <see cref="M:System.Text.Encoder.GetBytes(System.Char[],System.Int32,System.Int32,System.Byte[],System.Int32,System.Boolean)" />
      for the
      current instance. Using this minimum buffer size can help ensure that buffer overflow exceptions do
      not occur.
      </para>
          </block>
        </remarks>
        <exception cref="T:System.ArgumentOutOfRangeException">
          <para>
            <paramref name="charCount" /> &lt; 0.</para>
        </exception>
      </Docs>
      <Excluded>0</Excluded>
    </Member>
    <Member MemberName="GetMaxCharCount">
      <MemberSignature Language="ILASM" Value=".method public hidebysig virtual int32 GetMaxCharCount(int32 byteCount)" />
      <MemberSignature Language="C#" Value="public override int GetMaxCharCount (int byteCount);" />
      <MemberSignature Language="ILAsm" Value=".method public hidebysig virtual instance int32 GetMaxCharCount(int32 byteCount) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>1.0.5000.0</AssemblyVersion>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="byteCount" Type="System.Int32" />
      </Parameters>
      <Docs>
        <param name="byteCount">A <see cref="T:System.Int32" /> specifies the number of bytes to decode as Unicode-encoded characters. </param>
        <summary>
          <para> Returns the maximum number of characters produced by decoding the specified number of bytes
      as Unicode-encoded characters, regardless of the actual byte values.
      </para>
        </summary>
        <returns>
          <para>A <see cref="T:System.Int32" />
containing the maximum number of characters that would be produced by
decoding <paramref name="byteCount" /> bytes as Unicode-encoded characters. </para>
        </returns>
        <remarks>
          <block subset="none" type="note">
            <para> This method overrides <see cref="M:System.Text.Encoding.GetMaxCharCount(System.Int32)" qualify="true" />.</para>
            <para> Use this method to determine an appropriate
      minimum buffer size for byte arrays passed to <see cref="M:System.Text.UnicodeEncoding.GetChars(System.Byte[],System.Int32,System.Int32,System.Char[],System.Int32)" /> or <see cref="M:System.Text.Encoding.GetChars(System.Byte[])" />
      for the current instance. Using
      this minimum buffer size can help ensure that no buffer overflow exceptions will
      occur.
      </para>
          </block>
        </remarks>
        <exception cref="T:System.ArgumentOutOfRangeException">
          <para>
            <paramref name="byteCount" /> &lt; 0.</para>
        </exception>
      </Docs>
      <Excluded>0</Excluded>
    </Member>
    <Member MemberName="GetPreamble">
      <MemberSignature Language="ILASM" Value=".method public hidebysig virtual class System.Byte[] GetPreamble()" />
      <MemberSignature Language="C#" Value="public override byte[] GetPreamble ();" />
      <MemberSignature Language="ILAsm" Value=".method public hidebysig virtual instance unsigned int8[] GetPreamble() cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>1.0.5000.0</AssemblyVersion>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Byte[]</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>
          <para> Returns the bytes used at the beginning of a <see cref="T:System.IO.Stream" /> instance to
   determine which <see cref="T:System.Text.Encoding" /> implementation the stream was created with. </para>
        </summary>
        <returns>
          <para> A <see cref="T:System.Byte" /> array that identifies the <see cref="T:System.Text.Encoding" />
implementation used to create a <see cref="T:System.IO.Stream" /> . </para>
        </returns>
        <remarks>
          <para>
            <see cref="M:System.Text.UnicodeEncoding.GetPreamble" /> returns the Unicode byte order mark (U+FEFF) in
   either big-endian or little-endian order, according the ordering that the current
   instance was initialized with.</para>
          <para>
            <block subset="none" type="note">This method overrides <see cref="M:System.Text.Encoding.GetPreamble" qualify="true" />.</block>
          </para>
        </remarks>
      </Docs>
      <Excluded>0</Excluded>
    </Member>
    <Member MemberName="GetString">
      <MemberSignature Language="C#" Value="public override string GetString (byte[] bytes, int index, int count);" />
      <MemberSignature Language="ILAsm" Value=".method public hidebysig virtual instance string GetString(unsigned int8[] bytes, int32 index, int32 count) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>1.0.5000.0</AssemblyVersion>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <Attributes>
        <Attribute>
          <AttributeName>System.Runtime.InteropServices.ComVisible(false)</AttributeName>
        </Attribute>
      </Attributes>
      <ReturnValue>
        <ReturnType>System.String</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="bytes" Type="System.Byte[]" />
        <Parameter Name="index" Type="System.Int32" />
        <Parameter Name="count" Type="System.Int32" />
      </Parameters>
      <Docs>
        <param name="bytes">To be added.</param>
        <param name="index">To be added.</param>
        <param name="count">To be added.</param>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
  </Members>
  <TypeExcluded>0</TypeExcluded>
</Type>
