FileContentSearch/Source/packages/J2N.2.1.0/lib/net40/J2N.xml
zilinsoft 004cf875cf ## 📅2025-07-14 星期一更新
### FileContentSearch    V1.0.2507.1401
- *.[新增]初始版本。
2025-07-14 17:24:51 +08:00

50220 lines
3.5 MiB

<?xml version="1.0"?>
<doc>
<assembly>
<name>J2N</name>
</assembly>
<members>
<member name="F:J2N.SZGenericArrayEnumerator`1.Empty">
<summary>Provides an empty enumerator singleton.</summary>
<remarks>
If the consumer is using SZGenericArrayEnumerator elsewhere or is otherwise likely
to be using T[] elsewhere, this singleton should be used. Otherwise, GenericEmptyEnumerator's
singleton should be used instead, as it doesn't reference T[] in order to reduce footprint.
</remarks>
</member>
<member name="T:J2N.GenericEmptyEnumerator`1">
<summary>Provides an empty enumerator singleton.</summary>
<remarks>
If the consumer is using SZGenericArrayEnumerator elsewhere or is otherwise likely
to be using T[] elsewhere, SZGenericArrayEnumerator's singleton should be used. Otherwise,
this singleton should be used, as it doesn't reference T[] in order to reduce footprint.
</remarks>
</member>
<member name="T:J2N.ArrayExtensions">
<summary>
Extensions to <see cref="T:System.Array"/> types.
</summary>
</member>
<member name="M:J2N.ArrayExtensions.Fill``1(``0[],``0)">
<summary>
Assigns the specified value to each element of the specified array.
</summary>
<typeparam name="T">The type array element.</typeparam>
<param name="array">The array to be filled.</param>
<param name="value">The value to be set to all of the elements of the array.</param>
<exception cref="T:System.ArgumentNullException">If <paramref name="array"/> is <c>null</c>.</exception>
</member>
<member name="M:J2N.ArrayExtensions.Fill``1(``0[],System.Int32,System.Int32,``0)">
<summary>
Assigns the specified value to each element of the specified array.
<para/>
IMPORTANT: This method has .NET semantics. That is, the <paramref name="length"/> parameter
is a length, not an exclusive end index as would be the case in Java. To translate from Java,
use <c>endIndex - beginIndex</c> to resolve the value for <paramref name="length"/>.
</summary>
<typeparam name="T">The type array element.</typeparam>
<param name="array">The array to be filled.</param>
<param name="startIndex">The index of the first element (inclusive) to be filled with the specified <paramref name="value"/>.</param>
<param name="length">The number of elements to set to the specified <paramref name="value"/>.</param>
<param name="value">The value to be set to the specified elements of the array.</param>
<exception cref="T:System.ArgumentNullException">If <paramref name="array"/> is <c>null</c>.</exception>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="startIndex"/> or <paramref name="length"/> is less than zero.
<para/>
-or-
<para/>
<paramref name="startIndex"/> > <paramref name="length"/> indicates a position outside of the bounds of the <paramref name="array"/>.
</exception>
</member>
<member name="T:J2N.AssemblyExtensions">
<summary>
Extensions to the <see cref="T:System.Reflection.Assembly"/> class.
</summary>
</member>
<member name="M:J2N.AssemblyExtensions.GetManifestResourceBaseName(System.Reflection.Assembly,System.String)">
<summary>
Uses the assembly name + '.' + suffix to determine whether any resources begin with the concatenation.
If not, the assembly name will be truncated at the '.' beginning from the right side of the string
until a base name is found.
</summary>
<param name="assembly">This <see cref="T:System.Reflection.Assembly"/>.</param>
<param name="suffix">A suffix to use on the assembly name to limit the possible resource names to match.
This value can be <c>null</c> to match any resource name in the assembly.</param>
<returns>A base name if found, otherwise <see cref="F:System.String.Empty"/>.</returns>
<exception cref="T:System.ArgumentNullException"><paramref name="assembly"/> is <c>null</c>.</exception>
</member>
<member name="M:J2N.AssemblyExtensions.FindAndGetManifestResourceStream(System.Reflection.Assembly,System.String)">
<summary>
Aggressively searches for a resource and, if found, returns an open <see cref="T:System.IO.Stream"/>
where it can be read.
<para/>
The search attempts to find the resource starting at the location of the current
class and attempts every combination of starting namespace and or starting assembly name
(split on <c>.</c>) concatenated with the <paramref name="name"/>. For example, if the
type passed is in the namespace <c>Foo.Bar</c> in an assembly named <c>Faz.Baz</c>
and the name passed is <c>res.txt</c>, the following locations are searched in this order:
<code>
1. res.txt
2. Faz.Baz.Foo.Bar.res.txt
3. Foo.Bar.res.txt
4. Faz.Baz.res.txt
</code>
<para/>
Usage Note: This method effectively treats embedded resources as being in the same
"class path" as the type that is passed, making it similar to the <c>Class.getResourceAsStream()</c>
method in Java.
</summary>
<param name="assembly">This assembly.</param>
<param name="name">The resource name to locate.</param>
<returns>An open <see cref="T:System.IO.Stream"/> that can be used to read the resource, or <c>null</c> if the resource cannot be found.</returns>
<exception cref="T:System.ArgumentNullException"><paramref name="assembly"/> or <paramref name="name"/> is <c>null</c>.</exception>
</member>
<member name="M:J2N.AssemblyExtensions.FindAndGetManifestResourceStream(System.Reflection.Assembly,System.Type,System.String)">
<summary>
Aggressively searches for a resource and, if found, returns an open <see cref="T:System.IO.Stream"/>
where it can be read.
<para/>
The search attempts to find the resource starting at the location of the current
class and attempts every combination of starting namespace and or starting assembly name
(split on <c>.</c>) concatenated with the <paramref name="name"/>. For example, if the
type passed is in the namespace <c>Foo.Bar</c> in an assembly named <c>Faz.Baz</c>
and the name passed is <c>res.txt</c>, the following locations are searched in this order:
<code>
1. res.txt
2. Faz.Baz.Foo.Bar.res.txt
3. Foo.Bar.res.txt
4. Faz.Baz.res.txt
</code>
<para/>
Usage Note: This method effectively treats embedded resources as being in the same
"class path" as the type that is passed, making it similar to the <c>Class.getResourceAsStream()</c>
method in Java.
</summary>
<param name="assembly">This assembly.</param>
<param name="type">A type in the same namespace as the resource.</param>
<param name="name">The resource name to locate.</param>
<returns>An open <see cref="T:System.IO.Stream"/> that can be used to read the resource, or <c>null</c> if the resource cannot be found.</returns>
<exception cref="T:System.ArgumentNullException">If <paramref name="assembly"/>, <paramref name="type"/> or <paramref name="name"/> is <c>null</c>.</exception>
<seealso cref="M:J2N.TypeExtensions.FindAndGetManifestResourceStream(System.Type,System.String)"/>
</member>
<member name="M:J2N.AssemblyExtensions.FindResource(System.Reflection.Assembly,System.String)">
<summary>
Aggressively searches to find a resource based on a resource name.
Attempts to find the resource file by prepending the assembly name
with the resource name and then removing the segements of the
name from left to right until a match is found.
<para/>
The search attempts to find the resource starting at the location of the current
class and attempts every combination of starting namespace and or starting assembly name
(split on <c>.</c>) concatenated with the <paramref name="name"/>. For example, if the
type passed is in the namespace <c>Foo.Bar</c> in an assembly named <c>Faz.Baz</c>
and the name passed is <c>res.txt</c>, the following locations are searched in this order:
<code>
1. res.txt
2. Faz.Baz.Foo.Bar.res.txt
3. Foo.Bar.res.txt
4. Faz.Baz.res.txt
</code>
<para/>
Usage Note: This method effectively treats embedded resources as being in the same
"class path" as the type that is passed, making it similar to the <c>Class.getResource()</c>
method in Java.
</summary>
<param name="assembly">This assembly.</param>
<param name="name">The resource name to locate.</param>
<returns>The resource, if found; if not found, returns <c>null</c>.</returns>
<exception cref="T:System.ArgumentNullException"><paramref name="assembly"/> or <paramref name="name"/> is <c>null</c>.</exception>
</member>
<member name="M:J2N.AssemblyExtensions.FindResource(System.Reflection.Assembly,System.Type,System.String)">
<summary>
Aggressively searches to find a resource based on a <see cref="T:System.Type"/> and resource name.
<para/>
The search attempts to find the resource starting at the location of the current
class and attempts every combination of starting namespace and or starting assembly name
(split on <c>.</c>) concatenated with the <paramref name="name"/>. For example, if the
type passed is in the namespace <c>Foo.Bar</c> in an assembly named <c>Faz.Baz</c>
and the name passed is <c>res.txt</c>, the following locations are searched in this order:
<code>
1. res.txt
2. Faz.Baz.Foo.Bar.res.txt
3. Foo.Bar.res.txt
4. Faz.Baz.res.txt
</code>
<para/>
Usage Note: This method effectively treats embedded resources as being in the same
"class path" as the type that is passed, making it similar to the Class.getResource()
method in Java.
</summary>
<param name="assembly">This assembly.</param>
<param name="type">A type in the same namespace as the resource.</param>
<param name="name">The resource name to locate.</param>
<returns>The resource, if found; if not found, returns <c>null</c>.</returns>
<exception cref="T:System.ArgumentNullException">If <paramref name="assembly"/>, <paramref name="type"/> or <paramref name="name"/> is <c>null</c>.</exception>
</member>
<member name="T:J2N.BitConversion">
<summary>
Converts base data types to an array of bytes, and an array of bytes to base data types.
<para/>
This class is a supplement to <see cref="T:System.BitConverter"/> to provide functionality similar to
that in the JDK.
<para/>
Usage Note: When porting code from Java, we recommend using <see cref="T:J2N.BitConversion"/> methods exclusively, as
<see cref="M:J2N.BitConversion.SingleToInt32Bits(System.Single)"/> and <see cref="M:J2N.BitConversion.DoubleToInt64Bits(System.Double)"/> are NOT
equivalent to BitConverter.SingleToInt32Bits(float) (where implemented) and <see cref="M:System.BitConverter.DoubleToInt64Bits(System.Double)"/>.
In <see cref="M:J2N.BitConversion.SingleToInt32Bits(System.Single)"/> and <see cref="M:J2N.BitConversion.DoubleToInt64Bits(System.Double)"/>, all NaN values are normalized
to a single value, but .NET has no similar built-in functionality.
</summary>
</member>
<member name="M:J2N.BitConversion.Int32BitsToSingle(System.Int32)">
<summary>
Returns the <see cref="T:System.Single"/> value corresponding to a given
bit representation.
The argument is considered to be a representation of a
floating-point value according to the IEEE 754 floating-point
"single format" bit layout.
<para/>If the argument is <c>0x7f800000</c>, the result is positive
infinity.
<para/>If the argument is <c>0xff800000</c>, the result is negative
infinity.
<para/>If the argument is any value in the range
<c>0x7f800001</c> through <c>0x7fffffff</c> or in
the range <c>0xff800001</c> through
<c>0xffffffff</c>, the result is a NaN. No IEEE 754
floating-point operation provided by .NET can distinguish
between two NaN values of the same type with different bit
patterns. Distinct values of NaN are only distinguishable by
use of the <see cref="M:J2N.BitConversion.SingleToRawInt32Bits(System.Single)"/> method.
<para/>In all other cases, let <i>s</i>, <i>e</i>, and <i>m</i> be three
values that can be computed from the argument:
<code>
int s = ((bits &gt;&gt; 31) == 0) ? 1 : -1;
int e = ((bits &gt;&gt; 23) &amp; 0xff);
int m = (e == 0) ?
(bits &amp; 0x7fffff) &lt;&lt; 1 :
(bits &amp; 0x7fffff) | 0x800000;
</code>
Then the floating-point result equals the value of the mathematical
expression <i>s</i>&#183;<i>m</i>&#183;2<sup><i>e</i>-150</sup>.
<para/>Note that this method may not be able to return a
<see cref="F:System.Single.NaN"/> with exactly same bit pattern as the
<see cref="T:System.Int32"/> argument. IEEE 754 distinguishes between two
kinds of NaNs, quiet NaNs and <i>signaling NaNs</i>. The
differences between the two kinds of NaN are generally not
visible in .NET. Arithmetic operations on signaling NaNs turn
them into quiet NaNs with a different, but often similar, bit
pattern. However, on some processors merely copying a
signaling NaN also performs that conversion. In particular,
copying a signaling NaN to return it to the calling method may
perform this conversion. So <see cref="M:J2N.BitConversion.Int32BitsToSingle(System.Int32)"/> may
not be able to return a <see cref="T:System.Single"/> with a signaling NaN
bit pattern. Consequently, for some <see cref="T:System.Int32"/> values,
<c>BitConversion.SingleToRawInt32Bits(BitConversion.Int32BitsToSingle(start))</c> may
<i>not</i> equal <c>start</c>. Moreover, which
particular bit patterns represent signaling NaNs is platform
dependent; although all NaN bit patterns, quiet or signaling,
must be in the NaN range identified above.
<para/>
NOTE: This corresponds to Float.intBitsToFloat(int) in the JDK
and BitConverter.Int32BitsToSingle(int) in .NET (where implemented).
</summary>
<param name="value">The integer to convert.</param>
<returns>A single-precision floating-point value that represents the converted integer.</returns>
</member>
<member name="M:J2N.BitConversion.SingleToRawInt32Bits(System.Single)">
<summary>
Returns a representation of the specified floating-point value
according to the IEEE 754 floating-point "single format" bit
layout, preserving Not-a-Number (NaN) values.
<para/>Bit 31 (the bit that is selected by the mask
<c>0x80000000</c>) represents the sign of the floating-point
number.
Bits 30-23 (the bits that are selected by the mask
<c>0x7f800000</c>) represent the exponent.
Bits 22-0 (the bits that are selected by the mask
<c>0x007fffff</c>) represent the significand (sometimes called
the mantissa) of the floating-point number.
<para/>If the argument is positive infinity, the result is
<c>0x7f800000</c>.
<para/>If the argument is negative infinity, the result is
<c>0xff800000</c>.
<para/>If the argument is NaN, the result is the integer representing
the actual NaN value. Unlike the <see cref="M:J2N.BitConversion.SingleToInt32Bits(System.Single)"/>
method, <see cref="M:J2N.BitConversion.SingleToRawInt32Bits(System.Single)"/> does not collapse all the
bit patterns encoding a NaN to a single "canonical"
NaN value.
<para/>In all cases, the result is an integer that, when given to the
<see cref="M:J2N.BitConversion.Int32BitsToSingle(System.Int32)"/> method, will produce a
floating-point value the same as the argument to
<see cref="M:J2N.BitConversion.SingleToRawInt32Bits(System.Single)"/>.
<para/>
NOTE: This corresponds to Float.floatToRawIntBits(float) in the JDK
and BitConverter.SingleToInt32Bits(float) in .NET (where implemented).
</summary>
<param name="value">A floating-point number.</param>
<returns>The bits that represent the floating-point number.</returns>
</member>
<member name="M:J2N.BitConversion.SingleToInt32Bits(System.Single)">
<summary>
Returns a representation of the specified floating-point value
according to the IEEE 754 floating-point "single format" bit
layout.
<para/>Bit 31 (the bit that is selected by the mask
<c>0x80000000</c>) represents the sign of the floating-point
number.
Bits 30-23 (the bits that are selected by the mask
<c>0x7f800000</c>) represent the exponent.
Bits 22-0 (the bits that are selected by the mask
<c>0x007fffff</c>) represent the significand (sometimes called
the mantissa) of the floating-point number.
<para/>If the argument is positive infinity, the result is
<c>0x7f800000</c>.
<para/>If the argument is negative infinity, the result is
<c>0xff800000</c>.
<para/>If the argument is NaN, the result is <c>0x7fc00000</c>.
<para/>In all cases, the result is an integer that, when given to the
<see cref="M:J2N.BitConversion.Int32BitsToSingle(System.Int32)"/> method, will produce a floating-point
value the same as the argument to <see cref="M:J2N.BitConversion.SingleToInt32Bits(System.Single)"/>
(except all NaN values are collapsed to a single
"canonical" NaN value).
<para/>
NOTE: This corresponds to Float.floatToIntBits() in the JDK.
There is no corresponding method in .NET.
</summary>
<param name="value">A floating-point number.</param>
<returns>The bits that represent the floating-point number.</returns>
</member>
<member name="M:J2N.BitConversion.SingleToInt64Bits(System.Single)">
<summary>
Similar to <see cref="M:J2N.BitConversion.SingleToInt32Bits(System.Single)"/>, but
returns the result as <see cref="T:System.Int64"/> rather than <see cref="T:System.Int32"/>.
<para/>
NOTE: This corresponds to BitConverter.SingleToInt64Bits in
.NET (where implemented).
</summary>
<param name="value"></param>
<returns></returns>
</member>
<member name="M:J2N.BitConversion.Int64BitsToDouble(System.Int64)">
<summary>
Returns the <see cref="T:System.Double"/> value corresponding to a given
bit representation.
The argument is considered to be a representation of a
floating-point value according to the IEEE 754 floating-point
"double format" bit layout.
<para/>If the argument is <c>0x7ff0000000000000L</c>, the result
is positive infinity.
<para/>If the argument is <c>0xfff0000000000000L</c>, the result
is negative infinity.
<para/>If the argument is any value in the range
<c>0x7ff0000000000001L</c> through
<c>0x7fffffffffffffffL</c> or in the range
<c>0xfff0000000000001L</c> through
<c>0xffffffffffffffffL</c>, the result is a NaN. No IEEE
754 floating-point operation provided by .NET can distinguish
between two NaN values of the same type with different bit
patterns. Distinct values of NaN are only distinguishable by
use of the <see cref="M:J2N.BitConversion.DoubleToRawInt64Bits(System.Double)"/> method.
<para/>In all other cases, let <i>s</i>, <i>e</i>, and <i>m</i> be three
values that can be computed from the argument:
<code>
int s = ((bits &gt;&gt; 63) == 0) ? 1 : -1;
int e = (int)((bits &gt;&gt; 52) &amp; 0x7ffL);
long m = (e == 0) ?
(bits &amp; 0xfffffffffffffL) &lt;&lt; 1 :
(bits &amp; 0xfffffffffffffL) | 0x10000000000000L;
</code>
Then the floating-point result equals the value of the mathematical
expression <i>s</i>&#183;<i>m</i>&#183;2<sup><i>e</i>-1075</sup>.
<para/>Note that this method may not be able to return a
<see cref="T:System.Double"/> NaN with exactly same bit pattern as the
<see cref="T:System.Int64"/> argument. IEEE 754 distinguishes between two
kinds of NaNs, quiet NaNs and <i>signaling NaNs</i>. The
differences between the two kinds of NaN are generally not
visible in .NET. Arithmetic operations on signaling NaNs turn
them into quiet NaNs with a different, but often similar, bit
pattern. However, on some processors merely copying a
signaling NaN also performs that conversion. In particular,
copying a signaling NaN to return it to the calling method
may perform this conversion. So <see cref="M:J2N.BitConversion.Int64BitsToDouble(System.Int64)"/>
may not be able to return a <see cref="T:System.Double"/> with a
signaling NaN bit pattern. Consequently, for some
<see cref="T:System.Int64"/> values,
<c>BitConversion.DoubleToRawInt64Bits(BitConversion.Int64BitsToDouble(start))</c> may
<i>not</i> equal <c>start</c>. Moreover, which
particular bit patterns represent signaling NaNs is platform
dependent; although all NaN bit patterns, quiet or signaling,
must be in the NaN range identified above.
<para/>
NOTE: This corresponds to Double.longBitsToDouble() in the JDK
and <see cref="M:System.BitConverter.Int64BitsToDouble(System.Int64)"/> in .NET.
</summary>
<param name="value">Any <see cref="T:System.Int64"/> integer.</param>
<returns>The <see cref="T:System.Double"/> floating-point value with
the same bit pattern.</returns>
</member>
<member name="M:J2N.BitConversion.DoubleToInt64Bits(System.Double)">
<summary>
Returns a representation of the specified floating-point value
according to the IEEE 754 floating-point "double
format" bit layout.
<para/>Bit 63 (the bit that is selected by the mask
<c>0x8000000000000000L</c>) represents the sign of the
floating-point number. Bits
62-52 (the bits that are selected by the mask
<c>0x7ff0000000000000L</c>) represent the exponent. Bits 51-0
(the bits that are selected by the mask
<c>0x000fffffffffffffL</c>) represent the significand
(sometimes called the mantissa) of the floating-point number.
<para/>If the argument is positive infinity, the result is
<c>0x7ff0000000000000L</c>.
<para/>If the argument is negative infinity, the result is
<c>0xfff0000000000000L</c>.
<para/>If the argument is NaN, the result is
<c>0x7ff8000000000000L</c>.
<para/>In all cases, the result is a <see cref="T:System.Int64"/> integer that, when
given to the <see cref="M:J2N.BitConversion.Int64BitsToDouble(System.Int64)"/> method, will produce a
floating-point value the same as the argument to
<see cref="M:J2N.BitConversion.DoubleToInt64Bits(System.Double)"/> (except all NaN values are
collapsed to a single "canonical" NaN value).
<para/>
NOTE: This corresponds to Double.doubleToLongBits() in the JDK.
There is no corresponding method in .NET.
</summary>
<param name="value">A <see cref="T:System.Double"/> precision floating-point number.</param>
<returns>The bits that represent the floating-point number.</returns>
</member>
<member name="M:J2N.BitConversion.DoubleToRawInt64Bits(System.Double)">
<summary>
Returns a representation of the specified floating-point value
according to the IEEE 754 floating-point "double
format" bit layout, preserving Not-a-Number (NaN) values.
<para/>Bit 63 (the bit that is selected by the mask
<c>0x8000000000000000L</c>) represents the sign of the
floating-point number. Bits
62-52 (the bits that are selected by the mask
<c>0x7ff0000000000000L</c>) represent the exponent. Bits 51-0
(the bits that are selected by the mask
<c>0x000fffffffffffffL</c>) represent the significand
(sometimes called the mantissa) of the floating-point number.
<para/>If the argument is positive infinity, the result is
<c>0x7ff0000000000000L</c>.
<para/>If the argument is negative infinity, the result is
<c>0xfff0000000000000L</c>.
<para/>If the argument is NaN, the result is the <see cref="T:System.Int64"/>
integer representing the actual NaN value. Unlike the
<see cref="M:J2N.BitConversion.DoubleToInt64Bits(System.Double)"/> method,
<see cref="M:J2N.BitConversion.DoubleToRawInt64Bits(System.Double)"/> does not collapse all the bit
patterns encoding a NaN to a single "canonical" NaN
value.
<para/>In all cases, the result is a <see cref="T:System.Int64"/> integer that,
when given to the <see cref="M:J2N.BitConversion.Int64BitsToDouble(System.Int64)"/> method, will
produce a floating-point value the same as the argument to
<see cref="M:J2N.BitConversion.DoubleToRawInt64Bits(System.Double)"/>.
<para/>
NOTE: This corresponds to Double.doubleToRawLongBits() in the JDK
and to <see cref="M:System.BitConverter.DoubleToInt64Bits(System.Double)"/> in .NET.
</summary>
<param name="value">A <see cref="T:System.Double"/> precision floating-point number.</param>
<returns>The bits that represent the floating-point number.</returns>
</member>
<member name="T:J2N.Buffers.ArrayPoolExtensions">
<summary>
Extensions to <see cref="T:System.Buffers.ArrayPool`1"/>
</summary>
</member>
<member name="M:J2N.Buffers.ArrayPoolExtensions.ReturnIfNotNull``1(System.Buffers.ArrayPool{``0},``0[],System.Boolean)">
<summary>
Returns to the pool an array that was previously obtained via <see cref="M:System.Buffers.ArrayPool`1.Rent(System.Int32)"/> on the same
<see cref="T:System.Buffers.ArrayPool`1"/> instance. This method is a no-op if <paramref name="array"/> is <c>null</c>.
</summary>
<param name="pool">This <see cref="T:System.Buffers.ArrayPool`1"/>.</param>
<param name="array">
The buffer previously obtained from <see cref="M:System.Buffers.ArrayPool`1.Rent(System.Int32)"/> to return to the pool. If <c>null</c>,
no operation will take place.
</param>
<param name="clearArray">
If <c>true</c> and if the pool will store the buffer to enable subsequent reuse, <see cref="M:J2N.Buffers.ArrayPoolExtensions.ReturnIfNotNull``1(System.Buffers.ArrayPool{``0},``0[],System.Boolean)"/>
will clear <paramref name="array"/> of its contents so that a subsequent consumer via <see cref="M:System.Buffers.ArrayPool`1.Rent(System.Int32)"/>
will not see the previous consumer's content. If <c>false</c> or if the pool will release the buffer,
the array's contents are left unchanged.
</param>
<remarks>
Once a buffer has been returned to the pool, the caller gives up all ownership of the buffer
and must not use it. The reference returned from a given call to <see cref="M:System.Buffers.ArrayPool`1.Rent(System.Int32)"/> must only be
returned via <see cref="M:J2N.Buffers.ArrayPoolExtensions.ReturnIfNotNull``1(System.Buffers.ArrayPool{``0},``0[],System.Boolean)"/> once. The default <see cref="T:System.Buffers.ArrayPool`1"/>
may hold onto the returned buffer in order to rent it again, or it may release the returned buffer
if it's determined that the pool already has enough buffers stored.
</remarks>
</member>
<member name="T:J2N.Character">
<summary>
Static extensions to supplement <see cref="T:System.Char"/>. This class also provides a
number of utility methods for working with characters.
<para/>
Character data is based upon the Unicode Standard, 4.0. The Unicode
specification, character tables and other information are available at <a
href="http://www.unicode.org/">http://www.unicode.org/</a>.
<para/>
Unicode characters are referred to as <i>code points</i>. The range of valid
code points is U+0000 to U+10FFFF. The <i>Basic Multilingual Plane (BMP)</i>
is the code point range U+0000 to U+FFFF. Characters above the BMP are
referred to as <i>Supplementary Characters</i>. On the .NET platform, UTF-16
encoding and <see cref="T:System.Char"/> pairs are used to represent code points in the
supplementary range. A pair of <see cref="T:System.Char"/> values that represent a
supplementary character are made up of a <i>high surrogate</i> with a value
range of 0xD800 to 0xDBFF and a <i>low surrogate</i> with a value range of
0xDC00 to 0xDFFF.
<para/>
On the .NET platform a <see cref="T:System.Char"/> value represents either a single BMP code
point or a UTF-16 unit that's part of a surrogate pair. Typically, the <see cref="T:System.String"/>
data type is used to represent all Unicode code points. This class supplements <see cref="T:System.Char"/>
with static methods to provide support for using <see cref="T:System.Int32"/> type
to represent code points, similar to how it is done in Java.
<para/>
Most of this corresponds to the java.Util.Character type in the JDK.
</summary>
</member>
<member name="F:J2N.Character.MaxRadix">
<summary>
The minimum radix used for conversions between characters and integers.
</summary>
</member>
<member name="F:J2N.Character.MinRadix">
<summary>
The maximum radix used for conversions between characters and integers.
</summary>
</member>
<member name="F:J2N.Character.MinHighSurrogate">
<summary>
The maximum value of a high surrogate or leading surrogate unit in UTF-16
encoding, <c>'\uDBFF'</c>.
</summary>
</member>
<member name="F:J2N.Character.MaxHighSurrogate">
<summary>
The minimum value of a high surrogate or leading surrogate unit in UTF-16
encoding, <c>'\uD800'</c>.
</summary>
</member>
<member name="F:J2N.Character.MinLowSurrogate">
<summary>
The minimum value of a low surrogate or trailing surrogate unit in UTF-16
encoding, <c>'\uDC00'</c>.
</summary>
</member>
<member name="F:J2N.Character.MaxLowSurrogate">
<summary>
The maximum value of a low surrogate or trailing surrogate unit in UTF-16
encoding, <c>'\uDFFF'</c>.
</summary>
</member>
<member name="F:J2N.Character.MinSurrogate">
<summary>
The minimum value of a surrogate unit in UTF-16 encoding, <c>'\uD800'</c>.
</summary>
</member>
<member name="F:J2N.Character.MaxSurrogate">
<summary>
The maximum value of a surrogate unit in UTF-16 encoding, <c>'\uDFFF'</c>.
</summary>
</member>
<member name="F:J2N.Character.MinSupplementaryCodePoint">
<summary>
The minimum value of a supplementary code point, <c>U+010000</c>.
</summary>
</member>
<member name="F:J2N.Character.MinCodePoint">
<summary>
The minimum code point value, <c>U+0000</c>.
</summary>
</member>
<member name="F:J2N.Character.MaxCodePoint">
<summary>
The maximum code point value, <c>U+10FFFF</c>.
</summary>
</member>
<member name="F:J2N.Character.ASCIIDigits">
<summary>Map from an ASCII char to its digit value (up to radix 36), e.g. arr['b'] == 11. 0xff means it's not a digit.</summary>
</member>
<member name="T:J2N.Character.DigitSupplemental">
<summary>
Supplemental characters (surrogates) for digits. Implements Unicode 10.0.
<para/>
This class is strictly to lazy-load the range of values if and only if they are required.
</summary>
</member>
<member name="T:J2N.Character.NumericIntermediate">
<summary>
Intermediate range of characters with starting point 0x2187 because it is the first character
that requires a value larger than <see cref="T:System.Char"/> to calculate the result. Implements Unicode 10.0.
<para/>
This class is strictly to lazy-load the range of values if and only if they are required.
</summary>
</member>
<member name="T:J2N.Character.NumericSupplemental">
<summary>
Supplemental characters (surrogates) for numeric characters. Implements Unicode 10.0.
<para/>
This class is strictly to lazy-load the range of values if and only if they are required.
</summary>
</member>
<member name="M:J2N.Character.IsValidCodePoint(System.Int32)">
<summary>
Indicates whether <paramref name="codePoint"/> is a valid Unicode code point.
</summary>
<param name="codePoint">The code point to test.</param>
<returns><c>true</c> if <paramref name="codePoint"/> is a valid Unicode code point; <c>false</c> otherwise.</returns>
</member>
<member name="M:J2N.Character.IsSupplementaryCodePoint(System.Int32)">
<summary>
Indicates whether <paramref name="codePoint"/> is within the supplementary code
</summary>
<param name="codePoint">The code point to test.</param>
<returns><c>true</c> if <paramref name="codePoint"/> is within the supplementary
code point range; <c>false</c> otherwise.</returns>
</member>
<member name="M:J2N.Character.CharCount(System.Int32)">
<summary>
Calculates the number of <see cref="T:System.Char"/> values required to represent the
specified Unicode code point. This method checks if the <paramref name="codePoint"/>
is greater than or equal to <c>0x10000</c>, in which case <c>2</c> is
returned, otherwise <c>1</c>. To test if the code point is valid, use
the <see cref="M:J2N.Character.IsValidCodePoint(System.Int32)"/> method.
</summary>
<param name="codePoint">The code point for which to calculate the number of required
chars.</param>
<returns><c>2</c> if <c><paramref name="codePoint"/> >= 0x10000</c>; <c>1</c> otherwise.</returns>
</member>
<member name="M:J2N.Character.ToCodePoint(System.Char,System.Char)">
<summary>
Converts a surrogate pair into a Unicode code point. This method assumes
that the pair are valid surrogates. If the pair are <i>not</i> valid
surrogates, then the result is indeterminate. The
<see cref="M:System.Char.IsSurrogatePair(System.Char,System.Char)"/> method should be used prior to this
method to validate the pair.
<para/>
Roughly corresponds to <see cref="M:System.Char.ConvertToUtf32(System.Char,System.Char)"/> in .NET, but
doesn't do any validation on the input parameters.
</summary>
<param name="high">The high surrogate unit.</param>
<param name="low">The low surrogate unit.</param>
<returns>The Unicode code point corresponding to the surrogate unit pair.</returns>
<seealso cref="M:System.Char.IsSurrogatePair(System.Char,System.Char)"/>.
</member>
<member name="M:J2N.Character.CodePointAt(J2N.Text.ICharSequence,System.Int32)">
<summary>
Returns the code point at <paramref name="index"/> in the specified sequence of
character units. If the unit at <paramref name="index"/> is a high-surrogate unit,
<c><paramref name="index"/> + 1</c> is less than the length of the sequence and the unit at
<c><paramref name="index"/> + 1</c> is a low-surrogate unit, then the supplementary code
point represented by the pair is returned; otherwise the <see cref="T:System.Char"/>
value at <paramref name="index"/> is returned.
</summary>
<param name="seq">The source sequence of <see cref="T:System.Char"/> units.</param>
<param name="index">the position in <paramref name="seq"/> from which to retrieve the code
point.</param>
<returns>the Unicode code point or <see cref="T:System.Char"/> value at <paramref name="index"/> in
<paramref name="seq"/>.</returns>
<exception cref="T:System.ArgumentNullException">If <paramref name="seq"/> is <c>null</c>.</exception>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="index"/> is greater than or equal to the length of <paramref name="seq"/>.
<para/>
-or-
<para/>
<paramref name="index"/> is less than zero.
</exception>
</member>
<member name="M:J2N.Character.CodePointAt(System.Char[],System.Int32)">
<summary>
Returns the code point at <paramref name="index"/> in the specified sequence of
character units. If the unit at <paramref name="index"/> is a high-surrogate unit,
<c><paramref name="index"/> + 1</c> is less than the length of the sequence and the unit at
<c><paramref name="index"/> + 1</c> is a low-surrogate unit, then the supplementary code
point represented by the pair is returned; otherwise the <see cref="T:System.Char"/>
value at <paramref name="index"/> is returned.
</summary>
<param name="seq">The source sequence of <see cref="T:System.Char"/> units.</param>
<param name="index">the position in <paramref name="seq"/> from which to retrieve the code
point.</param>
<returns>the Unicode code point or <see cref="T:System.Char"/> value at <paramref name="index"/> in
<paramref name="seq"/>.</returns>
<exception cref="T:System.ArgumentNullException">If <paramref name="seq"/> is <c>null</c>.</exception>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="index"/> is greater than or equal to the length of <paramref name="seq"/>.
<para/>
-or-
<para/>
<paramref name="index"/> is less than zero.
</exception>
</member>
<member name="M:J2N.Character.CodePointAt(System.Text.StringBuilder,System.Int32)">
<summary>
Returns the code point at <paramref name="index"/> in the specified sequence of
character units. If the unit at <paramref name="index"/> is a high-surrogate unit,
<c><paramref name="index"/> + 1</c> is less than the length of the sequence and the unit at
<c><paramref name="index"/> + 1</c> is a low-surrogate unit, then the supplementary code
point represented by the pair is returned; otherwise the <see cref="T:System.Char"/>
value at <paramref name="index"/> is returned.
<para/>
<strong>Usage Note:</strong> This method is slow because it relies on the indexer of
<see cref="T:System.Text.StringBuilder"/> and it is designed to be used inside of a loop. Avoid.
It is recommended to convert the contents of the
<see cref="T:System.Text.StringBuilder"/> to <see cref="T:System.ReadOnlySpan`1"/>, <see cref="T:char[]"/>,
or <see cref="T:System.String"/> and to call the appropriate overload, instead.
</summary>
<param name="seq">The source sequence of <see cref="T:System.Char"/> units.</param>
<param name="index">the position in <paramref name="seq"/> from which to retrieve the code
point.</param>
<returns>the Unicode code point or <see cref="T:System.Char"/> value at <paramref name="index"/> in
<paramref name="seq"/>.</returns>
<exception cref="T:System.ArgumentNullException">If <paramref name="seq"/> is <c>null</c>.</exception>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="index"/> is greater than or equal to the length of <paramref name="seq"/>.
<para/>
-or-
<para/>
<paramref name="index"/> is less than zero.
</exception>
</member>
<member name="M:J2N.Character.CodePointAt(System.String,System.Int32)">
<summary>
Returns the code point at <paramref name="index"/> in the specified sequence of
character units. If the unit at <paramref name="index"/> is a high-surrogate unit,
<c><paramref name="index"/> + 1</c> is less than the length of the sequence and the unit at
<c><paramref name="index"/> + 1</c> is a low-surrogate unit, then the supplementary code
point represented by the pair is returned; otherwise the <see cref="T:System.Char"/>
value at <paramref name="index"/> is returned.
</summary>
<param name="seq">The source sequence of <see cref="T:System.Char"/> units.</param>
<param name="index">the position in <paramref name="seq"/> from which to retrieve the code
point.</param>
<returns>the Unicode code point or <see cref="T:System.Char"/> value at <paramref name="index"/> in
<paramref name="seq"/>.</returns>
<exception cref="T:System.ArgumentNullException">If <paramref name="seq"/> is <c>null</c>.</exception>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="index"/> is greater than or equal to the length of <paramref name="seq"/>.
<para/>
-or-
<para/>
<paramref name="index"/> is less than zero.
</exception>
</member>
<member name="M:J2N.Character.CodePointAt(System.ReadOnlySpan{System.Char},System.Int32)">
<summary>
Returns the code point at <paramref name="index"/> in the specified sequence of
character units. If the unit at <paramref name="index"/> is a high-surrogate unit,
<c><paramref name="index"/> + 1</c> is less than the length of the sequence and the unit at
<c><paramref name="index"/> + 1</c> is a low-surrogate unit, then the supplementary code
point represented by the pair is returned; otherwise the <see cref="T:System.Char"/>
value at <paramref name="index"/> is returned.
</summary>
<param name="seq">The source sequence of <see cref="T:System.Char"/> units.</param>
<param name="index">the position in <paramref name="seq"/> from which to retrieve the code
point.</param>
<returns>the Unicode code point or <see cref="T:System.Char"/> value at <paramref name="index"/> in
<paramref name="seq"/>.</returns>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="index"/> is greater than or equal to the length of <paramref name="seq"/>.
<para/>
-or-
<para/>
<paramref name="index"/> is less than zero.
</exception>
</member>
<member name="M:J2N.Character.CodePointAt(System.Char[],System.Int32,System.Int32)">
<summary>
Returns the code point at <paramref name="index"/> in the specified array of
character units, where <paramref name="index"/> has to be less than <paramref name="limit"/>.
If the unit at <paramref name="index"/> is a high-surrogate unit, <c><paramref name="index"/> + 1</c>
is less than <paramref name="limit"/> and the unit at <c><paramref name="index"/> + 1</c> is a
low-surrogate unit, then the supplementary code point represented by the
pair is returned; otherwise the <see cref="T:System.Char"/> value at <paramref name="index"/> is
returned.
</summary>
<param name="seq">The source array of <see cref="T:System.Char"/> units.</param>
<param name="index">The position in <paramref name="seq"/> from which to get the code point.</param>
<param name="limit">The index after the last unit in <paramref name="seq"/> that can be used.</param>
<returns>The Unicode code point or <see cref="T:System.Char"/> value at <paramref name="index"/> in
<paramref name="seq"/>.</returns>
<exception cref="T:System.ArgumentNullException">If <paramref name="seq"/> is <c>null</c>.</exception>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="index"/> is less than zero or is greater than or equal to <paramref name="limit"/>.
<para/>
-or-
<para/>
<paramref name="limit"/> is less than zero or greater than the length of <paramref name="seq"/>.
</exception>
</member>
<member name="M:J2N.Character.CodePointBefore(J2N.Text.ICharSequence,System.Int32)">
<summary>
Returns the code point that precedes <paramref name="index"/> in the specified
sequence of character units. If the unit at <c><paramref name="index"/> - 1</c> is a
low-surrogate unit, <c><paramref name="index"/> - 2</c> is not negative and the unit at
<c><paramref name="index"/> - 2</c> is a high-surrogate unit, then the supplementary code
point represented by the pair is returned; otherwise the <see cref="T:System.Char"/>
value at <c><paramref name="index"/> - 1</c> is returned.
</summary>
<param name="seq">The source sequence of <see cref="T:System.Char"/> units.</param>
<param name="index">The position in <paramref name="seq"/> following the code
point that should be returned.</param>
<returns>The Unicode code point or <see cref="T:System.Char"/> value before <paramref name="index"/>
in <paramref name="seq"/>.</returns>
<exception cref="T:System.ArgumentNullException">If <paramref name="seq"/> is <c>null</c>.</exception>
<exception cref="T:System.ArgumentOutOfRangeException">If the <paramref name="index"/> is less than 1 or greater than
the length of <paramref name="seq"/>.</exception>
</member>
<member name="M:J2N.Character.CodePointBefore(System.Char[],System.Int32)">
<summary>
Returns the code point that precedes <paramref name="index"/> in the specified
sequence of character units. If the unit at <c><paramref name="index"/> - 1</c> is a
low-surrogate unit, <c><paramref name="index"/> - 2</c> is not negative and the unit at
<c><paramref name="index"/> - 2</c> is a high-surrogate unit, then the supplementary code
point represented by the pair is returned; otherwise the <see cref="T:System.Char"/>
value at <c><paramref name="index"/> - 1</c> is returned.
</summary>
<param name="seq">The source sequence of <see cref="T:System.Char"/> units.</param>
<param name="index">The position in <paramref name="seq"/> following the code
point that should be returned.</param>
<returns>The Unicode code point or <see cref="T:System.Char"/> value before <paramref name="index"/>
in <paramref name="seq"/>.</returns>
<exception cref="T:System.ArgumentNullException">If <paramref name="seq"/> is <c>null</c>.</exception>
<exception cref="T:System.ArgumentOutOfRangeException">If the <paramref name="index"/> is less than 1 or greater than
the length of <paramref name="seq"/>.</exception>
</member>
<member name="M:J2N.Character.CodePointBefore(System.Text.StringBuilder,System.Int32)">
<summary>
Returns the code point that precedes <paramref name="index"/> in the specified
sequence of character units. If the unit at <c><paramref name="index"/> - 1</c> is a
low-surrogate unit, <c><paramref name="index"/> - 2</c> is not negative and the unit at
<c><paramref name="index"/> - 2</c> is a high-surrogate unit, then the supplementary code
point represented by the pair is returned; otherwise the <see cref="T:System.Char"/>
value at <c><paramref name="index"/> - 1</c> is returned.
<para/>
<strong>Usage Note:</strong> This method is slow because it relies on the indexer of
<see cref="T:System.Text.StringBuilder"/> and it is designed to be used inside of a loop. Avoid.
It is recommended to convert the contents of the
<see cref="T:System.Text.StringBuilder"/> to <see cref="T:System.ReadOnlySpan`1"/>, <see cref="T:char[]"/>,
or <see cref="T:System.String"/> and to call the appropriate overload, instead.
</summary>
<param name="seq">The source sequence of <see cref="T:System.Char"/> units.</param>
<param name="index">The position in <paramref name="seq"/> following the code
point that should be returned.</param>
<returns>The Unicode code point or <see cref="T:System.Char"/> value before <paramref name="index"/>
in <paramref name="seq"/>.</returns>
<exception cref="T:System.ArgumentNullException">If <paramref name="seq"/> is <c>null</c>.</exception>
<exception cref="T:System.ArgumentOutOfRangeException">If the <paramref name="index"/> is less than 1 or greater than
the length of <paramref name="seq"/>.</exception>
</member>
<member name="M:J2N.Character.CodePointBefore(System.String,System.Int32)">
<summary>
Returns the code point that precedes <paramref name="index"/> in the specified
sequence of character units. If the unit at <c><paramref name="index"/> - 1</c> is a
low-surrogate unit, <c><paramref name="index"/> - 2</c> is not negative and the unit at
<c><paramref name="index"/> - 2</c> is a high-surrogate unit, then the supplementary code
point represented by the pair is returned; otherwise the <see cref="T:System.Char"/>
value at <c><paramref name="index"/> - 1</c> is returned.
</summary>
<param name="seq">The source sequence of <see cref="T:System.Char"/> units.</param>
<param name="index">The position in <paramref name="seq"/> following the code
point that should be returned.</param>
<returns>The Unicode code point or <see cref="T:System.Char"/> value before <paramref name="index"/>
in <paramref name="seq"/>.</returns>
<exception cref="T:System.ArgumentNullException">If <paramref name="seq"/> is <c>null</c>.</exception>
<exception cref="T:System.ArgumentOutOfRangeException">If the <paramref name="index"/> is less than 1 or greater than
the length of <paramref name="seq"/>.</exception>
</member>
<member name="M:J2N.Character.CodePointBefore(System.ReadOnlySpan{System.Char},System.Int32)">
<summary>
Returns the code point that precedes <paramref name="index"/> in the specified
sequence of character units. If the unit at <c><paramref name="index"/> - 1</c> is a
low-surrogate unit, <c><paramref name="index"/> - 2</c> is not negative and the unit at
<c><paramref name="index"/> - 2</c> is a high-surrogate unit, then the supplementary code
point represented by the pair is returned; otherwise the <see cref="T:System.Char"/>
value at <c><paramref name="index"/> - 1</c> is returned.
</summary>
<param name="seq">The source sequence of <see cref="T:System.Char"/> units.</param>
<param name="index">The position in <paramref name="seq"/> following the code
point that should be returned.</param>
<returns>The Unicode code point or <see cref="T:System.Char"/> value before <paramref name="index"/>
in <paramref name="seq"/>.</returns>
<exception cref="T:System.ArgumentOutOfRangeException">If the <paramref name="index"/> is less than 1 or greater than
the length of <paramref name="seq"/>.</exception>
</member>
<member name="M:J2N.Character.CodePointBefore(System.Char[],System.Int32,System.Int32)">
<summary>
Returns the code point that preceds the <paramref name="index"/> in the specified
array of character units and is not less than <paramref name="start"/>. If the unit
at <c><paramref name="index"/> - 1</c> is a low-surrogate unit, <c><paramref name="index"/> - 2</c> is not
less than <paramref name="start"/> and the unit at <c><paramref name="index"/> - 2</c> is a
high-surrogate unit, then the supplementary code point represented by the
pair is returned; otherwise the <see cref="T:System.Char"/> value at <c><paramref name="index"/> - 1</c>
is returned.
</summary>
<param name="seq">The source array of <see cref="T:System.Char"/> units.</param>
<param name="index">the position in <paramref name="seq"/> following the code point that
should be returned.</param>
<param name="start">The index of the first element in <paramref name="seq"/>.</param>
<returns>The Unicode code point or <see cref="T:System.Char"/> value before <paramref name="index"/>
in <paramref name="seq"/>.</returns>
<exception cref="T:System.ArgumentNullException">If <paramref name="seq"/> is <c>null</c>.</exception>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="index"/> is less than or equal to <paramref name="start"/>
<para/>
-or-
<para/>
<paramref name="start"/> is less than zero.
<para/>
-or-
<para/>
<paramref name="index"/> is greater than the length of <paramref name="seq"/>.
<para/>
-or-
<para/>
<paramref name="start"/> is equal or greater than the length of <paramref name="seq"/>.
</exception>
</member>
<member name="M:J2N.Character.ToChars(System.Int32,System.Span{System.Char},System.Int32)">
<summary>
Converts the specified Unicode code point into a UTF-16 encoded sequence
and copies the value(s) into the <see cref="T:System.Span`1"/> <paramref name="destination"/>, starting at
index <paramref name="destinationIndex"/>.
</summary>
<param name="codePoint">The Unicode code point to encode.</param>
<param name="destination">The destination span to copy the encoded value into.</param>
<param name="destinationIndex">The index in <paramref name="destination"/> from where to start copying.</param>
<returns>The number of <see cref="T:System.Char"/> value units copied into <paramref name="destination"/>.</returns>
<exception cref="T:System.ArgumentException">If <paramref name="codePoint"/> is not a valid Unicode code point.</exception>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="destinationIndex"/> is less than zero.
<para/>
-or-
<para/>
<paramref name="destinationIndex"/> is greater than or equal to <c><paramref name="destination"/>.Length</c>.
<para/>
-or-
<para/>
<paramref name="destinationIndex"/> equals <c><paramref name="destination"/>.Length - 1</c> when
<paramref name="codePoint"/> is a supplementary code point (<see cref="M:J2N.Character.IsSupplementaryCodePoint(System.Int32)"/>).
</exception>
</member>
<member name="M:J2N.Character.ToChars(System.Int32,System.Char[],System.Int32)">
<summary>
Converts the specified Unicode code point into a UTF-16 encoded sequence
and copies the value(s) into the char array <paramref name="destination"/>, starting at
index <paramref name="destinationIndex"/>.
</summary>
<param name="codePoint">The Unicode code point to encode.</param>
<param name="destination">The destination array to copy the encoded value into.</param>
<param name="destinationIndex">The index in <paramref name="destination"/> from where to start copying.</param>
<returns>The number of <see cref="T:System.Char"/> value units copied into <paramref name="destination"/>.</returns>
<exception cref="T:System.ArgumentException">If <paramref name="codePoint"/> is not a valid Unicode code point.</exception>
<exception cref="T:System.ArgumentNullException">If <paramref name="destination"/> is <c>null</c>.</exception>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="destinationIndex"/> is less than zero.
<para/>
-or-
<para/>
<paramref name="destinationIndex"/> is greater than or equal to <c><paramref name="destination"/>.Length</c>.
<para/>
-or-
<para/>
<paramref name="destinationIndex"/> equals <c><paramref name="destination"/>.Length - 1</c> when
<paramref name="codePoint"/> is a supplementary code point (<see cref="M:J2N.Character.IsSupplementaryCodePoint(System.Int32)"/>).
</exception>
</member>
<member name="M:J2N.Character.ToChars(System.Int32)">
<summary>
Converts the specified Unicode code point into a UTF-16 encoded sequence
and returns it as a char array.
<para/>
This correponds to <see cref="M:System.Char.ConvertFromUtf32(System.Int32)"/>, but returns
a <see cref="T:char[]"/> rather than a <see cref="T:System.String"/>.
<para/>
Usage Note: This overload is discouraged because it produces a heap allocation
every time it is called. The <see cref="M:J2N.Character.ToChars(System.Int32,System.Span{System.Char})"/> is a direct
replacement that allows passing in a reusable buffer.
</summary>
<param name="codePoint">The Unicode code point to encode.</param>
<returns>
The UTF-16 encoded char sequence. If <paramref name="codePoint"/> is a
supplementary code point (<see cref="M:J2N.Character.IsSupplementaryCodePoint(System.Int32)"/>),
then the returned array contains two characters, otherwise it contains
just one character.
</returns>
<exception cref="T:System.ArgumentException">If <paramref name="codePoint"/> is not a valid Unicode code point.</exception>
</member>
<member name="M:J2N.Character.ToChars(System.Int32,System.Span{System.Char})">
<summary>
Converts the specified Unicode code point into a UTF-16 encoded sequence
and returns it as a <see cref="T:System.ReadOnlySpan`1"/>.
<para/>
This correponds to <see cref="M:System.Char.ConvertFromUtf32(System.Int32)"/>, but returns
a <see cref="T:System.ReadOnlySpan`1"/> rather than a <see cref="T:System.String"/>.
</summary>
<param name="codePoint">The Unicode code point to encode.</param>
<param name="buffer">The memory location to store the chars. Typically,
it should be <c>stackalloc char[2]</c> since it will never be longer than 2 chars.
Note that this <paramref name="buffer"/> is not intended for use by callers,
it is just a memory location to use when returning the result. The caller is
responsible for ensuring the memory location has a sufficient scope that is
at least as long as the scope of the return value.</param>
<returns>
The UTF-16 encoded char sequence sliced to the proper length. If
<paramref name="codePoint"/> is a supplementary code point
(<see cref="M:J2N.Character.IsSupplementaryCodePoint(System.Int32)"/>), then the returned
span contains two characters, otherwise it contains just one character.
</returns>
<exception cref="T:System.ArgumentException">If <paramref name="codePoint"/> is not a valid Unicode code point.</exception>
</member>
<member name="M:J2N.Character.ToChars(System.Int32,System.Char@,System.Char@)">
<summary>
Converts the specified Unicode code point into a UTF-16 encoded sequence
and returns it as <see cref="T:System.Char"/>.out parameters.
<para/>
This correponds to <see cref="M:System.Char.ConvertFromUtf32(System.Int32)"/>, but returns
out parameters that allocate on the stack rather than a <see cref="T:System.String"/>.
</summary>
<param name="codePoint">The Unicode code point to encode.</param>
<param name="high">The high (first) character of the code point, or the only character if
<paramref name="codePoint"/> is not a supplementary code point.</param>
<param name="low">The low (second) character of the code point. This is only populated if
<paramref name="codePoint"/> is a supplementary code point, in which case the return value is 2.</param>
<returns>
The length of the UTF-16 encoded char sequence. If <paramref name="codePoint"/> is a
supplementary code point (<see cref="M:J2N.Character.IsSupplementaryCodePoint(System.Int32)"/>),
then the returned value indicates two characters, otherwise it indicates
just one character (the <paramref name="high"/> value).
</returns>
<exception cref="T:System.ArgumentException">If <paramref name="codePoint"/> is not a valid Unicode code point.</exception>
</member>
<member name="M:J2N.Character.CodePointCount(J2N.Text.ICharSequence,System.Int32,System.Int32)">
<summary>
Returns the number of Unicode code points in the text range of the specified char sequence.
The text range begins at the specified <paramref name="startIndex"/> and extends for the number
of characters specified in <paramref name="length"/>.
Unpaired surrogates within the text range count as one code point each.
<para/>
IMPORTANT: This method has .NET semantics. That is, the <paramref name="length"/> parameter
is a length rather than an exclusive end index. To convert from
Java, use <c>endIndex - startIndex</c> to obtain the length.
</summary>
<param name="seq">The char sequence.</param>
<param name="startIndex">The index to the first char of the text range.</param>
<param name="length">The number of characters to consider in the count from <paramref name="seq"/>.</param>
<returns>The number of Unicode code points in the specified text range.</returns>
<exception cref="T:System.ArgumentNullException">If <paramref name="seq"/> is <c>null</c>.</exception>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="startIndex"/> plus <paramref name="length"/> indicates a position not within <paramref name="seq"/>.
<para/>
-or-
<para/>
<paramref name="startIndex"/> or <paramref name="length"/> is less than zero.
</exception>
</member>
<member name="M:J2N.Character.CodePointCount(System.Char[],System.Int32,System.Int32)">
<summary>
Returns the number of Unicode code points in the text range of the specified char sequence.
The text range begins at the specified <paramref name="startIndex"/> and extends for the number
of characters specified in <paramref name="length"/>.
Unpaired surrogates within the text range count as one code point each.
<para/>
IMPORTANT: This method has .NET semantics. That is, the <paramref name="length"/> parameter
is a length rather than an exclusive end index. To convert from
Java, use <c>endIndex - startIndex</c> to obtain the length.
</summary>
<param name="seq">The char sequence.</param>
<param name="startIndex">The index to the first char of the text range.</param>
<param name="length">The number of characters to consider in the count from <paramref name="seq"/>.</param>
<returns>The number of Unicode code points in the specified text range.</returns>
<exception cref="T:System.ArgumentNullException">If <paramref name="seq"/> is <c>null</c>.</exception>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="startIndex"/> plus <paramref name="length"/> indicates a position not within <paramref name="seq"/>.
<para/>
-or-
<para/>
<paramref name="startIndex"/> or <paramref name="length"/> is less than zero.
</exception>
</member>
<member name="M:J2N.Character.CodePointCount(System.Text.StringBuilder,System.Int32,System.Int32)">
<summary>
Returns the number of Unicode code points in the text range of the specified char sequence.
The text range begins at the specified <paramref name="startIndex"/> and extends for the number
of characters specified in <paramref name="length"/>.
Unpaired surrogates within the text range count as one code point each.
<para/>
IMPORTANT: This method has .NET semantics. That is, the <paramref name="length"/> parameter
is a length rather than an exclusive end index. To convert from
Java, use <c>endIndex - startIndex</c> to obtain the length.
</summary>
<param name="seq">The char sequence.</param>
<param name="startIndex">The index to the first char of the text range.</param>
<param name="length">The number of characters to consider in the count from <paramref name="seq"/>.</param>
<returns>The number of Unicode code points in the specified text range.</returns>
<exception cref="T:System.ArgumentNullException">If <paramref name="seq"/> is <c>null</c>.</exception>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="startIndex"/> plus <paramref name="length"/> indicates a position not within <paramref name="seq"/>.
<para/>
-or-
<para/>
<paramref name="startIndex"/> or <paramref name="length"/> is less than zero.
</exception>
</member>
<member name="M:J2N.Character.CodePointCount(System.String,System.Int32,System.Int32)">
<summary>
Returns the number of Unicode code points in the text range of the specified char sequence.
The text range begins at the specified <paramref name="startIndex"/> and extends for the number
of characters specified in <paramref name="length"/>.
Unpaired surrogates within the text range count as one code point each.
<para/>
IMPORTANT: This method has .NET semantics. That is, the <paramref name="length"/> parameter
is a length rather than an exclusive end index. To convert from
Java, use <c>endIndex - startIndex</c> to obtain the length.
</summary>
<param name="seq">The char sequence.</param>
<param name="startIndex">The index to the first char of the text range.</param>
<param name="length">The number of characters to consider in the count from <paramref name="seq"/>.</param>
<returns>The number of Unicode code points in the specified text range.</returns>
<exception cref="T:System.ArgumentNullException">If <paramref name="seq"/> is <c>null</c>.</exception>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="startIndex"/> plus <paramref name="length"/> indicates a position not within <paramref name="seq"/>.
<para/>
-or-
<para/>
<paramref name="startIndex"/> or <paramref name="length"/> is less than zero.
</exception>
</member>
<member name="M:J2N.Character.CodePointCount(System.ReadOnlySpan{System.Char})">
<summary>
Returns the number of Unicode code points in the text range of the specified char sequence.
The text range begins at 0 and extends for the number
of characters specified in <paramref name="seq"/>.
Unpaired surrogates within the text range count as one code point each.
</summary>
<param name="seq">The char sequence.</param>
</member>
<member name="M:J2N.Character.OffsetByCodePoints(J2N.Text.ICharSequence,System.Int32,System.Int32)">
<summary>
Returns the index within the given char sequence that is offset from the given <paramref name="index"/> by
<paramref name="codePointOffset"/> code points. Unpaired surrogates within the text range given by
<paramref name="index"/> and <paramref name="codePointOffset"/> count as one code point each.
</summary>
<param name="seq">The character sequence.</param>
<param name="index">The index to be offset.</param>
<param name="codePointOffset">The number of code points to look backwards or forwards; may
be a negative or positive value.</param>
<returns>The index within the char sequence, offset by <paramref name="codePointOffset"/> code points.</returns>
<exception cref="T:System.ArgumentNullException">If <paramref name="seq"/> is <c>null</c>.</exception>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="index"/> is less than zero or greater than the length of the character sequence <paramref name="seq"/>.
<para/>
-or-
<para/>
<paramref name="codePointOffset"/> is positive and the subsequence starting with <paramref name="index"/> has fewer than
<paramref name="codePointOffset"/> code points.
<para/>
-or-
<para/>
<paramref name="codePointOffset"/> is negative and the subsequence before <paramref name="index"/> has fewer than
the absolute value of <paramref name="codePointOffset"/> code points.
</exception>
</member>
<member name="M:J2N.Character.OffsetByCodePoints(System.Char[],System.Int32,System.Int32)">
<summary>
Returns the index within the given char sequence that is offset from the given <paramref name="index"/> by
<paramref name="codePointOffset"/> code points. Unpaired surrogates within the text range given by
<paramref name="index"/> and <paramref name="codePointOffset"/> count as one code point each.
</summary>
<param name="seq">The character sequence.</param>
<param name="index">The index to be offset.</param>
<param name="codePointOffset">The number of code points to look backwards or forwards; may
be a negative or positive value.</param>
<returns>The index within the char sequence, offset by <paramref name="codePointOffset"/> code points.</returns>
<exception cref="T:System.ArgumentNullException">If <paramref name="seq"/> is <c>null</c>.</exception>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="index"/> is less than zero or greater than the length of the character sequence <paramref name="seq"/>.
<para/>
-or-
<para/>
<paramref name="codePointOffset"/> is positive and the subsequence starting with <paramref name="index"/> has fewer than
<paramref name="codePointOffset"/> code points.
<para/>
-or-
<para/>
<paramref name="codePointOffset"/> is negative and the subsequence before <paramref name="index"/> has fewer than
the absolute value of <paramref name="codePointOffset"/> code points.
</exception>
</member>
<member name="M:J2N.Character.OffsetByCodePoints(System.Text.StringBuilder,System.Int32,System.Int32)">
<summary>
Returns the index within the given char sequence that is offset from the given <paramref name="index"/> by
<paramref name="codePointOffset"/> code points. Unpaired surrogates within the text range given by
<paramref name="index"/> and <paramref name="codePointOffset"/> count as one code point each.
</summary>
<param name="seq">The character sequence.</param>
<param name="index">The index to be offset.</param>
<param name="codePointOffset">The number of code points to look backwards or forwards; may
be a negative or positive value.</param>
<returns>The index within the char sequence, offset by <paramref name="codePointOffset"/> code points.</returns>
<exception cref="T:System.ArgumentNullException">If <paramref name="seq"/> is <c>null</c>.</exception>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="index"/> is less than zero or greater than the length of the character sequence <paramref name="seq"/>.
<para/>
-or-
<para/>
<paramref name="codePointOffset"/> is positive and the subsequence starting with <paramref name="index"/> has fewer than
<paramref name="codePointOffset"/> code points.
<para/>
-or-
<para/>
<paramref name="codePointOffset"/> is negative and the subsequence before <paramref name="index"/> has fewer than
the absolute value of <paramref name="codePointOffset"/> code points.
</exception>
</member>
<member name="M:J2N.Character.OffsetByCodePoints(System.String,System.Int32,System.Int32)">
<summary>
Returns the index within the given char sequence that is offset from the given <paramref name="index"/> by
<paramref name="codePointOffset"/> code points. Unpaired surrogates within the text range given by
<paramref name="index"/> and <paramref name="codePointOffset"/> count as one code point each.
</summary>
<param name="seq">The character sequence.</param>
<param name="index">The index to be offset.</param>
<param name="codePointOffset">The number of code points to look backwards or forwards; may
be a negative or positive value.</param>
<returns>The index within the char sequence, offset by <paramref name="codePointOffset"/> code points.</returns>
<exception cref="T:System.ArgumentNullException">If <paramref name="seq"/> is <c>null</c>.</exception>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="index"/> is less than zero or greater than the length of the character sequence <paramref name="seq"/>.
<para/>
-or-
<para/>
<paramref name="codePointOffset"/> is positive and the subsequence starting with <paramref name="index"/> has fewer than
<paramref name="codePointOffset"/> code points.
<para/>
-or-
<para/>
<paramref name="codePointOffset"/> is negative and the subsequence before <paramref name="index"/> has fewer than
the absolute value of <paramref name="codePointOffset"/> code points.
</exception>
</member>
<member name="M:J2N.Character.OffsetByCodePoints(System.ReadOnlySpan{System.Char},System.Int32,System.Int32)">
<summary>
Returns the index within the given char sequence that is offset from the given <paramref name="index"/> by
<paramref name="codePointOffset"/> code points. Unpaired surrogates within the text range given by
<paramref name="index"/> and <paramref name="codePointOffset"/> count as one code point each.
</summary>
<param name="seq">The character sequence.</param>
<param name="index">The index to be offset.</param>
<param name="codePointOffset">The number of code points to look backwards or forwards; may
be a negative or positive value.</param>
<returns>The index within the char sequence, offset by <paramref name="codePointOffset"/> code points.</returns>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="index"/> is less than zero or greater than the length of the character sequence <paramref name="seq"/>.
<para/>
-or-
<para/>
<paramref name="codePointOffset"/> is positive and the subsequence starting with <paramref name="index"/> has fewer than
<paramref name="codePointOffset"/> code points.
<para/>
-or-
<para/>
<paramref name="codePointOffset"/> is negative and the subsequence before <paramref name="index"/> has fewer than
the absolute value of <paramref name="codePointOffset"/> code points.
</exception>
</member>
<member name="M:J2N.Character.OffsetByCodePoints(System.Char[],System.Int32,System.Int32,System.Int32,System.Int32)">
<summary>
Returns the index within the given <see cref="T:System.Char"/> subarray <paramref name="seq"/> that is offset from the given <paramref name="index"/>
by <paramref name="codePointOffset"/> code points. The <paramref name="start"/> and <paramref name="count"/> arguments specify
a subarray of the <see cref="T:System.Char"/> array. Unpaired surrogates within the text range given by index and <paramref name="codePointOffset"/>
count as one code point each.
</summary>
<param name="seq">The character array to find the index in.</param>
<param name="start">The inclusive index that marks the beginning of the subsequence.</param>
<param name="count">The number of <see cref="T:System.Char"/> values to include within the subsequence.</param>
<param name="index">The start index in the subsequence of the <see cref="T:System.Char"/> array.</param>
<param name="codePointOffset">The number of code points to look backwards or forwards; may
be a negative or positive value.</param>
<returns>The index in <paramref name="seq"/> that is <paramref name="codePointOffset"/> code points
away from <paramref name="index"/>.</returns>
<exception cref="T:System.ArgumentNullException">If <paramref name="seq"/> is <c>null</c>.</exception>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="start"/> or <paramref name="count"/> is less than zero.
<para/>
-or-
<para/>
<paramref name="start"/> plus <paramref name="count"/> is greater than the length of <paramref name="seq"/>.
<para/>
-or-
<para/>
<paramref name="index"/> is less than <paramref name="start"/> or greater than <paramref name="start"/>
plus <paramref name="count"/>.
<para/>
-or-
<para/>
<paramref name="codePointOffset"/> is positive and the text range starting with <paramref name="index"/>
and ending with <c><paramref name="start"/> + <paramref name="count"/> - 1</c> has fewer than
<paramref name="codePointOffset"/> code points.
<para/>
-or-
<para/>
<paramref name="codePointOffset"/> is negative and the text range starting with <paramref name="start"/>
and ending with <c><paramref name="index"/> - 1</c> has fewer than the absolte value of
<paramref name="codePointOffset"/> code points.
</exception>
</member>
<member name="M:J2N.Character.Digit(System.Char,System.Int32)">
<summary>
Convenience method to determine the value of the specified character
<paramref name="c"/> in the supplied radix. The value of <paramref name="radix"/> must be
between <see cref="F:J2N.Character.MinRadix"/> and <see cref="F:J2N.Character.MaxRadix"/>.
</summary>
<param name="c">The character to determine the value of.</param>
<param name="radix">The radix.</param>
<returns>
The numeric value of <paramref name="c"/> in the specified <paramref name="radix"/>. Returns -1
if the <paramref name="radix"/> lies between <see cref="F:J2N.Character.MinRadix"/> and <see cref="F:J2N.Character.MaxRadix"/> or
if <paramref name="c"/> is not a decimal digit.
</returns>
</member>
<member name="M:J2N.Character.Digit(System.Int32,System.Int32)">
<summary>
Convenience method to determine the value of the specified character
<paramref name="codePoint"/> in the supplied radix. The value of <paramref name="radix"/> must be
between <see cref="F:J2N.Character.MinRadix"/> and <see cref="F:J2N.Character.MaxRadix"/>.
</summary>
<param name="codePoint">The character to determine the value of.</param>
<param name="radix">The radix.</param>
<returns>
The numeric value of <paramref name="codePoint"/> in the specified <paramref name="radix"/>. Returns -1
if the <paramref name="radix"/> lies between <see cref="F:J2N.Character.MinRadix"/> and <see cref="F:J2N.Character.MaxRadix"/> or
if <paramref name="codePoint"/> is not a decimal digit.
</returns>
</member>
<member name="M:J2N.Character.BinarySearchRange(System.String,System.Char)">
<summary>
Search the sorted characters in the string and return the nearest index.
</summary>
<param name="data">The String to search.</param>
<param name="c">The character to search for.</param>
<returns>The nearest index.</returns>
</member>
<member name="M:J2N.Character.BinarySearchRange(System.UInt32[],System.Int32)">
<summary>
Search the sorted characters in the string and return the nearest index.
</summary>
<param name="data">The String to search.</param>
<param name="codePoint">The character to search for.</param>
<returns>The nearest index.</returns>
</member>
<member name="M:J2N.Character.BinarySearchRange(System.UInt16[],System.Int32)">
<summary>
Search the sorted characters in the string and return the nearest index.
</summary>
<param name="data">The String to search.</param>
<param name="codePoint">The character to search for.</param>
<returns>The nearest index.</returns>
</member>
<member name="M:J2N.Character.ForDigit(System.Int32,System.Int32)">
<summary>
Returns the character which represents the specified digit in the
specified radix. The <paramref name="radix"/> must be between <see cref="F:J2N.Character.MinRadix"/> and
<see cref="F:J2N.Character.MaxRadix"/> inclusive; <paramref name="digit"/> must not be negative and
smaller than <paramref name="radix"/>. If any of these conditions does not hold, <c>'\0'</c>
is returned.
</summary>
<param name="digit">The integer value.</param>
<param name="radix">The radix.</param>
<returns>The <see cref="T:System.Char"/> which represents the <paramref name="digit"/> in the
<paramref name="radix"/>.</returns>
</member>
<member name="M:J2N.Character.GetNumericValue(System.Char)">
<summary>
Gets the numeric value of the specified Unicode character.
</summary>
<param name="c">The Unicode character to get the numeric value of.</param>
<returns>A non-negative numeric integer value if a numeric value for
<paramref name="c"/> exists, -1 if there is no numeric value for <paramref name="c"/>,
-2 if the numeric value can not be represented with an integer.</returns>
</member>
<member name="M:J2N.Character.GetNumericValue(System.Int32)">
<summary>
Gets the numeric value of the specified Unicode code point.
</summary>
<param name="codePoint">The Unicode character to get the numeric value of.</param>
<returns>A non-negative numeric integer value if a numeric value for
<paramref name="codePoint"/> exists, -1 if there is no numeric value for <paramref name="codePoint"/>,
-2 if the numeric value can not be represented with an integer.</returns>
</member>
<member name="M:J2N.Character.GetType(System.Char)">
<summary>
Gets the general Unicode category of the specified character.
<para/>
This mimics the behavior of the Java Character.GetType(int) method, but returns the .NET <see cref="T:System.Globalization.UnicodeCategory"/>
enumeration for easy consumption.
</summary>
<param name="c">The character to get the category of.</param>
<returns>The <see cref="T:System.Globalization.UnicodeCategory"/> of <paramref name="c"/>.</returns>
</member>
<member name="M:J2N.Character.GetType(System.Int32)">
<summary>
Gets the general Unicode category of the specified code point.
<para/>
Usage Note: A safe way to get unicode category. The .NET <see cref="M:System.Char.ConvertFromUtf32(System.Int32)"/>
method is similar. However, if the value falls between
0x00d800 and 0x00dfff, that method throws an exception. So this is a wrapper that converts the
codepoint to a char in those cases.
<para/>
This mimics the behavior of the Java Character.GetType(int) method, but returns the .NET <see cref="T:System.Globalization.UnicodeCategory"/>
enumeration for easy consumption.
</summary>
<param name="codePoint">The Unicode code point to get the category of.</param>
<returns>The <see cref="T:System.Globalization.UnicodeCategory"/> of <paramref name="codePoint"/>.</returns>
</member>
<member name="M:J2N.Character.IsDefined(System.Char)">
<summary>
Indicates whether the specified character is defined in the Unicode
specification.
</summary>
<param name="c">The character to check.</param>
<returns><c>true</c> if the general Unicode category of the character is
not <see cref="F:System.Globalization.UnicodeCategory.OtherNotAssigned"/>; <c>false</c> otherwise.</returns>
</member>
<member name="M:J2N.Character.IsDefined(System.Int32)">
<summary>
Indicates whether the specified code point is defined in the Unicode
specification.
</summary>
<param name="codePoint">The code point to check.</param>
<returns><c>true</c> if the general Unicode category of the code point is
not <see cref="F:System.Globalization.UnicodeCategory.OtherNotAssigned"/>; <c>false</c> otherwise.</returns>
</member>
<member name="M:J2N.Character.IsDigit(System.Char)">
<summary>
Indicates whether the specified character is a digit.
</summary>
<param name="c">The character to check.</param>
<returns><c>true</c> if <paramref name="c"/> is a digit; <c>false</c> otherwise.</returns>
</member>
<member name="M:J2N.Character.IsDigit(System.Int32)">
<summary>
Indicates whether the specified code point is a digit.
</summary>
<param name="codePoint">The code point to check.</param>
<returns><c>true</c> if <paramref name="codePoint"/> is a digit; <c>false</c> otherwise.</returns>
</member>
<member name="M:J2N.Character.IsIdentifierIgnorable(System.Char)">
<summary>
Indicates whether the specified character is ignorable in a .NET or
Unicode identifier.
</summary>
<param name="c">The character to check.</param>
<returns><c>true</c> if <paramref name="c"/> is ignorable; <c>false</c> otherwise.</returns>
</member>
<member name="M:J2N.Character.IsIdentifierIgnorable(System.Int32)">
<summary>
Indicates whether the specified code point is ignorable in a .NET or
Unicode identifier.
</summary>
<param name="codePoint">The code point to check.</param>
<returns><c>true</c> if <paramref name="codePoint"/> is ignorable; <c>false</c> otherwise.</returns>
</member>
<member name="M:J2N.Character.IsISOControl(System.Char)">
<summary>
Indicates whether the specified character is an ISO control character.
</summary>
<param name="c">The character to check.</param>
<returns><c>true</c> if <paramref name="c"/> is an ISO control character; <c>false</c> otherwise.</returns>
</member>
<member name="M:J2N.Character.IsISOControl(System.Int32)">
<summary>
Indicates whether the specified code point is an ISO control character.
</summary>
<param name="codePoint">The code point to check.</param>
<returns><c>true</c> if <paramref name="codePoint"/> is an ISO control character; <c>false</c> otherwise.</returns>
</member>
<member name="M:J2N.Character.IsLetter(System.Char)">
<summary>
Indicates whether the specified character is a letter.
</summary>
<param name="c">The character to check.</param>
<returns><c>true</c> if <paramref name="c"/> is a letter; <c>false</c> otherwise.</returns>
</member>
<member name="M:J2N.Character.IsLetter(System.Int32)">
<summary>
Indicates whether the specified code point is a letter.
</summary>
<param name="codePoint">The code point to check.</param>
<returns><c>true</c> if <paramref name="codePoint"/> is a letter; <c>false</c> otherwise.</returns>
</member>
<member name="M:J2N.Character.IsLetterOrDigit(System.Char)">
<summary>
Indicates whether the specified character is a letter or a digit.
</summary>
<param name="c">The character to check.</param>
<returns><c>true</c> if <paramref name="c"/> is a letter or a digit; <c>false</c> otherwise.</returns>
</member>
<member name="M:J2N.Character.IsLetterOrDigit(System.Int32)">
<summary>
Indicates whether the specified code point is a letter or a digit.
</summary>
<param name="codePoint">The code point to check.</param>
<returns><c>true</c> if <paramref name="codePoint"/> is a letter or a digit; <c>false</c> otherwise.</returns>
</member>
<member name="M:J2N.Character.IsLower(System.Char)">
<summary>
Indicates whether the specified character is a lower case letter.
</summary>
<param name="c">The character to check.</param>
<returns><c>true</c> if <paramref name="c"/> is a lower case letter; <c>false</c> otherwise.</returns>
</member>
<member name="M:J2N.Character.IsLower(System.Int32)">
<summary>
Indicates whether the specified code point is a lower case letter.
</summary>
<param name="codePoint">The code point to check.</param>
<returns><c>true</c> if <paramref name="codePoint"/> is a lower case letter; <c>false</c> otherwise.</returns>
</member>
<member name="M:J2N.Character.IsSpace(System.Char)">
<summary>
Indicates whether the specified character is a Java space.
</summary>
<param name="ch">The character to check.</param>
<returns><c>true</c> if <paramref name="ch"/> is a Java space; <c>false</c> otherwise.</returns>
</member>
<member name="M:J2N.Character.IsSpaceChar(System.Char)">
<summary>
Indicates whether the specified character is a Unicode space character.
That is, if it is a member of one of the Unicode categories Space
Separator, Line Separator, or Paragraph Separator.
</summary>
<param name="c">The character to check.</param>
<returns><c>true</c> if <paramref name="c"/> is a Unicode space character; <c>false</c> otherwise.</returns>
</member>
<member name="M:J2N.Character.IsSpaceChar(System.Int32)">
<summary>
Indicates whether the specified character is a Unicode space character.
That is, if it is a member of one of the Unicode categories Space
Separator, Line Separator, or Paragraph Separator.
</summary>
<param name="codePoint">The character to check.</param>
<returns><c>true</c> if <paramref name="codePoint"/> is a Unicode space character; <c>false</c> otherwise.</returns>
</member>
<member name="M:J2N.Character.IsTitleCase(System.Char)">
<summary>
Indicates whether the specified character is a titlecase character.
</summary>
<param name="c">The character to check.</param>
<returns><c>true</c> if <paramref name="c"/> is a titlecase character, <c>false</c> otherwise.</returns>
</member>
<member name="M:J2N.Character.IsTitleCase(System.Int32)">
<summary>
Indicates whether the specified code point is a titlecase character.
</summary>
<param name="codePoint">The code point to check.</param>
<returns><c>true</c> if <paramref name="codePoint"/> is a titlecase character, <c>false</c> otherwise.</returns>
</member>
<member name="M:J2N.Character.IsUnicodeIdentifierPart(System.Char)">
<summary>
Indicates whether the specified character is valid as part of a Unicode
identifier other than the first character.
</summary>
<param name="c">The character to check.</param>
<returns><c>true</c> if <paramref name="c"/> is valid as part of a Unicode
identifier, <c>false</c> otherwise.</returns>
</member>
<member name="M:J2N.Character.IsUnicodeIdentifierPart(System.Int32)">
<summary>
Indicates whether the specified code point is valid as part of a Unicode
identifier other than the first character.
</summary>
<param name="codePoint">The code point to check.</param>
<returns><c>true</c> if <paramref name="codePoint"/> is valid as part of a Unicode
identifier, <c>false</c> otherwise.</returns>
</member>
<member name="M:J2N.Character.IsUnicodeIdentifierStart(System.Char)">
<summary>
Indicates whether the specified character is a valid initial character
for a Unicode identifier.
</summary>
<param name="c">The character to check.</param>
<returns><c>true</c> if <paramref name="c"/> is valid as a first character for a Unicode
identifier, <c>false</c> otherwise.</returns>
</member>
<member name="M:J2N.Character.IsUnicodeIdentifierStart(System.Int32)">
<summary>
Indicates whether the specified code point is a valid initial character
for a Unicode identifier.
</summary>
<param name="codePoint">The code point to check.</param>
<returns><c>true</c> if <paramref name="codePoint"/> is valid as a first character for a Unicode
identifier, <c>false</c> otherwise.</returns>
</member>
<member name="M:J2N.Character.IsUpper(System.Char)">
<summary>
Indicates whether the specified character is an upper case letter.
</summary>
<param name="c">The character to check.</param>
<returns><c>true</c> if <paramref name="c"/> is an upper case letter, <c>false</c> otherwise.</returns>
</member>
<member name="M:J2N.Character.IsUpper(System.Int32)">
<summary>
Indicates whether the specified code point is an upper case letter.
</summary>
<param name="codePoint">The code point to check.</param>
<returns><c>true</c> if <paramref name="codePoint"/> is an upper case letter, <c>false</c> otherwise.</returns>
</member>
<member name="M:J2N.Character.IsWhiteSpace(System.Char)">
<summary>
Indicates whether the specified character (Unicode code point) is a whitespace character according to Java.
A character is a Java whitespace character if and only if it satisfies one of the following criteria:
<list type="bullet">
<item><description>It is a Unicode space character (<see cref="F:System.Globalization.UnicodeCategory.SpaceSeparator"/>,
<see cref="F:System.Globalization.UnicodeCategory.LineSeparator"/>, or <see cref="F:System.Globalization.UnicodeCategory.ParagraphSeparator"/>)
but it is not also a non-breaking space ('\u00A0', '\u2007', '\u202F').</description></item>
<item><description>It is '\t', U+0009 HORIZONTAL TABULATION.</description></item>
<item><description>It is '\n', U+000A LINE FEED.</description></item>
<item><description>It is '\u000B', U+000B VERTICAL TABULATION.</description></item>
<item><description>It is '\f', U+000C FORM FEED.</description></item>
<item><description>It is '\r', U+000D CARRIAGE RETURN.</description></item>
<item><description>It is '\u001C', U+001C FILE SEPARATOR.</description></item>
<item><description>It is '\u001D', U+001D GROUP SEPARATOR.</description></item>
<item><description>It is '\u001E', U+001E RECORD SEPARATOR.</description></item>
<item><description>It is '\u001F', U+001F UNIT SEPARATOR.</description></item>
</list>
<para/>
Usage Note: This method differs from <see cref="M:System.Char.IsWhiteSpace(System.Char)"/> in that it returns <c>false</c>
for the following characters:
<list type="bullet">
<item><description>'\u0085', NEXT LINE</description></item>
<item><description>'\u00A0', NO-BREAK SPACE</description></item>
<item><description>'\u2007', FIGURE SPACE</description></item>
<item><description>'\u202F', NARROW NO-BREAK SPACE</description></item>
</list>
</summary>
<param name="c">The character to check.</param>
<returns><c>true</c> if <paramref name="c"/> is a Java whitespace character, <c>false</c> otherwise.</returns>
</member>
<member name="M:J2N.Character.IsWhiteSpace(System.Int32)">
<summary>
Indicates whether the specified character (Unicode code point) is a whitespace character according to Java.
A character is a Java whitespace character if and only if it satisfies one of the following criteria:
<list type="bullet">
<item><description>It is a Unicode space character (<see cref="F:System.Globalization.UnicodeCategory.SpaceSeparator"/>,
<see cref="F:System.Globalization.UnicodeCategory.LineSeparator"/>, or <see cref="F:System.Globalization.UnicodeCategory.ParagraphSeparator"/>)
but it is not also a non-breaking space ('\u00A0', '\u2007', '\u202F').</description></item>
<item><description>It is '\t', U+0009 HORIZONTAL TABULATION.</description></item>
<item><description>It is '\n', U+000A LINE FEED.</description></item>
<item><description>It is '\u000B', U+000B VERTICAL TABULATION.</description></item>
<item><description>It is '\f', U+000C FORM FEED.</description></item>
<item><description>It is '\r', U+000D CARRIAGE RETURN.</description></item>
<item><description>It is '\u001C', U+001C FILE SEPARATOR.</description></item>
<item><description>It is '\u001D', U+001D GROUP SEPARATOR.</description></item>
<item><description>It is '\u001E', U+001E RECORD SEPARATOR.</description></item>
<item><description>It is '\u001F', U+001F UNIT SEPARATOR.</description></item>
</list>
<para/>
Usage Note: This method differs from <see cref="M:System.Char.IsWhiteSpace(System.String,System.Int32)"/> in that it returns <c>false</c>
for the following characters:
<list type="bullet">
<item><description>'\u0085', NEXT LINE</description></item>
<item><description>'\u00A0', NO-BREAK SPACE</description></item>
<item><description>'\u2007', FIGURE SPACE</description></item>
<item><description>'\u202F', NARROW NO-BREAK SPACE</description></item>
</list>
</summary>
<param name="codePoint">The character to check.</param>
<returns><c>true</c> if <paramref name="codePoint"/> is a Java whitespace character, <c>false</c> otherwise.</returns>
</member>
<member name="M:J2N.Character.ReverseBytes(System.Char)">
<summary>
Reverses the order of the first and second byte in the specified
character.
</summary>
<param name="c">The character to reverse.</param>
<returns>The character with reordered bytes.</returns>
</member>
<member name="M:J2N.Character.ToLower(System.Char)">
<summary>
Converts the character argument to
lowercase using the current culture.
</summary>
<param name="c">The character to be converted.</param>
<returns>The lowercase equivalent of the character, if any;
otherwise, the character itself.</returns>
</member>
<member name="M:J2N.Character.ToLower(System.Char,System.Globalization.CultureInfo)">
<summary>
Converts the character argument to
lowercase using the specified <paramref name="culture"/>.
</summary>
<param name="c">The character to be converted.</param>
<param name="culture">An object that specifies culture-specific casing rules.</param>
<returns>The lowercase equivalent of the character, if any;
otherwise, the character itself.</returns>
<exception cref="T:System.ArgumentNullException">If <paramref name="culture"/> is <c>null</c>.</exception>
</member>
<member name="M:J2N.Character.ToLower(System.Int32)">
<summary>
Converts the character (Unicode code point) argument to
lowercase using the current culture.
</summary>
<param name="codePoint">The character (Unicode code point) to be converted.</param>
<returns>The lowercase equivalent of the character, if any;
otherwise, the character itself.</returns>
<exception cref="T:System.ArgumentException">If the <paramref name="codePoint"/> is invalid.</exception>
</member>
<member name="M:J2N.Character.ToLower(System.Int32,System.Globalization.CultureInfo)">
<summary>
Converts the character (Unicode code point) argument to
lowercase using the specified <paramref name="culture"/>.
</summary>
<param name="codePoint">The character (Unicode code point) to be converted.</param>
<param name="culture">An object that specifies culture-specific casing rules.</param>
<returns>The lowercase equivalent of the character, if any;
otherwise, the character itself.</returns>
<exception cref="T:System.ArgumentException">If the <paramref name="codePoint"/> is invalid.</exception>
<exception cref="T:System.ArgumentNullException">If <paramref name="culture"/> is <c>null</c>.</exception>
</member>
<member name="M:J2N.Character.ToLowerInvariant(System.Char)">
<summary>
Converts the character argument to
lowercase using the invariant culture.
</summary>
<param name="c">The character to be converted.</param>
<returns>The lowercase equivalent of the character, if any;
otherwise, the character itself.</returns>
</member>
<member name="M:J2N.Character.ToLowerInvariant(System.Int32)">
<summary>
Converts the character (Unicode code point) argument to
lowercase using the invariant culture.
</summary>
<param name="codePoint">The character (Unicode code point) to be converted.</param>
<returns>The lowercase equivalent of the character, if any;
otherwise, the character itself.</returns>
<exception cref="T:System.ArgumentException">If the <paramref name="codePoint"/> is invalid.</exception>
</member>
<member name="M:J2N.Character.ToUpper(System.Char)">
<summary>
Converts the character argument to
uppercase using the current culture.
</summary>
<param name="c">The character to be converted.</param>
<returns>The uppercase equivalent of the character, if any;
otherwise, the character itself.</returns>
</member>
<member name="M:J2N.Character.ToUpper(System.Char,System.Globalization.CultureInfo)">
<summary>
Converts the character argument to
uppercase using the specified <paramref name="culture"/>.
</summary>
<param name="c">The character to be converted.</param>
<param name="culture">An object that specifies culture-specific casing rules.</param>
<returns>The uppercase equivalent of the character, if any;
otherwise, the character itself.</returns>
<exception cref="T:System.ArgumentNullException">If <paramref name="culture"/> is <c>null</c>.</exception>
</member>
<member name="M:J2N.Character.ToUpper(System.Int32)">
<summary>
Converts the character (Unicode code point) argument to
uppercase using the current culture.
</summary>
<param name="codePoint">The character (Unicode code point) to be converted.</param>
<returns>The uppercase equivalent of the character, if any;
otherwise, the character itself.</returns>
<exception cref="T:System.ArgumentException">If the <paramref name="codePoint"/> is invalid.</exception>
</member>
<member name="M:J2N.Character.ToUpper(System.Int32,System.Globalization.CultureInfo)">
<summary>
Converts the character (Unicode code point) argument to
uppercase using the specified <paramref name="culture"/>.
</summary>
<param name="codePoint">The character (Unicode code point) to be converted.</param>
<param name="culture">An object that specifies culture-specific casing rules.</param>
<returns>The uppercase equivalent of the character, if any;
otherwise, the character itself.</returns>
<exception cref="T:System.ArgumentException">If the <paramref name="codePoint"/> is invalid.</exception>
<exception cref="T:System.ArgumentNullException">If <paramref name="culture"/> is <c>null</c>.</exception>
</member>
<member name="M:J2N.Character.ToUpperInvariant(System.Char)">
<summary>
Converts the character argument to
uppercase using the invariant culture.
</summary>
<param name="c">The character to be converted.</param>
<returns>The uppercase equivalent of the character, if any;
otherwise, the character itself.</returns>
</member>
<member name="M:J2N.Character.ToUpperInvariant(System.Int32)">
<summary>
Converts the character (Unicode code point) argument to
uppercase using the invariant culture.
</summary>
<param name="codePoint">The character (Unicode code point) to be converted.</param>
<returns>The uppercase equivalent of the character, if any;
otherwise, the character itself.</returns>
<exception cref="T:System.ArgumentException">If the <paramref name="codePoint"/> is invalid.</exception>
</member>
<member name="M:J2N.Character.ToString(System.ReadOnlySpan{System.Int32})">
<summary>
Converts a sequence <paramref name="codePoints"/> to a <see cref="T:System.String"/> of UTF-16 code units.
<para/>
Usage Note: In the JDK, there is a constructor overload that accept code points and turn them into a string. This is
the .NET equivalent of that constructor overload, however this overload is provided for convenience and assumes the
whole array will be converted. <see cref="M:J2N.Character.ToString(System.ReadOnlySpan{System.Int32},System.Int32,System.Int32)"/> allows conversion of a partial array of code points to a
<see cref="T:System.String"/>.
</summary>
<param name="codePoints">A <see cref="T:System.ReadOnlySpan`1"/> of UTF-32 code points.</param>
<returns>A string containing the UTF-16 character equivalent of <paramref name="codePoints"/>.</returns>
<exception cref="T:System.ArgumentException">One of the <paramref name="codePoints"/> is not a valid Unicode
code point (see <see cref="M:J2N.Character.IsValidCodePoint(System.Int32)"/>).</exception>
</member>
<member name="M:J2N.Character.ToString(System.Int32[])">
<summary>
Converts an array <paramref name="codePoints"/> to a <see cref="T:System.String"/> of UTF-16 code units.
<para/>
Usage Note: In the JDK, there is a constructor overload that accept code points and turn them into a string. This is
the .NET equivalent of that constructor overload, however this overload is provided for convenience and assumes the
whole array will be converted. <see cref="M:J2N.Character.ToString(System.Int32[],System.Int32,System.Int32)"/> allows conversion of a partial array of code points to a
<see cref="T:System.String"/>.
</summary>
<param name="codePoints">An array of UTF-32 code points.</param>
<returns>A string containing the UTF-16 character equivalent of <paramref name="codePoints"/>.</returns>
<exception cref="T:System.ArgumentNullException"><paramref name="codePoints"/> is <c>null</c>.</exception>
<exception cref="T:System.ArgumentException">One of the <paramref name="codePoints"/> is not a valid Unicode
code point (see <see cref="M:J2N.Character.IsValidCodePoint(System.Int32)"/>).</exception>
</member>
<member name="M:J2N.Character.ToString(System.ReadOnlySpan{System.Int32},System.Int32,System.Int32)">
<summary>
Converts a sequence <paramref name="codePoints"/> to a <see cref="T:System.String"/> of UTF-16 code units.
<para/>
Usage Note: In the JDK, there is a constructor overload that accept code points and turn them into a string. This is
the .NET equivalent of that constructor overload.
</summary>
<param name="codePoints">A <see cref="T:System.ReadOnlySpan`1"/> of UTF-32 code points.</param>
<param name="startIndex">The index of the first code point to convert.</param>
<param name="length">The number of code point elements to to convert to UTF-32 code units and include in the result.</param>
<returns>A <see cref="T:System.String"/> containing the UTF-16 code units that correspond to the specified range of <paramref name="codePoints"/> elements.</returns>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="startIndex"/> plus <paramref name="length"/> indicates a position not within <paramref name="codePoints"/>.
<para/>
-or-
<para/>
<paramref name="startIndex"/> or <paramref name="length"/> is less than zero.
</exception>
<exception cref="T:System.ArgumentException">One of the <paramref name="codePoints"/> is not a valid Unicode
code point (see <see cref="M:J2N.Character.IsValidCodePoint(System.Int32)"/>).</exception>
</member>
<member name="M:J2N.Character.ToString(System.Int32[],System.Int32,System.Int32)">
<summary>
Converts an array <paramref name="codePoints"/> to a <see cref="T:System.String"/> of UTF-16 code units.
<para/>
Usage Note: In the JDK, there is a constructor overload that accept code points and turn them into a string. This is
the .NET equivalent of that constructor overload.
</summary>
<param name="codePoints">An array of UTF-32 code points.</param>
<param name="startIndex">The index of the first code point to convert.</param>
<param name="length">The number of code point elements to to convert to UTF-32 code units and include in the result.</param>
<returns>A <see cref="T:System.String"/> containing the UTF-16 code units that correspond to the specified range of <paramref name="codePoints"/> elements.</returns>
<exception cref="T:System.ArgumentNullException"><paramref name="codePoints"/> is <c>null</c>.</exception>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="startIndex"/> plus <paramref name="length"/> indicates a position not within <paramref name="codePoints"/>.
<para/>
-or-
<para/>
<paramref name="startIndex"/> or <paramref name="length"/> is less than zero.
</exception>
<exception cref="T:System.ArgumentException">One of the <paramref name="codePoints"/> is not a valid Unicode
code point (see <see cref="M:J2N.Character.IsValidCodePoint(System.Int32)"/>).</exception>
</member>
<member name="M:J2N.Character.WriteCodePointsToCharBuffer(System.Char*,System.Int32*,System.Int32,System.Int32)">
<summary>
Converts an an array <paramref name="codePoints"/> to a buffer of UTF-16 code units.
</summary>
<param name="buffer">A pointer to the first character of a <see cref="T:System.Char"/> array.</param>
<param name="codePoints">An array of UTF-32 code points.</param>
<param name="startIndex">The index of the first code point to convert.</param>
<param name="length">The number of code point elements to to convert to UTF-32 code units and include in the result.</param>
<returns>The total number of <see cref="T:System.Char"/>s copied to the buffer.</returns>
<exception cref="T:System.ArgumentException">One of the <paramref name="codePoints"/> is not a valid Unicode
code point (see <see cref="M:J2N.Character.IsValidCodePoint(System.Int32)"/>).</exception>
</member>
<member name="T:J2N.Collections.ArrayEqualityComparer`1">
<summary>
Provides comparers that use structural equality rules for arrays similar to those in Java.
</summary>
<typeparam name="T"></typeparam>
</member>
<member name="P:J2N.Collections.ArrayEqualityComparer`1.Default">
<summary>
Hidden default property that doesn't apply to this class.
</summary>
</member>
<member name="P:J2N.Collections.ArrayEqualityComparer`1.OneDimensional">
<summary>
Gets a structural equality comparer for the specified generic array type with comparison rules similar
to the JDK's Arrays class.
<para/>
This provides a high-performance array comparison that is faster than the
<see cref="P:System.Collections.StructuralComparisons.StructuralEqualityComparer"/>.
</summary>
</member>
<member name="T:J2N.Collections.ArrayEqualityUtil">
<summary>
Utilities for array equality of arrays and collections.
</summary>
</member>
<member name="T:J2N.Collections.Arrays">
<summary>
<see cref="T:J2N.Collections.Arrays"/> contains static methods which operate on arrays.
This class is a supplement to <see cref="T:System.Array"/> to support
additional methods that are available in Java but not in .NET.
</summary>
</member>
<member name="M:J2N.Collections.Arrays.DeepEquals``1(``0[],``0[])">
<summary>
Returns <c>true</c> if the two given arrays are deeply equal to one another.
Unlike the method <see cref="M:J2N.Collections.Arrays.Equals``1(``0[],``0[])"/>, this method
is appropriate for use for nested arrays of arbitrary depth.
<para/>
Two array references are considered deeply equal if they are both <c>null</c>
or if they refer to arrays that have the same length and the elements at
each index in the two arrays are equal.
</summary>
<typeparam name="T">The type of array.</typeparam>
<param name="arrayA">The array to be compared.</param>
<param name="arrayB">The array to be compared with.</param>
<returns><c>true</c> if both arrays are <c>null</c> or if the arrays have the
same length and the elements at each index in the two arrays are
equal according to <see cref="M:System.Collections.Generic.IEqualityComparer`1.Equals(`0,`0)"/> of
<see cref="P:System.Collections.Generic.EqualityComparer`1.Default"/>; otherwise, <c>false</c>.</returns>
</member>
<member name="M:J2N.Collections.Arrays.Equals``1(``0[],``0[])">
<summary>
Compares the entire members of one array with another array.
</summary>
<typeparam name="T">The type of array.</typeparam>
<param name="arrayA">The array to be compared.</param>
<param name="arrayB">The array to be compared with.</param>
<returns>Returns <c>true</c> if the two specified arrays of <typeparamref name="T"/> are equal
to one another. The two arrays are considered equal if both arrays
contain the same number of elements, and all corresponding pairs of
elements in the two arrays are equal. Two objects <c>e1</c> and <c>e2</c> are
considered equal if (<c>e1</c>==null ? <c>e2</c>==null : <c>e1</c>.Equals(<c>e2</c>)). In other
words, the two arrays are equal if they contain the same elements in
the same order. Also, two array references are considered equal if
both are <c>null</c>.
<para/>
Note that if the type of <typeparamref name="T"/> is a <see cref="T:System.Collections.Generic.IDictionary`2"/>,
<see cref="T:System.Collections.Generic.IList`1"/>, or <see cref="T:System.Collections.Generic.ISet`1"/>, its values and any nested collection values
will be compared for equality as well.
</returns>
</member>
<member name="M:J2N.Collections.Arrays.GetDeepHashCode``1(``0[])">
<summary>
Returns a hash code based on the "deep contents" of the given array. If
the array contains other arrays as its elements, the hash code is based
on their contents not their identities. So it is not acceptable to invoke
this method on an array that contains itself as an element, either
directly or indirectly.
<para/>
For any two arrays <c>a</c> and <c>b</c>, if
<c>Arrays.DeepEquals(a, b)</c> returns <c>true</c>, it
means that the return value of <c>Arrays.GetDeepHashCode(a)</c> equals
<c>Arrays.GetDeepHashCode(b)</c>.
<para/>
The computation of the value returned by this method is similar to that
of the value returned by <see cref="M:J2N.Collections.CollectionUtil.GetHashCode``1(System.Collections.Generic.IList{``0})"/> invoked on a
<see cref="T:System.Collections.Generic.IList`1"/> containing a sequence of instances representing the
elements of array in the same order. The difference is: If an element <c>e</c>
of array is itself an array, its hash code is computed by calling
<c>Arrays.GetHashCode(e)</c> if <c>e</c> is an array of a
value type, or by calling <c>Arrays.GetDeepHashCode(e)</c> recursively if <c>e</c> is
an array of reference type. The value returned by this method is the
same value as the method <c>StructuralComparison.StructuralEqualityComparer.Default.GetHashCode(array)</c>.
If the array is <c>null</c>, the return value is <c>0</c> (zero).
</summary>
<typeparam name="T">The type of array.</typeparam>
<param name="array">The array whose hash code to compute.</param>
<returns>The deep hash code for <paramref name="array"/>.</returns>
</member>
<member name="M:J2N.Collections.Arrays.GetHashCode``1(``0[])">
<summary>
Returns a hash code based on the contents of the given array. For any two
<typeparamref name="T"/> arrays <c>a</c> and <c>b</c>, if
<c>Arrays.Equals(b)</c> returns <c>true</c>, it means
that the return value of <c>Arrays.GetHashCode(a)</c> equals <c>Arrays.GetHashCode(b)</c>.
</summary>
<typeparam name="T">The array element type.</typeparam>
<param name="array">The array whose hash code to compute.</param>
<returns>The hash code for <paramref name="array"/>.</returns>
</member>
<member name="M:J2N.Collections.Arrays.ToString``1(``0[])">
<summary>
Creates a <see cref="T:System.String"/> representation of the array passed.
The result is surrounded by brackets <c>"[]"</c>, each
element is converted to a <see cref="T:System.String"/> via the
<see cref="P:J2N.Text.StringFormatter.InvariantCulture"/> and separated by <c>", "</c>. If
the array is <c>null</c>, then <c>"null"</c> is returned.
</summary>
<typeparam name="T">The type of array element.</typeparam>
<param name="array">The array to convert.</param>
</member>
<member name="M:J2N.Collections.Arrays.ToString``1(``0[],System.IFormatProvider)">
<summary>
Creates a <see cref="T:System.String"/> representation of the array passed.
The result is surrounded by brackets <c>"[]"</c>, each
element is converted to a <see cref="T:System.String"/> via the
<see cref="P:J2N.Text.StringFormatter.InvariantCulture"/> and separated by <c>", "</c>. If
the array is <c>null</c>, then <c>"null"</c> is returned.
</summary>
<typeparam name="T">The type of array element.</typeparam>
<param name="array">The array to convert.</param>
<param name="provider">The format provider. If <c>null</c>, will use <see cref="P:J2N.Text.StringFormatter.CurrentCulture"/></param>
</member>
<member name="M:J2N.Collections.Arrays.ToString(System.Array)">
<summary>
Creates a <see cref="T:System.String"/> representation of the array passed.
The result is surrounded by brackets <c>"[]"</c>, each
element is converted to a <see cref="T:System.String"/> via the
<see cref="P:J2N.Text.StringFormatter.InvariantCulture"/> and separated by <c>", "</c>. If
the array is <c>null</c>, then <c>"null"</c> is returned.
</summary>
<param name="array">The array to convert.</param>
</member>
<member name="M:J2N.Collections.Arrays.ToString(System.Array,System.IFormatProvider)">
<summary>
Creates a <see cref="T:System.String"/> representation of the array passed.
The result is surrounded by brackets <c>"[]"</c>, each
element is converted to a <see cref="T:System.String"/> via the
<see cref="P:J2N.Text.StringFormatter.InvariantCulture"/> and separated by <c>", "</c>. If
the array is <c>null</c>, then <c>"null"</c> is returned.
</summary>
<param name="array">The array to convert.</param>
<param name="provider">The format provider. If <c>null</c>, will use <see cref="P:J2N.Text.StringFormatter.CurrentCulture"/></param>
</member>
<member name="M:J2N.Collections.Arrays.CopyOf``1(``0[],System.Int32)">
<summary>
Copies the specified array, truncating or padding with default values for <typeparamref name="T"/> (if necessary) so the
copy has the specified length. For all indices that are valid in both the original array and the copy,
the two arrays will contain identical values. For any indices that are valid in the copy but not the
original, the copy will contain the default value of <typeparamref name="T"/>. Such indices will exist if
and only if the specified length is greater than that of the original array.
</summary>
<typeparam name="T">The type of array.</typeparam>
<param name="original">The array to copy.</param>
<param name="newLength">The length of the copy to be returned.</param>
<returns>A copy of the original array, truncated or padded with zeros to obtain the specified length.</returns>
<exception cref="T:System.ArgumentNullException">If <paramref name="original"/> is <c>null</c>.</exception>
<exception cref="T:System.ArgumentOutOfRangeException">If <paramref name="newLength"/> is less than zero.</exception>
</member>
<member name="M:J2N.Collections.Arrays.Empty``1">
<summary>
Returns an empty array.
</summary>
<typeparam name="T">The type of the elements of the array.</typeparam>
<returns>An empty array.</returns>
</member>
<member name="T:J2N.Collections.BitSet">
<summary>
The <see cref="T:J2N.Collections.BitSet"/> class implements a bit field. Each element in a
<see cref="T:J2N.Collections.BitSet"/> can be on(1) or off(0). A <see cref="T:J2N.Collections.BitSet"/> is created with a
given size and grows if this size is exceeded. Growth is always rounded to a
64 bit boundary.
<para/>
Usage Note: <see cref="T:J2N.Collections.BitSet"/> is similar to <see cref="T:System.Collections.BitArray"/>,
except that it allows automatic growth, similar to using a <see cref="T:System.Collections.Generic.List`1"/>
or <see cref="T:System.Collections.Generic.HashSet`1"/>. <see cref="T:System.Collections.BitArray"/>
is a fixed length and doesn't automatically grow.
</summary>
</member>
<member name="M:J2N.Collections.BitSet.#ctor">
<summary>
Create a new <see cref="T:J2N.Collections.BitSet"/> with size equal to 64 bits.
</summary>
<seealso cref="M:J2N.Collections.BitSet.Clear(System.Int32)"/>
<seealso cref="M:J2N.Collections.BitSet.Set(System.Int32)"/>
<seealso cref="M:J2N.Collections.BitSet.Clear"/>
<seealso cref="M:J2N.Collections.BitSet.Clear(System.Int32,System.Int32)"/>
<seealso cref="M:J2N.Collections.BitSet.Set(System.Int32,System.Boolean)"/>
<seealso cref="M:J2N.Collections.BitSet.Set(System.Int32,System.Int32)"/>
<seealso cref="M:J2N.Collections.BitSet.Set(System.Int32,System.Int32,System.Boolean)"/>
</member>
<member name="M:J2N.Collections.BitSet.#ctor(System.Int32)">
<summary>
Create a new <see cref="T:J2N.Collections.BitSet"/> with size equal to nbits. If nbits is not a
multiple of 64, then create a <see cref="T:J2N.Collections.BitSet"/> with size nbits rounded to
the next closest multiple of 64.
</summary>
<param name="nbits">The size of the bit set.</param>
<exception cref="T:System.ArgumentOutOfRangeException">If <paramref name="nbits"/> is negative.</exception>
<seealso cref="M:J2N.Collections.BitSet.Clear(System.Int32)"/>
<seealso cref="M:J2N.Collections.BitSet.Set(System.Int32)"/>
<seealso cref="M:J2N.Collections.BitSet.Clear"/>
<seealso cref="M:J2N.Collections.BitSet.Clear(System.Int32,System.Int32)"/>
<seealso cref="M:J2N.Collections.BitSet.Set(System.Int32,System.Boolean)"/>
<seealso cref="M:J2N.Collections.BitSet.Set(System.Int32,System.Int32)"/>
<seealso cref="M:J2N.Collections.BitSet.Set(System.Int32,System.Int32,System.Boolean)"/>
</member>
<member name="M:J2N.Collections.BitSet.#ctor(System.Int64[],System.Boolean,System.Int32,System.Boolean)">
<summary>
Private constructor called from <see cref="M:J2N.Collections.BitSet.Get(System.Int32,System.Int32)"/> method.
</summary>
<param name="bits">The size of the bit set.</param>
<param name="needClear"></param>
<param name="actualArrayLength"></param>
<param name="isLengthActual"></param>
</member>
<member name="M:J2N.Collections.BitSet.Clone">
<summary>
Creates a copy of this <see cref="T:J2N.Collections.BitSet"/>.
</summary>
<returns>A copy of this <see cref="T:J2N.Collections.BitSet"/>.</returns>
</member>
<member name="M:J2N.Collections.BitSet.Equals(System.Object)">
<summary>
Compares the argument to this <see cref="T:J2N.Collections.BitSet"/> and returns whether they are
equal. The object must be an instance of <see cref="T:J2N.Collections.BitSet"/> with the same
bits set.
</summary>
<param name="obj">The <see cref="T:J2N.Collections.BitSet"/> object to compare.</param>
<returns>A <see cref="T:System.Boolean"/> indicating whether or not this <see cref="T:J2N.Collections.BitSet"/> and
<paramref name="obj"/> are equal.</returns>
<seealso cref="M:J2N.Collections.BitSet.GetHashCode"/>
</member>
<member name="M:J2N.Collections.BitSet.GrowLength(System.Int32)">
<summary>
Increase the size of the internal array to accommodate <paramref name="length"/> bits.
The new array max index will be a multiple of 64.
</summary>
<param name="length">The index the new array needs to be able to access.</param>
</member>
<member name="M:J2N.Collections.BitSet.GetHashCode">
<summary>
Computes the hash code for this <see cref="T:J2N.Collections.BitSet"/>. If two <see cref="T:J2N.Collections.BitSet"/>s are equal
the have to return the same result for <see cref="M:J2N.Collections.BitSet.GetHashCode"/>.
</summary>
<returns>The <see cref="T:System.Int32"/> representing the hash code for this bit
set.</returns>
<seealso cref="M:J2N.Collections.BitSet.Equals(System.Object)"/>
</member>
<member name="M:J2N.Collections.BitSet.Get(System.Int32)">
<summary>
Retrieves the bit at index <paramref name="position"/>. Grows the <see cref="T:J2N.Collections.BitSet"/> if
<paramref name="position"/> &gt; size.
</summary>
<param name="position">The index of the bit to be retrieved.</param>
<returns><c>true</c> if the bit at <paramref name="position"/> is set,
<c>false</c> otherwise.</returns>
<exception cref="T:System.ArgumentOutOfRangeException">If <paramref name="position"/> is negative.</exception>
<seealso cref="M:J2N.Collections.BitSet.Clear(System.Int32)"/>
<seealso cref="M:J2N.Collections.BitSet.Set(System.Int32)"/>
<seealso cref="M:J2N.Collections.BitSet.Clear"/>
<seealso cref="M:J2N.Collections.BitSet.Clear(System.Int32,System.Int32)"/>
<seealso cref="M:J2N.Collections.BitSet.Set(System.Int32,System.Boolean)"/>
<seealso cref="M:J2N.Collections.BitSet.Set(System.Int32,System.Int32)"/>
<seealso cref="M:J2N.Collections.BitSet.Set(System.Int32,System.Int32,System.Boolean)"/>
</member>
<member name="M:J2N.Collections.BitSet.Get(System.Int32,System.Int32)">
<summary>
Retrieves the bits starting from <paramref name="position1"/> to <paramref name="position2"/> and returns
back a new bitset made of these bits. Grows the <see cref="T:J2N.Collections.BitSet"/> if
<paramref name="position2"/> &gt; size.
</summary>
<param name="position1">Beginning position.</param>
<param name="position2">Ending position.</param>
<returns>New bitset of the range specified.</returns>
<exception cref="T:System.ArgumentOutOfRangeException"><paramref name="position1"/> or <paramref name="position2"/> is negative.</exception>
<exception cref="T:System.ArgumentException"><paramref name="position1"/> is greater than <paramref name="position2"/>.</exception>
<seealso cref="M:J2N.Collections.BitSet.Get(System.Int32)"/>
</member>
<member name="M:J2N.Collections.BitSet.Set(System.Int32)">
<summary>
Sets the bit at index <paramref name="position"/> to 1. Grows the <see cref="T:J2N.Collections.BitSet"/> if
<paramref name="position"/> &gt; size.
</summary>
<param name="position">The index of the bit to set.</param>
<exception cref="T:System.ArgumentOutOfRangeException">If <paramref name="position"/> is negative.</exception>
<seealso cref="M:J2N.Collections.BitSet.Clear(System.Int32)"/>
<seealso cref="M:J2N.Collections.BitSet.Clear"/>
<seealso cref="M:J2N.Collections.BitSet.Clear(System.Int32,System.Int32)"/>
</member>
<member name="M:J2N.Collections.BitSet.Set(System.Int32,System.Boolean)">
<summary>
Sets the bit at index <paramref name="position"/> to <paramref name="value"/>. Grows the
<see cref="T:J2N.Collections.BitSet"/> if <paramref name="position"/> &gt; size.
</summary>
<param name="position">The index of the bit to set.</param>
<param name="value">Value to set the bit.</param>
<exception cref="T:System.ArgumentOutOfRangeException">If <paramref name="position"/> is negative.</exception>
<seealso cref="M:J2N.Collections.BitSet.Set(System.Int32)"/>
</member>
<member name="M:J2N.Collections.BitSet.Set(System.Int32,System.Int32)">
<summary>
Sets the bits starting from <paramref name="position1"/> to <paramref name="position2"/>. Grows the
<see cref="T:J2N.Collections.BitSet"/> if <paramref name="position2"/> &gt; size.
</summary>
<param name="position1">Beginning position.</param>
<param name="position2">Ending position.</param>
<exception cref="T:System.ArgumentOutOfRangeException">If <paramref name="position1"/> or <paramref name="position2"/> is negative.</exception>
<exception cref="T:System.ArgumentException"><paramref name="position1"/> is greater than <paramref name="position2"/>.</exception>
<seealso cref="M:J2N.Collections.BitSet.Set(System.Int32)"/>
</member>
<member name="M:J2N.Collections.BitSet.Set(System.Int32,System.Int32,System.Boolean)">
<summary>
Sets the bits starting from <paramref name="position1"/> to <paramref name="position2"/> to the given
<paramref name="value"/>. Grows the <see cref="T:J2N.Collections.BitSet"/> if <paramref name="position2"/> &gt; size.
</summary>
<param name="position1">Beginning position.</param>
<param name="position2">Ending position.</param>
<param name="value">Value to set these bits.</param>
<exception cref="T:System.ArgumentOutOfRangeException">If <paramref name="position1"/> or <paramref name="position2"/> is negative, or if
<paramref name="position2"/> is smaller than <paramref name="position1"/>.</exception>
<seealso cref="M:J2N.Collections.BitSet.Set(System.Int32,System.Int32)"/>
</member>
<member name="M:J2N.Collections.BitSet.Clear">
<summary>
Clears all the bits in this <see cref="T:J2N.Collections.BitSet"/>.
</summary>
<seealso cref="M:J2N.Collections.BitSet.Clear(System.Int32)"/>
<seealso cref="M:J2N.Collections.BitSet.Clear(System.Int32,System.Int32)"/>
</member>
<member name="M:J2N.Collections.BitSet.Clear(System.Int32)">
<summary>
Clears the bit at index <paramref name="position"/>. Grows the <see cref="T:J2N.Collections.BitSet"/> if
<paramref name="position"/> &gt; size.
</summary>
<param name="position">The index of the bit to clear.</param>
<exception cref="T:System.ArgumentOutOfRangeException">If <paramref name="position"/> is negative.</exception>
<seealso cref="M:J2N.Collections.BitSet.Clear(System.Int32,System.Int32)"/>
</member>
<member name="M:J2N.Collections.BitSet.Clear(System.Int32,System.Int32)">
<summary>
Clears the bits starting from <paramref name="position1"/> to <paramref name="position2"/>. Grows the
<see cref="T:J2N.Collections.BitSet"/> if <paramref name="position2"/> &gt; size;
</summary>
<param name="position1">Beginning position.</param>
<param name="position2">Ending position.</param>
<exception cref="T:System.ArgumentOutOfRangeException">If <paramref name="position1"/> or <paramref name="position2"/> is negative.</exception>
<exception cref="T:System.ArgumentException"><paramref name="position1"/> is greater than <paramref name="position2"/>.</exception>
<seealso cref="M:J2N.Collections.BitSet.Clear(System.Int32)"/>
</member>
<member name="M:J2N.Collections.BitSet.Flip(System.Int32)">
<summary>
Flips the bit at index <paramref name="position"/>. Grows the <see cref="T:J2N.Collections.BitSet"/> if
<paramref name="position"/> &gt; size.
</summary>
<param name="position">The index of the bit to flip.</param>
<exception cref="T:System.ArgumentOutOfRangeException">If <paramref name="position"/> is negative.</exception>
<seealso cref="M:J2N.Collections.BitSet.Flip(System.Int32,System.Int32)"/>
</member>
<member name="M:J2N.Collections.BitSet.Flip(System.Int32,System.Int32)">
<summary>
Flips the bits starting from <paramref name="position1"/> to <paramref name="position2"/>. Grows the
<see cref="T:J2N.Collections.BitSet"/> if <paramref name="position2"/> &gt; size.
</summary>
<param name="position1">Beginning position.</param>
<param name="position2">Ending position.</param>
<exception cref="T:System.IndexOutOfRangeException">If <paramref name="position1"/> or <paramref name="position2"/> is negative.</exception>
<exception cref="T:System.ArgumentException"><paramref name="position1"/> is greater than <paramref name="position2"/>.</exception>
<seealso cref="M:J2N.Collections.BitSet.Flip(System.Int32)"/>
</member>
<member name="M:J2N.Collections.BitSet.Intersects(J2N.Collections.BitSet)">
<summary>
Checks if these two <see cref="T:J2N.Collections.BitSet"/>s have at least one bit set to true in the same
position.
</summary>
<param name="bitSet"><see cref="T:J2N.Collections.BitSet"/> used to calculate the intersection.</param>
<returns><c>true</c> if bs intersects with this <see cref="T:J2N.Collections.BitSet"/>,
<c>false</c> otherwise.</returns>
<exception cref="T:System.ArgumentNullException">If <paramref name="bitSet"/> is <c>null</c>.</exception>
</member>
<member name="M:J2N.Collections.BitSet.And(J2N.Collections.BitSet)">
<summary>
Performs the logical AND of this <see cref="T:J2N.Collections.BitSet"/> with another
<see cref="T:J2N.Collections.BitSet"/>. The values of this <see cref="T:J2N.Collections.BitSet"/> are changed accordingly.
</summary>
<param name="bitSet"><see cref="T:J2N.Collections.BitSet"/> to AND with.</param>
<exception cref="T:System.ArgumentNullException">If <paramref name="bitSet"/> is <c>null</c>.</exception>
<seealso cref="M:J2N.Collections.BitSet.Or(J2N.Collections.BitSet)"/>
<seealso cref="M:J2N.Collections.BitSet.Xor(J2N.Collections.BitSet)"/>
</member>
<member name="M:J2N.Collections.BitSet.AndNot(J2N.Collections.BitSet)">
<summary>
Clears all bits in the receiver which are also set in the <paramref name="bitSet"/> parameter.
The values of this <see cref="T:J2N.Collections.BitSet"/> are changed accordingly.
</summary>
<param name="bitSet"><see cref="T:J2N.Collections.BitSet"/> to ANDNOT with.</param>
<exception cref="T:System.ArgumentNullException">If <paramref name="bitSet"/> is <c>null</c>.</exception>
</member>
<member name="M:J2N.Collections.BitSet.Or(J2N.Collections.BitSet)">
<summary>
Performs the logical OR of this <see cref="T:J2N.Collections.BitSet"/> with another <see cref="T:J2N.Collections.BitSet"/>.
The values of this <see cref="T:J2N.Collections.BitSet"/> are changed accordingly.
</summary>
<param name="bitSet"><see cref="T:J2N.Collections.BitSet"/> to OR with.</param>
<exception cref="T:System.ArgumentNullException">If <paramref name="bitSet"/> is <c>null</c>.</exception>
<seealso cref="M:J2N.Collections.BitSet.Xor(J2N.Collections.BitSet)"/>
<seealso cref="M:J2N.Collections.BitSet.And(J2N.Collections.BitSet)"/>
</member>
<member name="M:J2N.Collections.BitSet.Xor(J2N.Collections.BitSet)">
<summary>
Performs the logical XOR of this <see cref="T:J2N.Collections.BitSet"/> with another <see cref="T:J2N.Collections.BitSet"/>.
The values of this <see cref="T:J2N.Collections.BitSet"/> are changed accordingly.
</summary>
<param name="bitSet"><see cref="T:J2N.Collections.BitSet"/> to XOR with.</param>
<exception cref="T:System.ArgumentNullException">If <paramref name="bitSet"/> is <c>null</c>.</exception>
<seealso cref="M:J2N.Collections.BitSet.Or(J2N.Collections.BitSet)"/>
<seealso cref="M:J2N.Collections.BitSet.And(J2N.Collections.BitSet)"/>
</member>
<member name="P:J2N.Collections.BitSet.Capacity">
<summary>
Returns the current capacity in bits (1 greater than the index of the last bit).</summary>
<seealso cref="P:J2N.Collections.BitSet.Length"/>
</member>
<member name="P:J2N.Collections.BitSet.Count">
<summary>
Deprecated. Gets the number of bits this <see cref="T:J2N.Collections.BitSet"/> has.
<para/>
Use <see cref="P:J2N.Collections.BitSet.Capacity"/> instead, as the name Count is not very clear what the property is intended for. This property is for compatibility purposes with the JDK bitset.
</summary>
<seealso cref="P:J2N.Collections.BitSet.Length"/>
</member>
<member name="P:J2N.Collections.BitSet.Length">
<summary>
Returns the number of bits up to and including the highest bit set.
</summary>
<returns>The length of the <see cref="T:J2N.Collections.BitSet"/>.</returns>
</member>
<member name="M:J2N.Collections.BitSet.ToString">
<summary>
Returns a string containing a concise, human-readable description of the
receiver.
</summary>
<returns>A comma delimited list of the indices of all bits that are set.</returns>
</member>
<member name="M:J2N.Collections.BitSet.NextSetBit(System.Int32)">
<summary>
Returns the position of the first bit that is <c>true</c> on or after <paramref name="position"/>.
</summary>
<param name="position">The starting position (inclusive).</param>
<returns>-1 if there is no bits that are set to <c>true</c> on or after <paramref name="position"/>.</returns>
<exception cref="T:System.ArgumentOutOfRangeException">If <paramref name="position"/> is less than zero.</exception>
</member>
<member name="M:J2N.Collections.BitSet.NextClearBit(System.Int32)">
<summary>
Returns the position of the first bit that is <c>false</c> on or after <paramref name="position"/>.
</summary>
<param name="position">The starting position (inclusive).</param>
<returns>the position of the next bit set to <c>false</c>, even if it is further
than this <see cref="T:J2N.Collections.BitSet"/>'s size.</returns>
<exception cref="T:System.ArgumentOutOfRangeException">If <paramref name="position"/> is less than zero.</exception>
</member>
<member name="P:J2N.Collections.BitSet.IsEmpty">
<summary>
Returns true if all the bits in this <see cref="T:J2N.Collections.BitSet"/> are set to false.
</summary>
<returns><c>true</c> if the <see cref="T:J2N.Collections.BitSet"/> is empty, <c>false</c> otherwise.</returns>
</member>
<member name="P:J2N.Collections.BitSet.Cardinality">
<summary>
Returns the number of bits that are <c>true</c> in this <see cref="T:J2N.Collections.BitSet"/>.
</summary>
<returns>The number of bits that are <c>true</c> in the set.</returns>
</member>
<member name="T:J2N.Collections.CollectionUtil">
<summary>
Static methods for assisting with making .NET collections check for equality and print
strings the same way they are done in Java.
</summary>
</member>
<member name="M:J2N.Collections.CollectionUtil.Equals``1(System.Collections.Generic.IList{``0},System.Collections.Generic.IList{``0})">
<summary>
The same implementation of Equals from Java's AbstractList
(the default implementation for all lists)
<para/>
This algorithm depends on the order of the items in the list.
It is recursive and will determine equality based on the values of
all nested collections.
<para/>
Note this operation currently only supports <see cref="T:System.Collections.Generic.IList`1"/>, <see cref="T:System.Collections.Generic.ISet`1"/>,
and <see cref="T:System.Collections.Generic.IDictionary`2"/>.
</summary>
</member>
<member name="M:J2N.Collections.CollectionUtil.Equals``1(System.Collections.Generic.ISet{``0},System.Collections.Generic.ISet{``0})">
<summary>
The same implementation of Equals from Java's AbstractSet
(the default implementation for all sets)
<para/>
This algoritm does not depend on the order of the items in the set.
It is recursive and will determine equality based on the values of
all nested collections.
<para/>
Note this operation currently only supports <see cref="T:System.Collections.Generic.IList`1"/>, <see cref="T:System.Collections.Generic.ISet`1"/>,
and <see cref="T:System.Collections.Generic.IDictionary`2"/>.
</summary>
</member>
<member name="M:J2N.Collections.CollectionUtil.Equals``2(System.Collections.Generic.IDictionary{``0,``1},System.Collections.Generic.IDictionary{``0,``1})">
<summary>
This is the same implemenation of Equals from Java's AbstractMap
(the default implementation of all dictionaries)
<para/>
This algoritm does not depend on the order of the items in the dictionary.
It is recursive and will determine equality based on the values of
all nested collections.
<para/>
Note this operation currently only supports <see cref="T:System.Collections.Generic.IList`1"/>, <see cref="T:System.Collections.Generic.ISet`1"/>,
and <see cref="T:System.Collections.Generic.IDictionary`2"/>.
</summary>
</member>
<member name="M:J2N.Collections.CollectionUtil.Equals(System.Object,System.Object)">
<summary>
A helper method to recursively determine equality based on
the values of the collection and all nested collections.
<para/>
Note this operation currently only supports <see cref="T:System.Collections.Generic.IList`1"/>, <see cref="T:System.Collections.Generic.ISet`1"/>,
and <see cref="T:System.Collections.Generic.IDictionary`2"/>.
</summary>
</member>
<member name="M:J2N.Collections.CollectionUtil.GetHashCode``1(System.Collections.Generic.IList{``0})">
<summary>
The same implementation of GetHashCode from Java's AbstractList
(the default implementation for all lists).
<para/>
This algorithm depends on the order of the items in the list.
It is recursive and will build the hash code based on the values of
all nested collections.
<para/>
Note this operation currently only supports <see cref="T:System.Collections.Generic.IList`1"/>, <see cref="T:System.Collections.Generic.ISet`1"/>,
and <see cref="T:System.Collections.Generic.IDictionary`2"/>.
</summary>
</member>
<member name="M:J2N.Collections.CollectionUtil.GetHashCode``1(System.Collections.Generic.ISet{``0})">
<summary>
The same implementation of GetHashCode from Java's AbstractSet
(the default implementation for all sets)
<para/>
This algorithm does not depend on the order of the items in the set.
It is recursive and will build the hash code based on the values of
all nested collections.
<para/>
Note this operation currently only supports <see cref="T:System.Collections.Generic.IList`1"/>, <see cref="T:System.Collections.Generic.ISet`1"/>,
and <see cref="T:System.Collections.Generic.IDictionary`2"/>.
</summary>
</member>
<member name="M:J2N.Collections.CollectionUtil.GetHashCode``2(System.Collections.Generic.IDictionary{``0,``1})">
<summary>
The same implementation of GetHashCode from Java's AbstractMap
(the default implementation for all dictionaries)
<para/>
This algoritm does not depend on the order of the items in the dictionary.
It is recursive and will build the hash code based on the values of
all nested collections.
<para/>
Note this operation currently only supports <see cref="T:System.Collections.Generic.IList`1"/>, <see cref="T:System.Collections.Generic.ISet`1"/>,
and <see cref="T:System.Collections.Generic.IDictionary`2"/>.
</summary>
</member>
<member name="M:J2N.Collections.CollectionUtil.GetHashCode(System.Object)">
<summary>
This method generally assists with the recursive GetHashCode() that
builds a hash code based on all of the values in a collection
including any nested collections (lists, sets, arrays, and dictionaries).
<para/>
Note this currently only supports <see cref="T:System.Collections.Generic.IList`1"/>, <see cref="T:System.Collections.Generic.ISet`1"/>,
and <see cref="T:System.Collections.Generic.IDictionary`2"/>.
</summary>
<param name="obj">the object to build the hash code for</param>
<returns>a value that represents the unique state of all of the values and
nested collection values in the object, provided the main object itself is
a collection, otherwise calls <see cref="M:System.Object.GetHashCode"/> on the
object that is passed.</returns>
</member>
<member name="M:J2N.Collections.CollectionUtil.ToString``1(System.IFormatProvider,System.String,System.Collections.Generic.ICollection{``0})">
<summary>
This is the same implementation of ToString from Java's AbstractCollection
(the default implementation for all sets and lists)
<para/>
This overload is intended to be called from within collections to bypass the
reflection/dynamic conversion of working out whether we are a collection type.
</summary>
</member>
<member name="M:J2N.Collections.CollectionUtil.ToString``1(System.Collections.Generic.ICollection{``0},System.IFormatProvider)">
<summary>
This is the same implementation of ToString from Java's AbstractCollection
(the default implementation for all sets and lists), plus the ability
to specify culture for formatting of nested numbers and dates. Note that
this overload will change the culture of the current thread.
</summary>
</member>
<member name="M:J2N.Collections.CollectionUtil.ToString``2(System.IFormatProvider,System.String,System.Collections.Generic.IDictionary{``0,``1})">
<summary>
This is the same implementation of ToString from Java's AbstractMap
(the default implementation for all dictionaries)
<para/>
This overload is intended to be called from within dictionaries to bypass the
reflection/dynamic conversion of working out whether we are a dictionary type.
</summary>
</member>
<member name="M:J2N.Collections.CollectionUtil.ToString``2(System.Collections.Generic.IDictionary{``0,``1},System.IFormatProvider)">
<summary>
This is the same implementation of ToString from Java's AbstractMap
(the default implementation for all dictionaries), plus the ability
to specify culture for formatting of nested numbers and dates. Note that
this overload will change the culture of the current thread.
</summary>
</member>
<member name="M:J2N.Collections.CollectionUtil.ToString(System.Object)">
<summary>
This is a helper method that assists with recursively building
a string of the current collection and all nested collections.
</summary>
</member>
<member name="M:J2N.Collections.CollectionUtil.ToString(System.Object,System.IFormatProvider)">
<summary>
This is a helper method that assists with recursively building
a string of the current collection and all nested collections, plus the ability
to specify culture for formatting of nested numbers and dates. Note that
this overload will change the culture of the current thread.
</summary>
</member>
<member name="T:J2N.Collections.Concurrent.LurchTableOrder">
<summary>
Defines if and how items added to a LurchTable are linked together, this defines
the value returned from Peek/Dequeue as the oldest entry of the specified operation.
</summary>
</member>
<member name="F:J2N.Collections.Concurrent.LurchTableOrder.None">
<summary> No linking </summary>
</member>
<member name="F:J2N.Collections.Concurrent.LurchTableOrder.Insertion">
<summary> Linked in insertion order </summary>
</member>
<member name="F:J2N.Collections.Concurrent.LurchTableOrder.Modified">
<summary> Linked by most recently inserted or updated </summary>
</member>
<member name="F:J2N.Collections.Concurrent.LurchTableOrder.Access">
<summary> Linked by most recently inserted, updated, or fetched </summary>
</member>
<member name="T:J2N.Collections.Concurrent.LurchTable`2">
<summary>
LurchTable stands for "Least Used Recently Concurrent Hash Table" and has definite
similarities to both the .NET 4 ConcurrentDictionary as well as Java's LinkedHashMap.
This gives you a thread-safe dictionary/hashtable that stores element ordering by
insertion, updates, or access. In addition it can be configured to use a 'hard-limit'
count of items that will automatically 'pop' the oldest item in the collection.
<para/>
Usage Note: Passing <see cref="F:J2N.Collections.Concurrent.LurchTableOrder.Access"/> to the constructor is similar
to passing <c>true</c> to the <c>accessOrder</c> parameter of Java's LinkedHashMap. It allows
<see cref="T:J2N.Collections.Concurrent.LurchTable`2"/> to be used as an LRU cache. However, unlike
LinkedHashMap, this implementation is thread-safe.
</summary>
<typeparam name="TKey">The type of keys in the dictionary.</typeparam>
<typeparam name="TValue">The type of values in the dictionary.</typeparam>
</member>
<member name="T:J2N.Collections.Concurrent.LurchTable`2.ItemUpdatedMethod">
<summary> Method signature for the ItemUpdated event </summary>
</member>
<member name="E:J2N.Collections.Concurrent.LurchTable`2.ItemRemoved">
<summary> Event raised after an item is removed from the collection </summary>
</member>
<member name="E:J2N.Collections.Concurrent.LurchTable`2.ItemUpdated">
<summary> Event raised after an item is updated in the collection </summary>
</member>
<member name="E:J2N.Collections.Concurrent.LurchTable`2.ItemAdded">
<summary> Event raised after an item is added to the collection </summary>
</member>
<member name="M:J2N.Collections.Concurrent.LurchTable`2.#ctor">
<summary>Initializes a new instance of <see cref="T:J2N.Collections.Concurrent.LurchTable`2"/>.</summary>
</member>
<member name="M:J2N.Collections.Concurrent.LurchTable`2.#ctor(System.Int32)">
<summary>Initializes a new instance of <see cref="T:J2N.Collections.Concurrent.LurchTable`2"/> that can store up to
<paramref name="capacity"/> items efficiently.</summary>
<param name="capacity">The initial allowable number of items before allocation of more memory.</param>
</member>
<member name="M:J2N.Collections.Concurrent.LurchTable`2.#ctor(System.Int32,J2N.Collections.Concurrent.LurchTableOrder)">
<summary>Initializes a new instance of <see cref="T:J2N.Collections.Concurrent.LurchTable`2"/> that can store up to
<paramref name="capacity"/> items efficiently.</summary>
<param name="capacity">The initial allowable number of items before allocation of more memory.</param>
<param name="ordering">The type of linking for the items.</param>
</member>
<member name="M:J2N.Collections.Concurrent.LurchTable`2.#ctor(System.Int32,J2N.Collections.Concurrent.LurchTableOrder,System.Collections.Generic.IEqualityComparer{`0})">
<summary>Initializes a new instance of <see cref="T:J2N.Collections.Concurrent.LurchTable`2"/> that can store up to
<paramref name="capacity"/> items efficiently with the specified <paramref name="comparer"/>.</summary>
<param name="capacity">The initial allowable number of items before allocation of more memory.</param>
<param name="ordering">The type of linking for the items.</param>
<param name="comparer">The element hash generator for keys, or <c>null</c> to use <see cref="P:J2N.Collections.Generic.EqualityComparer`1.Default"/>.</param>
</member>
<member name="M:J2N.Collections.Concurrent.LurchTable`2.#ctor(System.Collections.Generic.IEqualityComparer{`0})">
<summary>Initializes a new instance of <see cref="T:J2N.Collections.Concurrent.LurchTable`2"/> with the specified <paramref name="comparer"/>.</summary>
<param name="comparer">The element hash generator for keys, or <c>null</c> to use <see cref="P:J2N.Collections.Generic.EqualityComparer`1.Default"/>.</param>
</member>
<member name="M:J2N.Collections.Concurrent.LurchTable`2.#ctor(System.Int32,System.Collections.Generic.IEqualityComparer{`0})">
<summary>Initializes a new instance of <see cref="T:J2N.Collections.Concurrent.LurchTable`2"/> that can store up to
<paramref name="capacity"/> items efficiently with the specified <paramref name="comparer"/>.</summary>
<param name="capacity">The initial allowable number of items before allocation of more memory.</param>
<param name="comparer">The element hash generator for keys, or <c>null</c> to use <see cref="P:J2N.Collections.Generic.EqualityComparer`1.Default"/>.</param>
</member>
<member name="M:J2N.Collections.Concurrent.LurchTable`2.#ctor(J2N.Collections.Concurrent.LurchTableOrder,System.Int32)">
<summary>Initializes a new instance of <see cref="T:J2N.Collections.Concurrent.LurchTable`2"/> that orders items by
<paramref name="ordering"/> and removes items once the specified <paramref name="limit"/> is reached.</summary>
<param name="ordering">The type of linking for the items.</param>
<param name="limit">The maximum allowable number of items, or <see cref="F:System.Int32.MaxValue"/> for unlimited.</param>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="limit"/> is less than 1.
<para/>
-or-
<para/>
<paramref name="ordering"/> is <see cref="F:J2N.Collections.Concurrent.LurchTableOrder.None"/> and <paramref name="limit"/> is less than <see cref="F:System.Int32.MaxValue"/>.
</exception>
</member>
<member name="M:J2N.Collections.Concurrent.LurchTable`2.#ctor(J2N.Collections.Concurrent.LurchTableOrder,System.Int32,System.Collections.Generic.IEqualityComparer{`0})">
<summary>Initializes a new instance of <see cref="T:J2N.Collections.Concurrent.LurchTable`2"/> that orders items by
<paramref name="ordering"/> and removes items once the specified <paramref name="limit"/> is reached.</summary>
<param name="ordering">The type of linking for the items.</param>
<param name="limit">The maximum allowable number of items, or <see cref="F:System.Int32.MaxValue"/> for unlimited.</param>
<param name="comparer">The element hash generator for keys, or <c>null</c> to use <see cref="P:J2N.Collections.Generic.EqualityComparer`1.Default"/>.</param>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="limit"/> is less than 1.
<para/>
-or-
<para/>
<paramref name="ordering"/> is <see cref="F:J2N.Collections.Concurrent.LurchTableOrder.None"/> and <paramref name="limit"/> is less than <see cref="F:System.Int32.MaxValue"/>.
</exception>
</member>
<member name="M:J2N.Collections.Concurrent.LurchTable`2.#ctor(System.Int32,J2N.Collections.Concurrent.LurchTableOrder,System.Int32,System.Collections.Generic.IEqualityComparer{`0})">
<summary>
Initializes a new instance of <see cref="T:J2N.Collections.Concurrent.LurchTable`2"/> that can store up to
<paramref name="capacity"/> items efficiently, orders items by
<paramref name="ordering"/> and removes items once the specified <paramref name="limit"/> is reached.
</summary>
<param name="capacity">The initial allowable number of items before allocation of more memory.</param>
<param name="ordering">The type of linking for the items.</param>
<param name="limit">The maximum allowable number of items, or <see cref="F:System.Int32.MaxValue"/> for unlimited.</param>
<param name="comparer">The element hash generator for keys, or <c>null</c> to use <see cref="P:J2N.Collections.Generic.EqualityComparer`1.Default"/></param>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="capacity"/> is less than 0.
<para/>
-or-
<para/>
<paramref name="limit"/> is less than 1.
<para/>
-or-
<para/>
<paramref name="ordering"/> is <see cref="F:J2N.Collections.Concurrent.LurchTableOrder.None"/> and <paramref name="limit"/> is less than <see cref="F:System.Int32.MaxValue"/>.
</exception>
</member>
<member name="M:J2N.Collections.Concurrent.LurchTable`2.#ctor(J2N.Collections.Concurrent.LurchTableOrder,System.Int32,System.Int32,System.Int32,System.Int32,System.Collections.Generic.IEqualityComparer{`0})">
<summary>
Initializes a new instance of <see cref="T:J2N.Collections.Concurrent.LurchTable`2"/> that orders items by
<paramref name="ordering"/> and removes items once the specified <paramref name="limit"/> is reached.
</summary>
<param name="ordering">The type of linking for the items.</param>
<param name="limit">The maximum allowable number of items, or <see cref="F:System.Int32.MaxValue"/> for unlimited.</param>
<param name="hashSize">The number of hash buckets to use for the collection, usually 1/2 estimated capacity.</param>
<param name="allocSize">The number of entries to allocate at a time, usually 1/16 estimated capacity.</param>
<param name="lockSize">The number of concurrency locks to preallocate, usually 1/256 estimated capacity.</param>
<param name="comparer">The element hash generator for keys, or <c>null</c> to use <see cref="P:J2N.Collections.Generic.EqualityComparer`1.Default"/></param>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="limit"/> is less than 1.
<para/>
-or-
<para/>
<paramref name="ordering"/> is <see cref="F:J2N.Collections.Concurrent.LurchTableOrder.None"/> and <paramref name="limit"/> is less than <see cref="F:System.Int32.MaxValue"/>.
</exception>
</member>
<member name="M:J2N.Collections.Concurrent.LurchTable`2.#ctor(System.Collections.Generic.IDictionary{`0,`1})">
<summary>
Initializes a new instance of the <see cref="T:J2N.Collections.Concurrent.LurchTable`2"/> class that contains elements
copied from the specified <see cref="T:System.Collections.Generic.IDictionary`2"/> and uses the default equality comparer
for the key type.
</summary>
<param name="dictionary">The <see cref="T:System.Collections.Generic.IDictionary`2"/> whose elements are copied to the
new <see cref="T:J2N.Collections.Concurrent.LurchTable`2"/>.</param>
<exception cref="T:System.ArgumentNullException"><paramref name="dictionary"/> is <c>null</c>.</exception>
<exception cref="T:System.ArgumentException"><paramref name="dictionary"/> contains one or more duplicate keys.</exception>
<remarks>
Every key in a <see cref="T:J2N.Collections.Generic.Dictionary`2"/> must be unique according to the default equality
comparer; likewise, every key in the source <paramref name="dictionary"/> must also be unique according to the default
equality comparer.
<para/>
The initial capacity of the new <see cref="T:J2N.Collections.Generic.Dictionary`2"/> is large enough to contain all the
elements in <paramref name="dictionary"/>.
<para/>
<see cref="T:J2N.Collections.Generic.Dictionary`2"/> requires an equality implementation to determine whether keys are equal.
This constructor uses the default generic equality comparer, <see cref="P:J2N.Collections.Generic.EqualityComparer`1.Default"/>. If type
<typeparamref name="TKey"/> implements the <see cref="T:System.IEquatable`1"/> generic interface, the default equality
comparer uses that implementation. Alternatively, you can specify an implementation of the <see cref="T:System.Collections.Generic.IEqualityComparer`1"/>
generic interface by using a constructor that accepts a comparer parameter.
<para/>
This constructor is an O(n) operation, where n is the number of elements in <paramref name="dictionary"/>.
</remarks>
</member>
<member name="M:J2N.Collections.Concurrent.LurchTable`2.#ctor(System.Collections.Generic.IDictionary{`0,`1},J2N.Collections.Concurrent.LurchTableOrder)">
<summary>
Initializes a new instance of the <see cref="T:J2N.Collections.Concurrent.LurchTable`2"/> class that contains elements
copied from the specified <see cref="T:System.Collections.Generic.IDictionary`2"/> and uses the default equality comparer
for the key type.
</summary>
<param name="dictionary">The <see cref="T:System.Collections.Generic.IDictionary`2"/> whose elements are copied to the
new <see cref="T:J2N.Collections.Concurrent.LurchTable`2"/>.</param>
<param name="ordering">The type of linking for the items.</param>
<exception cref="T:System.ArgumentNullException"><paramref name="dictionary"/> is <c>null</c>.</exception>
<exception cref="T:System.ArgumentException"><paramref name="dictionary"/> contains one or more duplicate keys.</exception>
<remarks>
Every key in a <see cref="T:J2N.Collections.Generic.Dictionary`2"/> must be unique according to the default equality
comparer; likewise, every key in the source <paramref name="dictionary"/> must also be unique according to the default
equality comparer.
<para/>
The initial capacity of the new <see cref="T:J2N.Collections.Generic.Dictionary`2"/> is large enough to contain all the
elements in <paramref name="dictionary"/>.
<para/>
<see cref="T:J2N.Collections.Generic.Dictionary`2"/> requires an equality implementation to determine whether keys are equal.
This constructor uses the default generic equality comparer, <see cref="P:J2N.Collections.Generic.EqualityComparer`1.Default"/>. If type
<typeparamref name="TKey"/> implements the <see cref="T:System.IEquatable`1"/> generic interface, the default equality
comparer uses that implementation. Alternatively, you can specify an implementation of the <see cref="T:System.Collections.Generic.IEqualityComparer`1"/>
generic interface by using a constructor that accepts a comparer parameter.
<para/>
This constructor is an O(n) operation, where n is the number of elements in <paramref name="dictionary"/>.
</remarks>
</member>
<member name="M:J2N.Collections.Concurrent.LurchTable`2.#ctor(System.Collections.Generic.IDictionary{`0,`1},System.Collections.Generic.IEqualityComparer{`0})">
<summary>
Initializes a new instance of the <see cref="T:J2N.Collections.Concurrent.LurchTable`2"/> class that contains elements copied
from the specified <see cref="T:System.Collections.Generic.IDictionary`2"/> and uses the specified <see cref="T:System.Collections.Generic.IEqualityComparer`1"/>.
</summary>
<param name="dictionary">The <see cref="T:System.Collections.Generic.IDictionary`2"/> whose elements are copied to the new
<see cref="T:J2N.Collections.Concurrent.LurchTable`2"/>.</param>
<param name="comparer">The <see cref="T:System.Collections.Generic.IEqualityComparer`1"/> implementation to use when comparing keys, or <c>null</c>
to use the default <see cref="T:J2N.Collections.Generic.EqualityComparer`1"/> for the type of the key.</param>
<exception cref="T:System.ArgumentNullException"><paramref name="dictionary"/> is <c>null</c>.</exception>
<exception cref="T:System.ArgumentException"><paramref name="dictionary"/> contains one or more duplicate keys.</exception>
<remarks>
Use this constructor with the case-insensitive string comparers provided by the <see cref="T:System.StringComparer"/>
class to create dictionaries with case-insensitive string keys.
<para/>
Every key in a <see cref="T:J2N.Collections.Generic.Dictionary`2"/> must be unique according to the specified comparer;
likewise, every key in the source <paramref name="dictionary"/> must also be unique according to the specified comparer.
<para/>
NOTE: For example, duplicate keys can occur if <paramref name="comparer"/> is one of the case-insensitive string
comparers provided by the <see cref="T:System.StringComparer"/> class and <paramref name="dictionary"/> does not use a
case-insensitive comparer key.
<para/>
The initial capacity of the new <see cref="T:J2N.Collections.Generic.Dictionary`2"/> is large enough to contain all the elements in
<paramref name="dictionary"/>.
<para/>
<see cref="T:J2N.Collections.Generic.Dictionary`2"/> requires an equality implementation to determine whether keys are equal.
If comparer is <c>null</c>, this constructor uses the default generic equality comparer, <see cref="P:J2N.Collections.Generic.EqualityComparer`1.Default"/>.
If type <typeparamref name="TKey"/> implements the <see cref="T:System.IEquatable`1"/> generic interface, the default equality
comparer uses that implementation.
<para/>
This constructor is an O(<c>n</c>) operation, where <c>n</c> is the number of elements in <paramref name="dictionary"/>.
</remarks>
</member>
<member name="M:J2N.Collections.Concurrent.LurchTable`2.#ctor(System.Collections.Generic.IDictionary{`0,`1},J2N.Collections.Concurrent.LurchTableOrder,System.Collections.Generic.IEqualityComparer{`0})">
<summary>
Initializes a new instance of the <see cref="T:J2N.Collections.Concurrent.LurchTable`2"/> class that contains elements copied
from the specified <see cref="T:System.Collections.Generic.IDictionary`2"/> and uses the specified <see cref="T:System.Collections.Generic.IEqualityComparer`1"/>.
</summary>
<param name="dictionary">The <see cref="T:System.Collections.Generic.IDictionary`2"/> whose elements are copied to the new
<see cref="T:J2N.Collections.Concurrent.LurchTable`2"/>.</param>
<param name="ordering">The type of linking for the items.</param>
<param name="comparer">The <see cref="T:System.Collections.Generic.IEqualityComparer`1"/> implementation to use when comparing keys, or <c>null</c>
to use the default <see cref="T:J2N.Collections.Generic.EqualityComparer`1"/> for the type of the key.</param>
<exception cref="T:System.ArgumentNullException"><paramref name="dictionary"/> is <c>null</c>.</exception>
<exception cref="T:System.ArgumentException"><paramref name="dictionary"/> contains one or more duplicate keys.</exception>
<remarks>
Use this constructor with the case-insensitive string comparers provided by the <see cref="T:System.StringComparer"/>
class to create dictionaries with case-insensitive string keys.
<para/>
Every key in a <see cref="T:J2N.Collections.Generic.Dictionary`2"/> must be unique according to the specified comparer;
likewise, every key in the source <paramref name="dictionary"/> must also be unique according to the specified comparer.
<para/>
NOTE: For example, duplicate keys can occur if <paramref name="comparer"/> is one of the case-insensitive string
comparers provided by the <see cref="T:System.StringComparer"/> class and <paramref name="dictionary"/> does not use a
case-insensitive comparer key.
<para/>
The initial capacity of the new <see cref="T:J2N.Collections.Generic.Dictionary`2"/> is large enough to contain all the elements in
<paramref name="dictionary"/>.
<para/>
<see cref="T:J2N.Collections.Generic.Dictionary`2"/> requires an equality implementation to determine whether keys are equal.
If comparer is <c>null</c>, this constructor uses the default generic equality comparer, <see cref="P:J2N.Collections.Generic.EqualityComparer`1.Default"/>.
If type <typeparamref name="TKey"/> implements the <see cref="T:System.IEquatable`1"/> generic interface, the default equality
comparer uses that implementation.
<para/>
This constructor is an O(<c>n</c>) operation, where <c>n</c> is the number of elements in <paramref name="dictionary"/>.
</remarks>
</member>
<member name="M:J2N.Collections.Concurrent.LurchTable`2.#ctor(System.Collections.Generic.IDictionary{`0,`1},J2N.Collections.Concurrent.LurchTableOrder,System.Int32,System.Collections.Generic.IEqualityComparer{`0})">
<summary>
Initializes a new instance of the <see cref="T:J2N.Collections.Concurrent.LurchTable`2"/> class that contains elements copied
from the specified <see cref="T:System.Collections.Generic.IDictionary`2"/> and uses the specified <see cref="T:System.Collections.Generic.IEqualityComparer`1"/>.
</summary>
<param name="dictionary">The <see cref="T:System.Collections.Generic.IDictionary`2"/> whose elements are copied to the new
<see cref="T:J2N.Collections.Concurrent.LurchTable`2"/>.</param>
<param name="ordering">The type of linking for the items.</param>
<param name="limit">The maximum allowable number of items, or <see cref="F:System.Int32.MaxValue"/> for unlimited.</param>
<param name="comparer">The <see cref="T:System.Collections.Generic.IEqualityComparer`1"/> implementation to use when comparing keys, or <c>null</c>
to use the default <see cref="T:J2N.Collections.Generic.EqualityComparer`1"/> for the type of the key.</param>
<exception cref="T:System.ArgumentNullException"><paramref name="dictionary"/> is <c>null</c>.</exception>
<exception cref="T:System.ArgumentException"><paramref name="dictionary"/> contains one or more duplicate keys.</exception>
<remarks>
Use this constructor with the case-insensitive string comparers provided by the <see cref="T:System.StringComparer"/>
class to create dictionaries with case-insensitive string keys.
<para/>
Every key in a <see cref="T:J2N.Collections.Generic.Dictionary`2"/> must be unique according to the specified comparer;
likewise, every key in the source <paramref name="dictionary"/> must also be unique according to the specified comparer.
<para/>
NOTE: For example, duplicate keys can occur if <paramref name="comparer"/> is one of the case-insensitive string
comparers provided by the <see cref="T:System.StringComparer"/> class and <paramref name="dictionary"/> does not use a
case-insensitive comparer key.
<para/>
The initial capacity of the new <see cref="T:J2N.Collections.Generic.Dictionary`2"/> is large enough to contain all the elements in
<paramref name="dictionary"/>.
<para/>
<see cref="T:J2N.Collections.Generic.Dictionary`2"/> requires an equality implementation to determine whether keys are equal.
If comparer is <c>null</c>, this constructor uses the default generic equality comparer, <see cref="P:J2N.Collections.Generic.EqualityComparer`1.Default"/>.
If type <typeparamref name="TKey"/> implements the <see cref="T:System.IEquatable`1"/> generic interface, the default equality
comparer uses that implementation.
<para/>
This constructor is an O(<c>n</c>) operation, where <c>n</c> is the number of elements in <paramref name="dictionary"/>.
</remarks>
</member>
<member name="M:J2N.Collections.Concurrent.LurchTable`2.#ctor(System.Collections.Generic.IEnumerable{System.Collections.Generic.KeyValuePair{`0,`1}})">
<summary>
Initializes a new instance of the <see cref="T:J2N.Collections.Concurrent.LurchTable`2"/> class that contains elements
copied from the specified <see cref="T:System.Collections.Generic.IDictionary`2"/> and uses the default equality comparer
for the key type.
</summary>
<param name="collection">The <see cref="T:IEnumerable{KeyValuePair{TKey, TValue}}"/> whose elements are copied to the
new <see cref="T:J2N.Collections.Concurrent.LurchTable`2"/>.</param>
<exception cref="T:System.ArgumentNullException"><paramref name="collection"/> is <c>null</c>.</exception>
<exception cref="T:System.ArgumentException"><paramref name="collection"/> contains one or more duplicate keys.</exception>
<remarks>
Every key in a <see cref="T:J2N.Collections.Concurrent.LurchTable`2"/> must be unique according to the default equality
comparer; likewise, every key in the source <paramref name="collection"/> must also be unique according to the default
equality comparer.
<para/>
The initial capacity of the new <see cref="T:J2N.Collections.Generic.Dictionary`2"/> is large enough to contain all the
elements in <paramref name="collection"/>.
<para/>
<see cref="T:J2N.Collections.Concurrent.LurchTable`2"/> requires an equality implementation to determine whether keys are equal.
This constructor uses the default generic equality comparer, <see cref="P:J2N.Collections.Generic.EqualityComparer`1.Default"/>. If type
<typeparamref name="TKey"/> implements the <see cref="T:System.IEquatable`1"/> generic interface, the default equality
comparer uses that implementation. Alternatively, you can specify an implementation of the <see cref="T:System.Collections.Generic.IEqualityComparer`1"/>
generic interface by using a constructor that accepts a comparer parameter.
<para/>
This constructor is an O(n) operation, where n is the number of elements in <paramref name="collection"/>.
</remarks>
</member>
<member name="M:J2N.Collections.Concurrent.LurchTable`2.#ctor(System.Collections.Generic.IEnumerable{System.Collections.Generic.KeyValuePair{`0,`1}},J2N.Collections.Concurrent.LurchTableOrder)">
<summary>
Initializes a new instance of the <see cref="T:J2N.Collections.Concurrent.LurchTable`2"/> class that contains elements
copied from the specified <see cref="T:System.Collections.Generic.IDictionary`2"/> and uses the default equality comparer
for the key type.
</summary>
<param name="collection">The <see cref="T:IEnumerable{KeyValuePair{TKey, TValue}}"/> whose elements are copied to the
new <see cref="T:J2N.Collections.Concurrent.LurchTable`2"/>.</param>
<param name="ordering">The type of linking for the items.</param>
<exception cref="T:System.ArgumentNullException"><paramref name="collection"/> is <c>null</c>.</exception>
<exception cref="T:System.ArgumentException"><paramref name="collection"/> contains one or more duplicate keys.</exception>
<remarks>
Every key in a <see cref="T:J2N.Collections.Concurrent.LurchTable`2"/> must be unique according to the default equality
comparer; likewise, every key in the source <paramref name="collection"/> must also be unique according to the default
equality comparer.
<para/>
The initial capacity of the new <see cref="T:J2N.Collections.Generic.Dictionary`2"/> is large enough to contain all the
elements in <paramref name="collection"/>.
<para/>
<see cref="T:J2N.Collections.Concurrent.LurchTable`2"/> requires an equality implementation to determine whether keys are equal.
This constructor uses the default generic equality comparer, <see cref="P:J2N.Collections.Generic.EqualityComparer`1.Default"/>. If type
<typeparamref name="TKey"/> implements the <see cref="T:System.IEquatable`1"/> generic interface, the default equality
comparer uses that implementation. Alternatively, you can specify an implementation of the <see cref="T:System.Collections.Generic.IEqualityComparer`1"/>
generic interface by using a constructor that accepts a comparer parameter.
<para/>
This constructor is an O(n) operation, where n is the number of elements in <paramref name="collection"/>.
</remarks>
</member>
<member name="M:J2N.Collections.Concurrent.LurchTable`2.#ctor(System.Collections.Generic.IEnumerable{System.Collections.Generic.KeyValuePair{`0,`1}},System.Collections.Generic.IEqualityComparer{`0})">
<summary>
Initializes a new instance of the <see cref="T:J2N.Collections.Concurrent.LurchTable`2"/> class that contains elements copied
from the specified <see cref="T:System.Collections.Generic.IDictionary`2"/> and uses the specified <see cref="T:System.Collections.Generic.IEqualityComparer`1"/>.
</summary>
<param name="collection">The <see cref="T:IEnumerable{KeyValuePair{TKey, TValue}}"/> whose elements are copied to the new
<see cref="T:J2N.Collections.Concurrent.LurchTable`2"/>.</param>
<param name="comparer">The <see cref="T:System.Collections.Generic.IEqualityComparer`1"/> implementation to use when comparing keys, or <c>null</c>
to use the default <see cref="T:J2N.Collections.Generic.EqualityComparer`1"/> for the type of the key.</param>
<exception cref="T:System.ArgumentNullException"><paramref name="collection"/> is <c>null</c>.</exception>
<exception cref="T:System.ArgumentException"><paramref name="collection"/> contains one or more duplicate keys.</exception>
<remarks>
Use this constructor with the case-insensitive string comparers provided by the <see cref="T:System.StringComparer"/>
class to create dictionaries with case-insensitive string keys.
<para/>
Every key in a <see cref="T:J2N.Collections.Generic.Dictionary`2"/> must be unique according to the specified comparer;
likewise, every key in the source <paramref name="collection"/> must also be unique according to the specified comparer.
<para/>
NOTE: For example, duplicate keys can occur if <paramref name="comparer"/> is one of the case-insensitive string
comparers provided by the <see cref="T:System.StringComparer"/> class and <paramref name="collection"/> does not use a
case-insensitive comparer key.
<para/>
The initial capacity of the new <see cref="T:J2N.Collections.Concurrent.LurchTable`2"/> is large enough to contain all the elements in
<paramref name="collection"/>.
<para/>
<see cref="T:J2N.Collections.Concurrent.LurchTable`2"/> requires an equality implementation to determine whether keys are equal.
If comparer is <c>null</c>, this constructor uses the default generic equality comparer, <see cref="P:J2N.Collections.Generic.EqualityComparer`1.Default"/>.
If type <typeparamref name="TKey"/> implements the <see cref="T:System.IEquatable`1"/> generic interface, the default equality
comparer uses that implementation.
<para/>
This constructor is an O(<c>n</c>) operation, where <c>n</c> is the number of elements in <paramref name="collection"/>.
</remarks>
</member>
<member name="M:J2N.Collections.Concurrent.LurchTable`2.#ctor(System.Collections.Generic.IEnumerable{System.Collections.Generic.KeyValuePair{`0,`1}},J2N.Collections.Concurrent.LurchTableOrder,System.Collections.Generic.IEqualityComparer{`0})">
<summary>
Initializes a new instance of the <see cref="T:J2N.Collections.Concurrent.LurchTable`2"/> class that contains elements copied
from the specified <see cref="T:System.Collections.Generic.IDictionary`2"/> and uses the specified <see cref="T:System.Collections.Generic.IEqualityComparer`1"/>.
</summary>
<param name="collection">The <see cref="T:IEnumerable{KeyValuePair{TKey, TValue}}"/> whose elements are copied to the new
<see cref="T:J2N.Collections.Concurrent.LurchTable`2"/>.</param>
<param name="ordering">The type of linking for the items.</param>
<param name="comparer">The <see cref="T:System.Collections.Generic.IEqualityComparer`1"/> implementation to use when comparing keys, or <c>null</c>
to use the default <see cref="T:J2N.Collections.Generic.EqualityComparer`1"/> for the type of the key.</param>
<exception cref="T:System.ArgumentNullException"><paramref name="collection"/> is <c>null</c>.</exception>
<exception cref="T:System.ArgumentException"><paramref name="collection"/> contains one or more duplicate keys.</exception>
<remarks>
Use this constructor with the case-insensitive string comparers provided by the <see cref="T:System.StringComparer"/>
class to create dictionaries with case-insensitive string keys.
<para/>
Every key in a <see cref="T:J2N.Collections.Generic.Dictionary`2"/> must be unique according to the specified comparer;
likewise, every key in the source <paramref name="collection"/> must also be unique according to the specified comparer.
<para/>
NOTE: For example, duplicate keys can occur if <paramref name="comparer"/> is one of the case-insensitive string
comparers provided by the <see cref="T:System.StringComparer"/> class and <paramref name="collection"/> does not use a
case-insensitive comparer key.
<para/>
The initial capacity of the new <see cref="T:J2N.Collections.Concurrent.LurchTable`2"/> is large enough to contain all the elements in
<paramref name="collection"/>.
<para/>
<see cref="T:J2N.Collections.Concurrent.LurchTable`2"/> requires an equality implementation to determine whether keys are equal.
If comparer is <c>null</c>, this constructor uses the default generic equality comparer, <see cref="P:J2N.Collections.Generic.EqualityComparer`1.Default"/>.
If type <typeparamref name="TKey"/> implements the <see cref="T:System.IEquatable`1"/> generic interface, the default equality
comparer uses that implementation.
<para/>
This constructor is an O(<c>n</c>) operation, where <c>n</c> is the number of elements in <paramref name="collection"/>.
</remarks>
</member>
<member name="M:J2N.Collections.Concurrent.LurchTable`2.#ctor(System.Collections.Generic.IEnumerable{System.Collections.Generic.KeyValuePair{`0,`1}},J2N.Collections.Concurrent.LurchTableOrder,System.Int32,System.Collections.Generic.IEqualityComparer{`0})">
<summary>
Initializes a new instance of the <see cref="T:J2N.Collections.Concurrent.LurchTable`2"/> class that contains elements copied
from the specified <see cref="T:System.Collections.Generic.IDictionary`2"/> and uses the specified <paramref name="ordering"/>,
<paramref name="limit"/> and <see cref="T:System.Collections.Generic.IEqualityComparer`1"/>.
</summary>
<param name="collection">The <see cref="T:IEnumerable{KeyValuePair{TKey, TValue}}"/> whose elements are copied to the new
<see cref="T:J2N.Collections.Concurrent.LurchTable`2"/>.</param>
<param name="ordering">The type of linking for the items.</param>
<param name="limit">The maximum allowable number of items, or <see cref="F:System.Int32.MaxValue"/> for unlimited.</param>
<param name="comparer">The <see cref="T:System.Collections.Generic.IEqualityComparer`1"/> implementation to use when comparing keys, or <c>null</c>
to use the default <see cref="T:J2N.Collections.Generic.EqualityComparer`1"/> for the type of the key.</param>
<exception cref="T:System.ArgumentNullException"><paramref name="collection"/> is <c>null</c>.</exception>
<exception cref="T:System.ArgumentException"><paramref name="collection"/> contains one or more duplicate keys.</exception>
<remarks>
Use this constructor with the case-insensitive string comparers provided by the <see cref="T:System.StringComparer"/>
class to create dictionaries with case-insensitive string keys.
<para/>
Every key in a <see cref="T:J2N.Collections.Generic.Dictionary`2"/> must be unique according to the specified comparer;
likewise, every key in the source <paramref name="collection"/> must also be unique according to the specified comparer.
<para/>
NOTE: For example, duplicate keys can occur if <paramref name="comparer"/> is one of the case-insensitive string
comparers provided by the <see cref="T:System.StringComparer"/> class and <paramref name="collection"/> does not use a
case-insensitive comparer key.
<para/>
The initial capacity of the new <see cref="T:J2N.Collections.Concurrent.LurchTable`2"/> is large enough to contain all the elements in
<paramref name="collection"/>.
<para/>
<see cref="T:J2N.Collections.Concurrent.LurchTable`2"/> requires an equality implementation to determine whether keys are equal.
If comparer is <c>null</c>, this constructor uses the default generic equality comparer, <see cref="P:J2N.Collections.Generic.EqualityComparer`1.Default"/>.
If type <typeparamref name="TKey"/> implements the <see cref="T:System.IEquatable`1"/> generic interface, the default equality
comparer uses that implementation.
<para/>
This constructor is an O(<c>n</c>) operation, where <c>n</c> is the number of elements in <paramref name="collection"/>.
</remarks>
</member>
<member name="M:J2N.Collections.Concurrent.LurchTable`2.Dispose">
<summary>
Clears references to all objects and invalidates the collection.
</summary>
</member>
<member name="M:J2N.Collections.Concurrent.LurchTable`2.Dispose(System.Boolean)">
<summary>
Clears references to all objects and invalidates the collection.
</summary>
</member>
<member name="P:J2N.Collections.Concurrent.LurchTable`2.Count">
<summary>
Gets the number of elements contained in the <see cref="T:System.Collections.Generic.ICollection`1"/>.
</summary>
</member>
<member name="P:J2N.Collections.Concurrent.LurchTable`2.IsEmpty">
<summary>
Gets a value that indicates whether the <see cref="T:J2N.Collections.Concurrent.LurchTable`2"/> is empty.
</summary>
<value><c>true</c> if the <see cref="T:J2N.Collections.Concurrent.LurchTable`2"/> is empty; otherwise,
<c>false</c>.</value>
</member>
<member name="P:J2N.Collections.Concurrent.LurchTable`2.Ordering">
<summary>
Retrieves the <see cref="T:J2N.Collections.Concurrent.LurchTableOrder"/> ordering enumeration this instance was created with.
</summary>
</member>
<member name="P:J2N.Collections.Concurrent.LurchTable`2.EqualityComparer">
<summary>
Retrives the key comparer being used by this instance.
</summary>
</member>
<member name="P:J2N.Collections.Concurrent.LurchTable`2.Limit">
<summary>
Gets or sets the record limit allowed in this instance.
</summary>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="value"/> is less than 1.
<para/>
-or-
<para/>
<see cref="P:J2N.Collections.Concurrent.LurchTable`2.Ordering"/> is <see cref="F:J2N.Collections.Concurrent.LurchTableOrder.None"/> and <paramref name="value"/> is less than <see cref="F:System.Int32.MaxValue"/>.
</exception>
</member>
<member name="M:J2N.Collections.Concurrent.LurchTable`2.Initialize">
<summary>
WARNING: not thread-safe, reinitializes all internal structures. Use Clear() for a thread-safe
delete all. If you have externally provided exclusive access using <see cref="P:System.Collections.ICollection.SyncRoot"/>
this method may be used to more efficiently clear the collection.
</summary>
<exception cref="T:J2N.Collections.Concurrent.LurchTableCorruptionException">If the data in the table is corrupted due to unsynchronized updates.</exception>
</member>
<member name="M:J2N.Collections.Concurrent.LurchTable`2.ContainsValue(`1)">
<summary>
Determines whether the <see cref="T:J2N.Collections.Concurrent.LurchTable`2"/> contains an element with
the specified value.
</summary>
<param name="value">The value to locate in the <see cref="T:J2N.Collections.Concurrent.LurchTable`2"/>. The value can be <c>null</c>.</param>
<returns><c>true</c> if the <see cref="T:J2N.Collections.Concurrent.LurchTable`2"/> contains an element
with the specified value; otherwise, <c>false</c>.</returns>
<remarks>
This method determines equality using J2N's default equality comparer <see cref="P:J2N.Collections.Generic.EqualityComparer`1.Default"/>
for the value type <typeparamref name="TValue"/>.
<para/>
This method performs a linear search; therefore, the average execution time is proportional to the <see cref="P:J2N.Collections.Concurrent.LurchTable`2.Count"/> property.
That is, this method is an O(<c>n</c>) operation, where <c>n</c> is <see cref="P:J2N.Collections.Concurrent.LurchTable`2.Count"/>.
</remarks>
</member>
<member name="M:J2N.Collections.Concurrent.LurchTable`2.ContainsValue(`1,System.Collections.Generic.IEqualityComparer{`1})">
<summary>
Determines whether the <see cref="T:J2N.Collections.Concurrent.LurchTable`2"/> contains a specific value
as determined by the provided <paramref name="valueComparer"/>.
</summary>
<param name="value">The value to locate in the <see cref="T:J2N.Collections.Concurrent.LurchTable`2"/>.
The value can be <c>null</c> for reference types.</param>
<param name="valueComparer">The <see cref="T:System.Collections.Generic.IEqualityComparer`1"/> to use
to test each value for equality.</param>
<returns><c>true</c> if the <see cref="T:J2N.Collections.Concurrent.LurchTable`2"/> contains an element
with the specified value; otherwise, <c>false</c>.</returns>
<remarks>
This method performs a linear search; therefore, the average execution time
is proportional to <see cref="P:J2N.Collections.Concurrent.LurchTable`2.Count"/>. That is, this method is an O(<c>n</c>) operation,
where <c>n</c> is <see cref="P:J2N.Collections.Concurrent.LurchTable`2.Count"/>.
</remarks>
</member>
<member name="M:J2N.Collections.Concurrent.LurchTable`2.AsReadOnly">
<summary>
Returns a read-only <see cref="T:J2N.Collections.ObjectModel.ReadOnlyDictionary`2"/> wrapper for the current collection.
</summary>
<returns>An object that acts as a read-only wrapper around the current <see cref="T:J2N.Collections.Concurrent.LurchTable`2"/>.</returns>
<remarks>
To prevent any modifications to the <see cref="T:J2N.Collections.Concurrent.LurchTable`2"/> object, expose it only through this wrapper.
A <see cref="T:J2N.Collections.ObjectModel.ReadOnlyDictionary`2"/> object does not expose methods that modify the collection. However,
if changes are made to the underlying <see cref="T:J2N.Collections.Concurrent.LurchTable`2"/> object, the read-only collection reflects those changes.
<para/>
This method is an O(1) operation.
</remarks>
</member>
<member name="P:J2N.Collections.Concurrent.LurchTable`2.System#Collections#ICollection#IsSynchronized">
<summary>
Gets a value indicating whether access to the <see cref="T:System.Collections.ICollection"/> is
synchronized with the <see cref="P:J2N.Collections.Concurrent.LurchTable`2.SyncRoot"/>.
</summary>
<value><c>true</c> if access to the <see cref="T:System.Collections.ICollection"/> is synchronized
(thread safe); otherwise, <c>false</c>. For <see
cref="T:J2N.Collections.Concurrent.LurchTable`2"/>, this property always
returns <c>false</c>.</value>
</member>
<member name="M:J2N.Collections.Concurrent.LurchTable`2.Clear">
<summary>
Removes all items from the <see cref="T:System.Collections.Generic.ICollection`1"/>.
</summary>
<exception cref="T:System.ObjectDisposedException"><see cref="M:J2N.Collections.Concurrent.LurchTable`2.Dispose"/> has already been called.</exception>
</member>
<member name="M:J2N.Collections.Concurrent.LurchTable`2.ContainsKey(`0)">
<summary>
Determines whether the <see cref="T:System.Collections.Generic.IDictionary`2"/> contains an element with the specified key.
</summary>
<exception cref="T:System.ObjectDisposedException"><see cref="M:J2N.Collections.Concurrent.LurchTable`2.Dispose"/> has already been called.</exception>
</member>
<member name="P:J2N.Collections.Concurrent.LurchTable`2.Item(`0)">
<summary>
Gets or sets the value associated with the specified key. The key may be <c>null</c>.
</summary>
<param name="key">The key of the value to get or set.</param>
<returns>The value associated with the specified key. If the specified key
is not found, a get operation throws a <see cref="T:System.Collections.Generic.KeyNotFoundException"/>, and
a set operation creates a new element with the specified key.</returns>
<exception cref="T:System.Collections.Generic.KeyNotFoundException">The property is retrieved and <paramref name="key"/>
does not exist in the collection.</exception>
<remarks>
This property provides the ability to access a specific element in the collection by using
the following C# syntax: <c>myCollection[key]</c> (<c>myCollection(key)</c> in Visual Basic).
<para/>
You can also use the <see cref="P:J2N.Collections.Concurrent.LurchTable`2.Item(`0)"/> property to add new elements by setting the value of a key
that does not exist in the <see cref="T:J2N.Collections.Concurrent.LurchTable`2"/>; for example,
<c>myCollection["myNonexistentKey"] = myValue</c>. However, if the specified key already exists in
the <see cref="T:J2N.Collections.Concurrent.LurchTable`2"/>, setting the <see cref="P:J2N.Collections.Concurrent.LurchTable`2.Item(`0)"/> property overwrites
the old value. In contrast, the <see cref="M:J2N.Collections.Concurrent.LurchTable`2.Add(`0,`1)"/> method does not modify existing elements.
<para/>
Both keys and values can be <c>null</c> if either <see cref="T:System.Nullable`1"/> or a reference type.
<para/>
The C# language uses the <see cref="P:J2N.Collections.Concurrent.LurchTable`2.Item(`0)"/> keyword to define the indexers instead of implementing the
<c>Item[TKey]</c> property. Visual Basic implements <c>Item[TKey]</c> as a default property, which provides
the same indexing functionality.
</remarks>
</member>
<member name="M:J2N.Collections.Concurrent.LurchTable`2.TryGetValue(`0,`1@)">
<summary>
Gets the value associated with the specified key.
</summary>
<returns>
<c>true</c> if the object that implements <see cref="T:System.Collections.Generic.IDictionary`2"/>
contains an element with the specified key; otherwise, <c>false</c>.
</returns>
</member>
<member name="M:J2N.Collections.Concurrent.LurchTable`2.Add(`0,`1)">
<summary>
Adds an element with the provided key and value to the <see cref="T:System.Collections.Generic.IDictionary`2"/>.
</summary>
<param name="key">The key of the element to add.</param>
<param name="value">The value of the element to add. The value can be <c>null</c> for reference types.</param>
<exception cref="T:System.ArgumentException">An element with the same key already exists
in the <see cref="T:J2N.Collections.Generic.Dictionary`2"/>.</exception>
</member>
<member name="M:J2N.Collections.Concurrent.LurchTable`2.Remove(`0)">
<summary>
Removes the element with the specified key from the <see cref="T:System.Collections.Generic.IDictionary`2"/>.
</summary>
<param name="key">The key of the element to remove.</param>
<returns>
<c>true</c> if the element is successfully removed; otherwise, <c>false</c>. This method also returns <c>false</c>
if <paramref name="key"/> was not found in the original <see cref="T:System.Collections.Generic.IDictionary`2"/>.
</returns>
</member>
<member name="M:J2N.Collections.Concurrent.LurchTable`2.GetOrAdd(`0,`1)">
<summary>
Adds a key/value pair to the <see cref="T:System.Collections.Generic.IDictionary`2"/> if the key does not already exist.
</summary>
<param name="key">The key of the element to add.</param>
<param name="value">The value to be added, if the key does not already exist.</param>
<returns>The value for the key. This will be either the existing value for the key if the key is already
in the dictionary, or the new value if the key was not in the dictionary.</returns>
</member>
<member name="M:J2N.Collections.Concurrent.LurchTable`2.TryAdd(`0,`1)">
<summary>
Adds an element with the provided key and value to the <see cref="T:System.Collections.Generic.IDictionary`2"/>.
</summary>
<param name="key">The object to use as the key of the element to add.</param>
<param name="value">The object to use as the value of the element to add.</param>
<returns><c>true</c> if the value was successfully added; otherwise, <c>false</c>.</returns>
</member>
<member name="M:J2N.Collections.Concurrent.LurchTable`2.TryUpdate(`0,`1)">
<summary>
Updates an element with the provided key to the value if it exists.
</summary>
<param name="key">The object to use as the key of the element to update.</param>
<param name="value">The new value for the key if found.</param>
<returns>Returns <c>true</c> if the key provided was found and updated to the value; otherwise, <c>false</c>.</returns>
</member>
<member name="M:J2N.Collections.Concurrent.LurchTable`2.TryUpdate(`0,`1,`1)">
<summary>
Updates an element with the provided key to the value if it exists.
</summary>
<param name="key">The object to use as the key of the element to update.</param>
<param name="value">The new value for the key if found.</param>
<param name="comparisonValue">The value that is compared to the value of the element with key.</param>
<returns>Returns <c>true</c> if the key provided was found and updated to the value.</returns>
</member>
<member name="M:J2N.Collections.Concurrent.LurchTable`2.TryRemove(`0,`1@)">
<summary>
Removes the element with the specified key from the <see cref="T:System.Collections.Generic.IDictionary`2"/>.
</summary>
<param name="key">The key of the element to remove.</param>
<param name="value">The value that was removed.</param>
<returns>
<c>true</c> if the element is successfully removed; otherwise, <c>false</c>. This method also returns
<c>false</c> if <paramref name="key"/> was not found in the original <see cref="T:System.Collections.Generic.IDictionary`2"/>.
</returns>
</member>
<member name="M:J2N.Collections.Concurrent.LurchTable`2.GetOrAdd(`0,System.Func{`0,`1})">
<summary>
Adds a key/value pair to the <see cref="T:System.Collections.Generic.IDictionary`2"/> if the key does not already exist.
</summary>
<param name="key">The key of the element to get or add.</param>
<param name="fnCreate">Constructs a new value for the key.</param>
<returns>The value for the key. This will be either the existing value for the key if the key is already
in the dictionary, or the new value if the key was not in the dictionary.</returns>
<exception cref="T:System.ArgumentNullException"><paramref name="fnCreate"/> is <c>null</c>.</exception>
</member>
<member name="M:J2N.Collections.Concurrent.LurchTable`2.AddOrUpdate(`0,`1,J2N.Collections.Concurrent.KeyValueUpdate{`0,`1})">
<summary>
Adds a key/value pair to the <see cref="T:System.Collections.Generic.IDictionary`2"/> if the key does not already exist,
or updates a key/value pair if the key already exists.
</summary>
<param name="key">The key of the element to add or update.</param>
<param name="addValue">The value to add if a value doesn't already exist.</param>
<param name="fnUpdate">The delegate to call to update the value with if it already exists.</param>
</member>
<member name="M:J2N.Collections.Concurrent.LurchTable`2.AddOrUpdate(`0,System.Func{`0,`1},J2N.Collections.Concurrent.KeyValueUpdate{`0,`1})">
<summary>
Adds a key/value pair to the <see cref="T:System.Collections.Generic.IDictionary`2"/> if the key does not already exist,
or updates a key/value pair if the key already exists.
</summary>
<param name="key">The key of the element to add or update.</param>
<param name="fnCreate">The delegate to call to add if a value doesn't already exist.</param>
<param name="fnUpdate">The delegate to call to update the value with if it already exists.</param>
<exception cref="T:System.ArgumentNullException">
<paramref name="fnCreate"/> is <c>null</c>.
<para/>
-or-
<para/>
<paramref name="fnUpdate"/> is <c>null</c>.
</exception>
<remarks>
Adds or modifies an element with the provided key and value. If the key does not exist in the collection,
the factory method <paramref name="fnCreate"/> will be called to produce the new value, if the key exists, the converter method
<paramref name="fnUpdate"/> will be called to create an updated value.
</remarks>
</member>
<member name="M:J2N.Collections.Concurrent.LurchTable`2.TryAdd(`0,System.Func{`0,`1})">
<summary>
Adds an element with the provided key and value to the <see cref="T:System.Collections.Generic.IDictionary`2"/>
by calling the provided factory method to construct the value if the key is not already present in the collection.
</summary>
<param name="key">The key of the element to add.</param>
<param name="fnCreate">The delegate to call to add if a value doesn't already exist.</param>
<exception cref="T:System.ArgumentNullException"><paramref name="fnCreate"/> is <c>null</c>.</exception>
</member>
<member name="M:J2N.Collections.Concurrent.LurchTable`2.TryUpdate(`0,J2N.Collections.Concurrent.KeyValueUpdate{`0,`1})">
<summary>
Modify the value associated with the result of the provided update method
as an atomic operation, Allows for reading/writing a single record within
the syncronization lock.
</summary>
<param name="key">The key of the element to update.</param>
<param name="fnUpdate">The delegate to call to update the value with if it exists.</param>
<exception cref="T:System.ArgumentNullException"><paramref name="fnUpdate"/> is <c>null</c>.</exception>
</member>
<member name="M:J2N.Collections.Concurrent.LurchTable`2.TryRemove(System.Collections.Generic.KeyValuePair{`0,`1})">
<summary>Removes a key and value from the dictionary.</summary>
<param name="item">The <see cref="T:System.Collections.Generic.KeyValuePair`2"/> representing the key and value to remove.</param>
<returns>
<c>true</c> if the key and value represented by <paramref name="item"/> are successfully
found and removed; otherwise, <c>false</c>.
</returns>
<remarks>
Both the specifed key and value must match the entry in the dictionary for it to be removed.
The key is compared using the dictionary's comparer (or the default comparer for <typeparamref name="TKey"/>
if no comparer was provided to the dictionary when it was constructed). The value is compared using the
default comparer for <typeparamref name="TValue"/>.
</remarks>
</member>
<member name="M:J2N.Collections.Concurrent.LurchTable`2.TryRemove(`0,J2N.Collections.Concurrent.KeyValuePredicate{`0,`1})">
<summary>
Removes the element with the specified key from the <see cref="T:System.Collections.Generic.IDictionary`2"/>
if the <paramref name="fnCondition"/> predicate is <c>null</c> or returns <c>true</c>.
</summary>
<param name="key">The key of the element to remove.</param>
<param name="fnCondition">The predicate to use to determine whether to remove the key.</param>
<exception cref="T:System.ArgumentNullException"><paramref name="fnCondition"/> is <c>null</c>.</exception>
</member>
<member name="M:J2N.Collections.Concurrent.LurchTable`2.CopyTo(System.Collections.Generic.KeyValuePair{`0,`1}[],System.Int32)">
<summary>
Copies the elements of the <see cref="T:J2N.Collections.Concurrent.LurchTable`2"/> to the specified array
of <see cref="T:System.Collections.Generic.KeyValuePair`2"/> structures, starting at the specified index.
</summary>
<param name="array">The one-dimensional array of <see cref="T:System.Collections.Generic.KeyValuePair`2"/> structures
that is the destination of the elements copied from the current <see cref="T:J2N.Collections.Concurrent.LurchTable`2"/>.
The array must have zero-based indexing.</param>
<param name="index">The zero-based index in <paramref name="array"/> at which copying begins.</param>
<exception cref="T:System.ArgumentException">The number of elements in the source array is greater
than the available space from <paramref name="index"/> to the end of the destination array.</exception>
<exception cref="T:System.ArgumentNullException"><paramref name="array"/> is <c>null</c>.</exception>
<exception cref="T:System.ArgumentOutOfRangeException"><paramref name="index"/> is less than zero.</exception>
<remarks>This method is an <c>O(n)</c> operation, where <c>n</c> is <see cref="P:J2N.Collections.Concurrent.LurchTable`2.Count"/>.</remarks>
</member>
<member name="T:J2N.Collections.Concurrent.LurchTable`2.Enumerator">
<summary>
Returns an enumerator that iterates through the <see cref="T:J2N.Collections.Concurrent.LurchTable`2"/>.
</summary>
<returns>A <see cref="T:System.Collections.Generic.IEnumerator`1"/> for the
<see cref="T:J2N.Collections.Concurrent.LurchTable`2"/>.</returns>
<remarks>
For purposes of enumeration, each item is a <see cref="T:System.Collections.Generic.KeyValuePair`2"/> structure
representing a value and its key.
<para/>
The <c>foreach</c> statement of the C# language (<c>for each</c> in C++, <c>For Each</c> in Visual Basic)
hides the complexity of enumerators. Therefore, using <c>foreach</c> is recommended instead of directly manipulating the enumerator.
<para/>
Enumerators can be used to read the data in the collection, but they cannot be used to modify the underlying collection.
<para/>
The dictionary is maintained in a sorted order using an internal tree. Every new element is positioned at the correct sort position,
and the tree is adjusted to maintain the sort order whenever an element is removed. While enumerating, the sort order is maintained.
<para/>
Initially, the enumerator is positioned before the first element in the collection. At this position, the
<see cref="P:System.Collections.Generic.IEnumerator`1.Current"/> property is undefined. Therefore, you must call the
<see cref="M:System.Collections.IEnumerator.MoveNext"/> method to advance the enumerator to the first element
of the collection before reading the value of <see cref="P:System.Collections.Generic.IEnumerator`1.Current"/>.
<para/>
The <see cref="P:System.Collections.Generic.IEnumerator`1.Current"/> property returns the same object until
<see cref="M:System.Collections.IEnumerator.MoveNext"/> is called. <see cref="M:System.Collections.IEnumerator.MoveNext"/>
sets <see cref="P:System.Collections.Generic.IEnumerator`1.Current"/> to the next element.
<para/>
If <see cref="M:System.Collections.IEnumerator.MoveNext"/> passes the end of the collection, the enumerator is
positioned after the last element in the collection and <see cref="M:System.Collections.IEnumerator.MoveNext"/>
returns <c>false</c>. When the enumerator is at this position, subsequent calls to <see cref="M:System.Collections.IEnumerator.MoveNext"/>
also return <c>false</c>. If the last call to <see cref="M:System.Collections.IEnumerator.MoveNext"/> returned <c>false</c>,
<see cref="P:System.Collections.Generic.IEnumerator`1.Current"/> is undefined. You cannot set <see cref="P:System.Collections.Generic.IEnumerator`1.Current"/>
to the first element of the collection again; you must create a new enumerator object instead.
<para/>
An enumerator remains valid as long as the collection remains unchanged. If changes are made to the collection,
such as adding, modifying, or deleting elements, the enumerator is irrecoverably invalidated and the next call
to <see cref="M:System.Collections.IEnumerator.MoveNext"/> or <see cref="M:System.Collections.IEnumerator.Reset"/> throws an
<see cref="T:System.InvalidOperationException"/>.
<para/>
The enumerator does not have exclusive access to the collection; therefore, enumerating through a collection is
intrinsically not a thread-safe procedure. To guarantee thread safety during enumeration, you can lock the
collection during the entire enumeration. To allow the collection to be accessed by multiple threads for
reading and writing, you must implement your own synchronization.
<para/>
Default implementations of collections in the <see cref="N:J2N.Collections.Generic"/> namespace are not synchronized.
<para/>
This method is an O(1) operation.
</remarks>
</member>
<member name="M:J2N.Collections.Concurrent.LurchTable`2.Enumerator.Dispose">
<summary>
Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
</summary>
</member>
<member name="P:J2N.Collections.Concurrent.LurchTable`2.Enumerator.Current">
<summary>
Gets the element in the collection at the current position of the enumerator.
</summary>
</member>
<member name="M:J2N.Collections.Concurrent.LurchTable`2.Enumerator.MoveNext">
<summary>
Advances the enumerator to the next element of the <see cref="T:J2N.Collections.Concurrent.LurchTable`2"/>.
</summary>
<returns><c>true</c> if the enumerator was successfully advanced to the next element;
<c>false</c> if the enumerator has passed the end of the collection.</returns>
<exception cref="T:System.InvalidOperationException">The collection was modified after the enumerator was created.</exception>
<remarks>
After an enumerator is created, the enumerator is positioned before the first element in the collection,
and the first call to the <see cref="M:J2N.Collections.Concurrent.LurchTable`2.Enumerator.MoveNext"/> method advances the enumerator to the first element
of the collection.
<para/>
If MoveNext passes the end of the collection, the enumerator is positioned after the last element in the
collection and <see cref="M:J2N.Collections.Concurrent.LurchTable`2.Enumerator.MoveNext"/> returns <c>false</c>. When the enumerator is at this position,
subsequent calls to <see cref="M:J2N.Collections.Concurrent.LurchTable`2.Enumerator.MoveNext"/> also return <c>false</c>.
</remarks>
</member>
<member name="M:J2N.Collections.Concurrent.LurchTable`2.Enumerator.Reset">
<summary>
Sets the enumerator to its initial position, which is before the first element in the collection.
</summary>
</member>
<member name="M:J2N.Collections.Concurrent.LurchTable`2.GetEnumerator">
<summary>
Returns an enumerator that iterates through the collection.
</summary>
</member>
<member name="T:J2N.Collections.Concurrent.LurchTable`2.KeyCollection">
<summary>
Represents the collection of keys in a <see cref="T:J2N.Collections.Concurrent.LurchTable`2"/>.
This class cannot be inherited.
</summary>
<remarks>
The <see cref="P:J2N.Collections.Concurrent.LurchTable`2.Keys"/> property returns an instance
of this type, containing all the keys in that <see cref="T:J2N.Collections.Generic.SortedDictionary`2"/>.
The order of the keys in the <see cref="T:J2N.Collections.Concurrent.LurchTable`2.KeyCollection"/> is the same as the
order of elements in the <see cref="T:J2N.Collections.Concurrent.LurchTable`2"/>, the same as the order
of the associated values in the <see cref="T:J2N.Collections.Concurrent.LurchTable`2.ValueCollection"/> returned
by the <see cref="P:J2N.Collections.Concurrent.LurchTable`2.Values"/> property.
<para/>
The <see cref="T:J2N.Collections.Concurrent.LurchTable`2.KeyCollection"/> is not a static copy; instead,
the <see cref="T:J2N.Collections.Concurrent.LurchTable`2.KeyCollection"/> refers back to the keys in the
original <see cref="T:J2N.Collections.Concurrent.LurchTable`2"/>. Therefore, changes to the
<see cref="T:J2N.Collections.Concurrent.LurchTable`2"/> continue to be reflected in the
<see cref="T:J2N.Collections.Concurrent.LurchTable`2.KeyCollection"/>.
</remarks>
</member>
<member name="M:J2N.Collections.Concurrent.LurchTable`2.KeyCollection.Contains(`0)">
<summary>
Determines whether the <see cref="T:System.Collections.Generic.ICollection`1"/> contains a specific value.
</summary>
</member>
<member name="M:J2N.Collections.Concurrent.LurchTable`2.KeyCollection.CopyTo(`0[],System.Int32)">
<summary>
Copies the <see cref="T:J2N.Collections.Concurrent.LurchTable`2.KeyCollection"/> elements to an existing one-dimensional array,
starting at the specified array index.
</summary>
<param name="array">The one-dimensional array that is the destination of the elements
copied from the <see cref="T:J2N.Collections.Concurrent.LurchTable`2.KeyCollection"/>. The array must have zero-based indexing.</param>
<param name="index">The zero-based index in <paramref name="array"/> at which copying begins.</param>
<exception cref="T:System.ArgumentNullException"><paramref name="array"/> is <c>null</c>.</exception>
<exception cref="T:System.ArgumentOutOfRangeException"><paramref name="index"/> is less than 0.</exception>
<exception cref="T:System.ArgumentException">
The number of elements in the source <see cref="T:J2N.Collections.Concurrent.LurchTable`2.KeyCollection"/> is greater than the available
space from <paramref name="index"/> to the end of the destination <paramref name="array"/>.
</exception>
<remarks>
The elements are copied to the array in the same order in which the enumerator iterates through
the <see cref="T:J2N.Collections.Concurrent.LurchTable`2.KeyCollection"/>.
<para/>
This method is an O(<c>n</c>) operation, where <c>n</c> is <see cref="P:J2N.Collections.Concurrent.LurchTable`2.KeyCollection.Count"/>.
</remarks>
</member>
<member name="P:J2N.Collections.Concurrent.LurchTable`2.KeyCollection.Count">
<summary>
Gets the number of elements contained in the <see cref="T:System.Collections.Generic.ICollection`1"/>.
</summary>
</member>
<member name="M:J2N.Collections.Concurrent.LurchTable`2.KeyCollection.GetEnumerator">
<summary>
Returns an enumerator that iterates through the collection.
</summary>
</member>
<member name="T:J2N.Collections.Concurrent.LurchTable`2.KeyCollection.Enumerator">
<summary>
Enumerates the elements of a <see cref="T:J2N.Collections.Concurrent.LurchTable`2.KeyCollection"/>.
</summary>
<remarks>
The <c>foreach</c> statement of the C# language (<c>for each</c> in C++, <c>For Each</c> in Visual Basic)
hides the complexity of enumerators. Therefore, using <c>foreach</c> is recommended instead of directly manipulating the enumerator.
<para/>
Enumerators can be used to read the data in the collection, but they cannot be used to modify the underlying collection.
<para/>
Initially, the enumerator is positioned before the first element in the collection. At this position, the
<see cref="P:J2N.Collections.Concurrent.LurchTable`2.KeyCollection.Enumerator.Current"/> property is undefined. Therefore, you must call the
<see cref="M:J2N.Collections.Concurrent.LurchTable`2.KeyCollection.Enumerator.MoveNext"/> method to advance the enumerator to the first element
of the collection before reading the value of <see cref="P:J2N.Collections.Concurrent.LurchTable`2.KeyCollection.Enumerator.Current"/>.
<para/>
The <see cref="P:J2N.Collections.Concurrent.LurchTable`2.KeyCollection.Enumerator.Current"/> property returns the same object until
<see cref="M:J2N.Collections.Concurrent.LurchTable`2.KeyCollection.Enumerator.MoveNext"/> is called. <see cref="M:J2N.Collections.Concurrent.LurchTable`2.KeyCollection.Enumerator.MoveNext"/>
sets <see cref="P:J2N.Collections.Concurrent.LurchTable`2.KeyCollection.Enumerator.Current"/> to the next element.
<para/>
If <see cref="M:J2N.Collections.Concurrent.LurchTable`2.KeyCollection.Enumerator.MoveNext"/> passes the end of the collection, the enumerator is
positioned after the last element in the collection and <see cref="M:J2N.Collections.Concurrent.LurchTable`2.KeyCollection.Enumerator.MoveNext"/>
returns <c>false</c>. When the enumerator is at this position, subsequent calls to <see cref="M:J2N.Collections.Concurrent.LurchTable`2.KeyCollection.Enumerator.MoveNext"/>
also return <c>false</c>. If the last call to <see cref="M:J2N.Collections.Concurrent.LurchTable`2.KeyCollection.Enumerator.MoveNext"/> returned <c>false</c>,
<see cref="P:J2N.Collections.Concurrent.LurchTable`2.KeyCollection.Enumerator.Current"/> is undefined. You cannot set <see cref="P:J2N.Collections.Concurrent.LurchTable`2.KeyCollection.Enumerator.Current"/>
to the first element of the collection again; you must create a new enumerator object instead.
<para/>
An enumerator remains valid as long as the collection remains unchanged. If changes are made to the collection,
such as adding, modifying, or deleting elements, the enumerator is irrecoverably invalidated and the next call
to <see cref="M:J2N.Collections.Concurrent.LurchTable`2.KeyCollection.Enumerator.MoveNext"/> or <see cref="M:System.Collections.IEnumerator.Reset"/> throws an
<see cref="T:System.InvalidOperationException"/>.
<para/>
The enumerator does not have exclusive access to the collection; therefore, enumerating through a collection is
intrinsically not a thread-safe procedure. To guarantee thread safety during enumeration, you can lock the
collection during the entire enumeration. To allow the collection to be accessed by multiple threads for
reading and writing, you must implement your own synchronization.
<para/>
Default implementations of collections in the <see cref="N:J2N.Collections.Generic"/> namespace are not synchronized.
</remarks>
</member>
<member name="M:J2N.Collections.Concurrent.LurchTable`2.KeyCollection.Enumerator.Dispose">
<summary>
Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
</summary>
</member>
<member name="P:J2N.Collections.Concurrent.LurchTable`2.KeyCollection.Enumerator.Current">
<summary>
Gets the element in the collection at the current position of the enumerator.
</summary>
</member>
<member name="M:J2N.Collections.Concurrent.LurchTable`2.KeyCollection.Enumerator.MoveNext">
<summary>
Advances the enumerator to the next element of the <see cref="T:J2N.Collections.Concurrent.LurchTable`2.KeyCollection"/>.
</summary>
<returns><c>true</c> if the enumerator was successfully advanced to the next element;
<c>false</c> if the enumerator has passed the end of the collection.</returns>
<remarks>
After an enumerator is created, the enumerator is positioned before the first element in the collection,
and the first call to the <see cref="M:J2N.Collections.Concurrent.LurchTable`2.KeyCollection.Enumerator.MoveNext"/> method advances the enumerator to the first element
of the collection.
<para/>
If MoveNext passes the end of the collection, the enumerator is positioned after the last element in the
collection and <see cref="M:J2N.Collections.Concurrent.LurchTable`2.KeyCollection.Enumerator.MoveNext"/> returns <c>false</c>. When the enumerator is at this position,
subsequent calls to <see cref="M:J2N.Collections.Concurrent.LurchTable`2.KeyCollection.Enumerator.MoveNext"/> also return <c>false</c>.
</remarks>
</member>
<member name="M:J2N.Collections.Concurrent.LurchTable`2.KeyCollection.Enumerator.Reset">
<summary>
Sets the enumerator to its initial position, which is before the first element in the collection.
</summary>
</member>
<member name="P:J2N.Collections.Concurrent.LurchTable`2.Keys">
<summary>
Gets an <see cref="T:System.Collections.Generic.ICollection`1"/> containing the
keys of the <see cref="T:System.Collections.Generic.IDictionary`2"/>.
</summary>
</member>
<member name="T:J2N.Collections.Concurrent.LurchTable`2.ValueCollection">
<summary>
Represents the collection of values in a <see cref="T:J2N.Collections.Concurrent.LurchTable`2"/>. This class cannot be inherited.
</summary>
<remarks>
The <see cref="P:J2N.Collections.Concurrent.LurchTable`2.Values"/> property returns an instance
of this type, containing all the values in that <see cref="T:J2N.Collections.Concurrent.LurchTable`2"/>.
The order of the values in the <see cref="T:J2N.Collections.Concurrent.LurchTable`2.ValueCollection"/> is the same as the
order of elements in the <see cref="T:J2N.Collections.Concurrent.LurchTable`2"/>, the same as the order
of the associated values in the <see cref="T:J2N.Collections.Concurrent.LurchTable`2.KeyCollection"/> returned
by the <see cref="P:J2N.Collections.Concurrent.LurchTable`2.Keys"/> property.
<para/>
The <see cref="T:J2N.Collections.Concurrent.LurchTable`2.ValueCollection"/> is not a static copy; instead,
the <see cref="T:J2N.Collections.Concurrent.LurchTable`2.ValueCollection"/> refers back to the keys in the
original <see cref="T:J2N.Collections.Concurrent.LurchTable`2"/>. Therefore, changes to the
<see cref="T:J2N.Collections.Concurrent.LurchTable`2"/> continue to be reflected in the
<see cref="T:J2N.Collections.Concurrent.LurchTable`2.ValueCollection"/>.
</remarks>
</member>
<member name="M:J2N.Collections.Concurrent.LurchTable`2.ValueCollection.Contains(`1)">
<summary>
Determines whether the <see cref="T:System.Collections.Generic.ICollection`1"/> contains a specific value.
</summary>
</member>
<member name="M:J2N.Collections.Concurrent.LurchTable`2.ValueCollection.CopyTo(`1[],System.Int32)">
<summary>
Copies the <see cref="T:J2N.Collections.Concurrent.LurchTable`2.ValueCollection"/> elements to an existing one-dimensional
array, starting at the specified array index.
</summary>
<param name="array">The one-dimensional array that is the destination of the elements copied from
the <see cref="T:J2N.Collections.Concurrent.LurchTable`2.ValueCollection"/>. The array must have zero-based indexing.</param>
<param name="index">The zero-based index in <paramref name="array"/> at which copying begins.</param>
<exception cref="T:System.ArgumentNullException"><paramref name="array"/> is <c>null</c>.</exception>
<exception cref="T:System.ArgumentOutOfRangeException"><paramref name="index"/> is less than 0.</exception>
<exception cref="T:System.ArgumentException">The number of elements in the source <see cref="T:J2N.Collections.Concurrent.LurchTable`2.ValueCollection"/>
is greater than the available space from <paramref name="index"/> to the end of the destination
<paramref name="array"/>.</exception>
<remarks>
The elements are copied to the array in the same order in which the enumerator iterates through the
<see cref="T:J2N.Collections.Concurrent.LurchTable`2.ValueCollection"/>.
<para/>
This method is an O(<c>n</c>) operation, where <c>n</c> is <see cref="P:J2N.Collections.Concurrent.LurchTable`2.ValueCollection.Count"/>.
</remarks>
</member>
<member name="P:J2N.Collections.Concurrent.LurchTable`2.ValueCollection.Count">
<summary>
Gets the number of elements contained in the <see cref="T:System.Collections.Generic.ICollection`1"/>.
</summary>
</member>
<member name="M:J2N.Collections.Concurrent.LurchTable`2.ValueCollection.GetEnumerator">
<summary>
Returns an enumerator that iterates through the collection.
</summary>
</member>
<member name="T:J2N.Collections.Concurrent.LurchTable`2.ValueCollection.Enumerator">
<summary>
Enumerates the elements of a <see cref="T:J2N.Collections.Concurrent.LurchTable`2.ValueCollection"/>.
</summary>
<remarks>
The <c>foreach</c> statement of the C# language (<c>for each</c> in C++, <c>For Each</c> in Visual Basic)
hides the complexity of enumerators. Therefore, using <c>foreach</c> is recommended instead of directly manipulating the enumerator.
<para/>
Enumerators can be used to read the data in the collection, but they cannot be used to modify the underlying collection.
<para/>
Initially, the enumerator is positioned before the first element in the collection. At this position, the
<see cref="P:J2N.Collections.Concurrent.LurchTable`2.ValueCollection.Enumerator.Current"/> property is undefined. Therefore, you must call the
<see cref="M:J2N.Collections.Concurrent.LurchTable`2.ValueCollection.Enumerator.MoveNext"/> method to advance the enumerator to the first element
of the collection before reading the value of <see cref="P:J2N.Collections.Concurrent.LurchTable`2.ValueCollection.Enumerator.Current"/>.
<para/>
The <see cref="P:J2N.Collections.Concurrent.LurchTable`2.ValueCollection.Enumerator.Current"/> property returns the same object until
<see cref="M:J2N.Collections.Concurrent.LurchTable`2.ValueCollection.Enumerator.MoveNext"/> is called. <see cref="M:J2N.Collections.Concurrent.LurchTable`2.ValueCollection.Enumerator.MoveNext"/>
sets <see cref="P:J2N.Collections.Concurrent.LurchTable`2.ValueCollection.Enumerator.Current"/> to the next element.
<para/>
If <see cref="M:J2N.Collections.Concurrent.LurchTable`2.ValueCollection.Enumerator.MoveNext"/> passes the end of the collection, the enumerator is
positioned after the last element in the collection and <see cref="M:J2N.Collections.Concurrent.LurchTable`2.ValueCollection.Enumerator.MoveNext"/>
returns <c>false</c>. When the enumerator is at this position, subsequent calls to <see cref="M:J2N.Collections.Concurrent.LurchTable`2.ValueCollection.Enumerator.MoveNext"/>
also return <c>false</c>. If the last call to <see cref="M:J2N.Collections.Concurrent.LurchTable`2.ValueCollection.Enumerator.MoveNext"/> returned <c>false</c>,
<see cref="P:J2N.Collections.Concurrent.LurchTable`2.ValueCollection.Enumerator.Current"/> is undefined. You cannot set <see cref="P:J2N.Collections.Concurrent.LurchTable`2.ValueCollection.Enumerator.Current"/>
to the first element of the collection again; you must create a new enumerator object instead.
<para/>
An enumerator remains valid as long as the collection remains unchanged. If changes are made to the collection,
such as adding, modifying, or deleting elements, the enumerator is irrecoverably invalidated and the next call
to <see cref="M:J2N.Collections.Concurrent.LurchTable`2.ValueCollection.Enumerator.MoveNext"/> or <see cref="M:System.Collections.IEnumerator.Reset"/> throws an
<see cref="T:System.InvalidOperationException"/>.
<para/>
The enumerator does not have exclusive access to the collection; therefore, enumerating through a collection is
intrinsically not a thread-safe procedure. To guarantee thread safety during enumeration, you can lock the
collection during the entire enumeration. To allow the collection to be accessed by multiple threads for
reading and writing, you must implement your own synchronization.
<para/>
Default implementations of collections in the <see cref="N:J2N.Collections.Generic"/> namespace are not synchronized.
</remarks>
</member>
<member name="M:J2N.Collections.Concurrent.LurchTable`2.ValueCollection.Enumerator.Dispose">
<summary>
Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
</summary>
</member>
<member name="P:J2N.Collections.Concurrent.LurchTable`2.ValueCollection.Enumerator.Current">
<summary>
Gets the element in the collection at the current position of the enumerator.
</summary>
</member>
<member name="M:J2N.Collections.Concurrent.LurchTable`2.ValueCollection.Enumerator.MoveNext">
<summary>
Advances the enumerator to the next element of the <see cref="T:J2N.Collections.Concurrent.LurchTable`2.ValueCollection"/>.
</summary>
<returns><c>true</c> if the enumerator was successfully advanced to the next element;
<c>false</c> if the enumerator has passed the end of the collection.</returns>
<exception cref="T:System.InvalidOperationException">The collection was modified after the enumerator was created.</exception>
<remarks>
After an enumerator is created, the enumerator is positioned before the first element in the collection,
and the first call to the <see cref="M:J2N.Collections.Concurrent.LurchTable`2.ValueCollection.Enumerator.MoveNext"/> method advances the enumerator to the first element
of the collection.
<para/>
If MoveNext passes the end of the collection, the enumerator is positioned after the last element in the
collection and <see cref="M:J2N.Collections.Concurrent.LurchTable`2.ValueCollection.Enumerator.MoveNext"/> returns <c>false</c>. When the enumerator is at this position,
subsequent calls to <see cref="M:J2N.Collections.Concurrent.LurchTable`2.ValueCollection.Enumerator.MoveNext"/> also return <c>false</c>.
</remarks>
</member>
<member name="M:J2N.Collections.Concurrent.LurchTable`2.ValueCollection.Enumerator.Reset">
<summary>
Sets the enumerator to its initial position, which is before the first element in the collection.
</summary>
</member>
<member name="P:J2N.Collections.Concurrent.LurchTable`2.Values">
<summary>
Gets an <see cref="T:System.Collections.Generic.ICollection`1"/> containing the values in the <see cref="T:System.Collections.Generic.IDictionary`2"/>.
</summary>
</member>
<member name="M:J2N.Collections.Concurrent.LurchTable`2.Peek(System.Collections.Generic.KeyValuePair{`0,`1}@)">
<summary>
Retrieves the oldest entry in the collection based on the ordering supplied to the constructor.
</summary>
<returns>True if the out parameter value was set.</returns>
<exception cref="T:System.InvalidOperationException">The table is unordered.</exception>
</member>
<member name="M:J2N.Collections.Concurrent.LurchTable`2.Dequeue">
<summary>
Removes the oldest entry in the collection based on the ordering supplied to the constructor.
If an item is not available a busy-wait loop is used to wait for for an item.
</summary>
<returns>The Key/Value pair removed.</returns>
<exception cref="T:System.InvalidOperationException">The table is unordered.</exception>
</member>
<member name="M:J2N.Collections.Concurrent.LurchTable`2.TryDequeue(System.Collections.Generic.KeyValuePair{`0,`1}@)">
<summary>
Removes the oldest entry in the collection based on the ordering supplied to the constructor.
</summary>
<returns>False if no item was available</returns>
<exception cref="T:System.InvalidOperationException">The table is unordered.</exception>
</member>
<member name="M:J2N.Collections.Concurrent.LurchTable`2.TryDequeue(System.Predicate{System.Collections.Generic.KeyValuePair{`0,`1}},System.Collections.Generic.KeyValuePair{`0,`1}@)">
<summary>
Removes the oldest entry in the collection based on the ordering supplied to the constructor.
</summary>
<returns>False if no item was available</returns>
<exception cref="T:System.InvalidOperationException">The table is unordered.</exception>
</member>
<member name="T:J2N.Collections.Concurrent.LurchTableCorruptionException">
<summary>
Exception class: LurchTableCorruptionException
The LurchTable internal datastructure appears to be corrupted.
</summary>
</member>
<member name="M:J2N.Collections.Concurrent.LurchTableCorruptionException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
<summary>
Serialization constructor
</summary>
</member>
<member name="M:J2N.Collections.Concurrent.LurchTableCorruptionException.#ctor(System.String)">
<summary>
Initializes a new instance of <see cref="T:J2N.Collections.Concurrent.LurchTableCorruptionException"/> with the specified message.
</summary>
<param name="message">The message.</param>
</member>
<member name="M:J2N.Collections.Concurrent.LurchTableCorruptionException.#ctor(System.String,System.Exception)">
<summary>
Initializes a new instance of <see cref="T:J2N.Collections.Concurrent.LurchTableCorruptionException"/> with the specified message
and original exception.
</summary>
<param name="message">The message.</param>
<param name="innerException">The original exception.</param>
</member>
<member name="M:J2N.Collections.Concurrent.LurchTableCorruptionException.Create(System.Int32,System.String)">
<summary>
Used to create this exception from an hresult and message bypassing the message formatting
</summary>
</member>
<member name="M:J2N.Collections.Concurrent.LurchTableCorruptionException.#ctor(System.Exception,System.Int32,System.String)">
<summary>
Constructs the exception from an hresult and message bypassing the message formatting
</summary>
</member>
<member name="M:J2N.Collections.Concurrent.LurchTableCorruptionException.#ctor">
<summary>
Initializes a new instance of <see cref="T:J2N.Collections.Concurrent.LurchTableCorruptionException"/> with the default message.
</summary>
</member>
<member name="M:J2N.Collections.Concurrent.LurchTableCorruptionException.#ctor(System.Exception)">
<summary>
Initializes a new instance of <see cref="T:J2N.Collections.Concurrent.LurchTableCorruptionException"/> with the default message
and original exception.
</summary>
</member>
<member name="M:J2N.Collections.Concurrent.LurchTableCorruptionException.Assert(System.Boolean)">
<summary>
If <paramref name="condition"/> is <c>false</c>, throws <see cref="T:J2N.Collections.Concurrent.LurchTableCorruptionException"/> with the default message.
</summary>
</member>
<member name="T:J2N.Collections.Concurrent.KeyValueUpdate`2">
<summary> Provides a delegate that performs an atomic update of a key/value pair </summary>
</member>
<member name="T:J2N.Collections.Concurrent.KeyValuePredicate`2">
<summary> Provides a delegate that performs a test on key/value pair </summary>
</member>
<member name="T:J2N.Collections.Concurrent.ICreateValue`2">
<summary>
An interface to provide conditional or custom creation logic to a concurrent dictionary.
</summary>
</member>
<member name="M:J2N.Collections.Concurrent.ICreateValue`2.CreateValue(`0,`1@)">
<summary>
Called when the key was not found within the dictionary to produce a new value that can be added.
Return true to continue with the insertion, or false to prevent the key/value from being inserted.
</summary>
</member>
<member name="T:J2N.Collections.Concurrent.IUpdateValue`2">
<summary>
An interface to provide conditional or custom update logic to a concurrent dictionary.
</summary>
</member>
<member name="M:J2N.Collections.Concurrent.IUpdateValue`2.UpdateValue(`0,`1@)">
<summary>
Called when the key was found within the dictionary to produce a modified value to update the item
to. Return true to continue with the update, or false to prevent the key/value from being updated.
</summary>
</member>
<member name="T:J2N.Collections.Concurrent.ICreateOrUpdateValue`2">
<summary>
An interface to provide conditional or custom creation or update logic to a concurrent dictionary.
</summary>
<remarks>
Generally implemented as a struct and passed by ref to save stack space and to retrieve the values
that where inserted or updated.
</remarks>
</member>
<member name="T:J2N.Collections.Concurrent.IRemoveValue`2">
<summary>
An interface to provide conditional removal of an item from a concurrent dictionary.
</summary>
<remarks>
Generally implemented as a struct and passed by ref to save stack space and to retrieve the values
that where inserted or updated.
</remarks>
</member>
<member name="M:J2N.Collections.Concurrent.IRemoveValue`2.RemoveValue(`0,`1)">
<summary>
Called when the dictionary is about to remove the key/value pair provided, return true to allow
it's removal, or false to prevent it from being removed.
</summary>
</member>
<member name="M:J2N.Collections.Generic.BitHelper.ToIntArrayLength(System.Int32)">
<summary>How many ints must be allocated to represent n bits. Returns (n+31)/32, but avoids overflow.</summary>
</member>
<member name="T:J2N.Collections.Generic.Comparer`1">
<summary>
Provides comparers that use natural equality rules similar to those in Java.
</summary>
<typeparam name="T">The type of objects to compare.</typeparam>
</member>
<member name="P:J2N.Collections.Generic.Comparer`1.Default">
<summary>
Provides natural comparison rules similar to those in Java.
<list type="bullet">
<item><description>
<see cref="T:System.Double"/> and <see cref="T:System.Single"/> are compared for positive zero and negative zero. These are considered
two separate numbers, as opposed to the default .NET behavior that considers them equal.
</description></item>
<item><description>
<see cref="T:System.Double"/> and <see cref="T:System.Single"/> are compared for NaN (not a number). All NaN values are considered equal,
which differs from the default .NET behavior, where NaN is never equal to NaN.
</description></item>
<item><description>
<see cref="T:System.Double"/>? and <see cref="T:System.Single"/>? are first compared for <c>null</c> prior to applying the above rules.
</description></item>
<item><description>
<see cref="T:System.String"/> uses culture-insensitive comparison using <see cref="P:System.StringComparer.Ordinal"/>.
</description></item>
</list>
</summary>
</member>
<member name="T:J2N.Collections.Generic.Dictionary`2">
<summary>
Represents a collection of keys and values.
<para/>
<see cref="T:J2N.Collections.Generic.Dictionary`2"/> is similar to <see cref="T:System.Collections.Generic.Dictionary`2"/>,
but adds the following features:
<list type="bullet">
<item><description>
If <typeparamref name="TKey"/> is <see cref="T:System.Nullable`1"/> or a reference type, the key can be
<c>null</c> and the value can be retrieved again by with a <c>null</c> key.
</description></item>
<item><description>
Overrides the <see cref="M:J2N.Collections.Generic.Dictionary`2.Equals(System.Object)"/> and <see cref="M:J2N.Collections.Generic.Dictionary`2.GetHashCode"/> methods to compare collections
using structural equality by default. Also, <see cref="T:System.Collections.IStructuralEquatable"/> is implemented so the
default behavior can be overridden.
</description></item>
<item><description>
Overrides the <see cref="M:J2N.Collections.Generic.Dictionary`2.ToString"/> method to list the contents of the dictionary
by default. Also, <see cref="T:System.IFormatProvider"/> is implemented so the
default behavior can be overridden.
</description></item>
<item><description>
Uses <see cref="P:J2N.Collections.Generic.EqualityComparer`1.Default"/> by default, which provides some specialized equality comparisons
for specific types to match the behavior of Java.
</description></item>
<item><description>
This implementation allows deleting while enumerating, much like the collections in Java and .NET Core 3.0+ do.
However, rather than having a method to delete on the enumerator itself, one must call
<see cref="M:J2N.Collections.Generic.Dictionary`2.Remove(`0)"/>.
</description></item>
</list>
<para/>
Usage Note: This class is intended to be a direct replacement for <see cref="T:System.Collections.Generic.Dictionary`2"/> in order
to provide default structural equality and formatting behavior similar to Java. Note that the <see cref="M:J2N.Collections.Generic.Dictionary`2.ToString"/>
method uses the current culture by default to behave like other components in .NET. To exactly match Java's culture-neutral behavior,
call <c>ToString(StringFormatter.InvariantCulture)</c>.
</summary>
<typeparam name="TKey">The type of the keys in the dictionary.</typeparam>
<typeparam name="TValue">The type of the values in the dictionary.</typeparam>
</member>
<member name="M:J2N.Collections.Generic.Dictionary`2.#ctor">
<summary>
Initializes a new instance of the <see cref="T:J2N.Collections.Generic.Dictionary`2"/> class that is empty,
has the default initial capacity, and uses the default equality comparer for the key type.
</summary>
<remarks>
Every key in a <see cref="T:J2N.Collections.Generic.Dictionary`2"/> must be unique according to the default equality comparer.
<para/>
<see cref="T:J2N.Collections.Generic.Dictionary`2"/> requires an equality implementation to determine whether keys are equal.
This constructor uses J2N's default generic equality comparer, <see cref="P:J2N.Collections.Generic.EqualityComparer`1.Default"/>. If type
<typeparamref name="TKey"/> implements the <see cref="T:System.IEquatable`1"/> generic interface, the default equality
comparer uses that implementation. Alternatively, you can specify an implementation of the <see cref="T:System.Collections.Generic.IEqualityComparer`1"/>
generic interface by using a constructor that accepts a comparer parameter.
<para/>
NOTE: If you can estimate the size of the collection, using a constructor that specifies the initial capacity eliminates
the need to perform a number of resizing operations while adding elements to the <see cref="T:J2N.Collections.Generic.Dictionary`2"/>.
<para/>
This constructor is an O(1) operation.
</remarks>
</member>
<member name="M:J2N.Collections.Generic.Dictionary`2.#ctor(System.Int32)">
<summary>
Initializes a new instance of the <see cref="T:J2N.Collections.Generic.Dictionary`2"/> class that is empty, has the specified initial
capacity, and uses the default equality comparer for the key type.
</summary>
<param name="capacity">The initial number of elements that the <see cref="T:J2N.Collections.Generic.Dictionary`2"/> can contain.</param>
<exception cref="T:System.ArgumentOutOfRangeException"><paramref name="capacity"/> is less than 0.</exception>
<remarks>
Every key in a <see cref="T:J2N.Collections.Generic.Dictionary`2"/> must be unique according to the default equality comparer.
<para/>
The capacity of a <see cref="T:J2N.Collections.Generic.Dictionary`2"/> is the number of elements that can be added to the
<see cref="T:J2N.Collections.Generic.Dictionary`2"/> before resizing is necessary. As elements are added to a <see cref="T:J2N.Collections.Generic.Dictionary`2"/>,
the capacity is automatically increased as required by reallocating the internal array.
<para/>
If the size of the collection can be estimated, specifying the initial capacity eliminates the need to perform a number
of resizing operations while adding elements to the <see cref="T:J2N.Collections.Generic.Dictionary`2"/>.
<para/>
<see cref="T:J2N.Collections.Generic.Dictionary`2"/> requires an equality implementation to determine whether keys are equal. This
constructor uses J2N's default generic equality comparer, <see cref="P:J2N.Collections.Generic.EqualityComparer`1.Default"/>. If type <typeparamref name="TKey"/>
implements the <see cref="T:System.IEquatable`1"/> generic interface, the default equality comparer uses that implementation. Alternatively,
you can specify an implementation of the <see cref="T:System.Collections.Generic.IEqualityComparer`1"/> generic interface by using a constructor that accepts a
comparer parameter.
<para/>
This constructor is an O(1) operation.
</remarks>
</member>
<member name="M:J2N.Collections.Generic.Dictionary`2.#ctor(System.Collections.Generic.IEqualityComparer{`0})">
<summary>
Initializes a new instance of the <see cref="T:J2N.Collections.Generic.Dictionary`2"/> class that is empty, has the default
initial capacity, and uses the specified <see cref="T:System.Collections.Generic.IEqualityComparer`1"/>.
</summary>
<param name="comparer">The <see cref="T:System.Collections.Generic.IEqualityComparer`1"/> implementation to use when comparing keys, or
<c>null</c> to use the default <see cref="T:J2N.Collections.Generic.EqualityComparer`1"/> for the type of the key.</param>
<remarks>
Use this constructor with the case-insensitive string comparers provided by the <see cref="T:System.StringComparer"/>
class to create dictionaries with case-insensitive string keys.
<para/>
Every key in a <see cref="T:J2N.Collections.Generic.Dictionary`2"/> must be unique according to the specified comparer.
<para/>
<see cref="T:J2N.Collections.Generic.Dictionary`2"/> requires an equality implementation to determine whether keys are equal.
If comparer is null, this constructor uses J2N's default generic equality comparer, <see cref="P:J2N.Collections.Generic.EqualityComparer`1.Default"/>.
If type <typeparamref name="TKey"/> implements the <see cref="T:System.IEquatable`1"/> generic interface, the default
equality comparer uses that implementation.
<para/>
If the size of the collection can be estimated, specifying the initial capacity eliminates the need to perform a number
of resizing operations while adding elements to the <see cref="T:J2N.Collections.Generic.Dictionary`2"/>.
<para/>
This constructor is an O(1) operation.
</remarks>
</member>
<member name="M:J2N.Collections.Generic.Dictionary`2.#ctor(System.Int32,System.Collections.Generic.IEqualityComparer{`0})">
<summary>
Initializes a new instance of the <see cref="T:J2N.Collections.Generic.Dictionary`2"/> class that is empty, has the specified
initial capacity, and uses the specified <see cref="T:System.Collections.Generic.IEqualityComparer`1"/>.
</summary>
<param name="capacity">The initial number of elements that the <see cref="T:J2N.Collections.Generic.Dictionary`2"/> can contain.</param>
<param name="comparer">The <see cref="T:System.Collections.Generic.IEqualityComparer`1"/> implementation to use when comparing keys, or <c>null</c> to
use J2N's default <see cref="T:J2N.Collections.Generic.EqualityComparer`1"/> for the type of the key.</param>
<exception cref="T:System.ArgumentOutOfRangeException"><paramref name="capacity"/> is less than 0.</exception>
<remarks>
Use this constructor with the case-insensitive string comparers provided by the <see cref="T:System.StringComparer"/>
class to create dictionaries with case-insensitive string keys.
<para/>
Every key in a <see cref="T:J2N.Collections.Generic.Dictionary`2"/> must be unique according to the specified comparer.
<para/>
The capacity of a <see cref="T:J2N.Collections.Generic.Dictionary`2"/> is the number of elements that can be added to
the <see cref="T:J2N.Collections.Generic.Dictionary`2"/> before resizing is necessary. As elements are added to a
<see cref="T:J2N.Collections.Generic.Dictionary`2"/>, the capacity is automatically increased as required by
reallocating the internal array.
<para/>
If the size of the collection can be estimated, specifying the initial capacity eliminates the need
to perform a number of resizing operations while adding elements to the <see cref="T:J2N.Collections.Generic.Dictionary`2"/>.
<para/>
<see cref="T:J2N.Collections.Generic.Dictionary`2"/> requires an equality implementation to determine whether keys are
equal. If comparer is <c>null</c>, this constructor uses the default generic equality comparer,
<see cref="P:J2N.Collections.Generic.EqualityComparer`1.Default"/>. If type <typeparamref name="TKey"/> implements the <see cref="T:System.IEquatable`1"/>
generic interface, the default equality comparer uses that implementation.
<para/>
This constructor is an O(1) operation.
</remarks>
</member>
<member name="M:J2N.Collections.Generic.Dictionary`2.#ctor(System.Collections.Generic.IDictionary{`0,`1})">
<summary>
Initializes a new instance of the <see cref="T:J2N.Collections.Generic.Dictionary`2"/> class that contains elements
copied from the specified <see cref="T:System.Collections.Generic.IDictionary`2"/> and uses the default equality comparer
for the key type.
</summary>
<param name="dictionary">The <see cref="T:System.Collections.Generic.IDictionary`2"/> whose elements are copied to the
new <see cref="T:J2N.Collections.Generic.Dictionary`2"/>.</param>
<exception cref="T:System.ArgumentNullException"><paramref name="dictionary"/> is <c>null</c>.</exception>
<exception cref="T:System.ArgumentException"><paramref name="dictionary"/> contains one or more duplicate keys.</exception>
<remarks>
Every key in a <see cref="T:J2N.Collections.Generic.Dictionary`2"/> must be unique according to the default equality
comparer; likewise, every key in the source <paramref name="dictionary"/> must also be unique according to the default
equality comparer.
<para/>
The initial capacity of the new <see cref="T:J2N.Collections.Generic.Dictionary`2"/> is large enough to contain all the
elements in <paramref name="dictionary"/>.
<para/>
<see cref="T:J2N.Collections.Generic.Dictionary`2"/> requires an equality implementation to determine whether keys are equal.
This constructor uses the default generic equality comparer, <see cref="P:J2N.Collections.Generic.EqualityComparer`1.Default"/>. If type
<typeparamref name="TKey"/> implements the <see cref="T:System.IEquatable`1"/> generic interface, the default equality
comparer uses that implementation. Alternatively, you can specify an implementation of the <see cref="T:System.Collections.Generic.IEqualityComparer`1"/>
generic interface by using a constructor that accepts a comparer parameter.
<para/>
This constructor is an O(n) operation, where n is the number of elements in <paramref name="dictionary"/>.
</remarks>
</member>
<member name="M:J2N.Collections.Generic.Dictionary`2.#ctor(System.Collections.Generic.IDictionary{`0,`1},System.Collections.Generic.IEqualityComparer{`0})">
<summary>
Initializes a new instance of the <see cref="T:J2N.Collections.Generic.Dictionary`2"/> class that contains elements copied
from the specified <see cref="T:System.Collections.Generic.IDictionary`2"/> and uses the specified <see cref="T:System.Collections.Generic.IEqualityComparer`1"/>.
</summary>
<param name="dictionary">The <see cref="T:System.Collections.Generic.IDictionary`2"/> whose elements are copied to the new
<see cref="T:J2N.Collections.Generic.Dictionary`2"/>.</param>
<param name="comparer">The <see cref="T:System.Collections.Generic.IEqualityComparer`1"/> implementation to use when comparing keys, or <c>null</c>
to use the default <see cref="T:J2N.Collections.Generic.EqualityComparer`1"/> for the type of the key.</param>
<exception cref="T:System.ArgumentNullException"><paramref name="dictionary"/> is <c>null</c>.</exception>
<exception cref="T:System.ArgumentException"><paramref name="dictionary"/> contains one or more duplicate keys.</exception>
<remarks>
Use this constructor with the case-insensitive string comparers provided by the <see cref="T:System.StringComparer"/>
class to create dictionaries with case-insensitive string keys.
<para/>
Every key in a <see cref="T:J2N.Collections.Generic.Dictionary`2"/> must be unique according to the specified comparer;
likewise, every key in the source <paramref name="dictionary"/> must also be unique according to the specified comparer.
<para/>
NOTE: For example, duplicate keys can occur if <paramref name="comparer"/> is one of the case-insensitive string
comparers provided by the <see cref="T:System.StringComparer"/> class and <paramref name="dictionary"/> does not use a
case-insensitive comparer key.
<para/>
The initial capacity of the new <see cref="T:J2N.Collections.Generic.Dictionary`2"/> is large enough to contain all the elements in
<paramref name="dictionary"/>.
<para/>
<see cref="T:J2N.Collections.Generic.Dictionary`2"/> requires an equality implementation to determine whether keys are equal.
If comparer is <c>null</c>, this constructor uses the default generic equality comparer, <see cref="P:J2N.Collections.Generic.EqualityComparer`1.Default"/>.
If type <typeparamref name="TKey"/> implements the <see cref="T:System.IEquatable`1"/> generic interface, the default equality
comparer uses that implementation.
<para/>
This constructor is an O(<c>n</c>) operation, where <c>n</c> is the number of elements in <paramref name="dictionary"/>.
</remarks>
</member>
<member name="M:J2N.Collections.Generic.Dictionary`2.#ctor(System.Collections.Generic.IEnumerable{System.Collections.Generic.KeyValuePair{`0,`1}})">
<summary>
Initializes a new instance of the <see cref="T:J2N.Collections.Generic.Dictionary`2"/> class that contains elements
copied from the specified <see cref="T:System.Collections.Generic.IDictionary`2"/> and uses the default equality comparer
for the key type.
</summary>
<param name="collection">The <see cref="T:IEnumerable{KeyValuePair{TKey, TValue}}"/> whose elements are copied to the
new <see cref="T:J2N.Collections.Generic.Dictionary`2"/>.</param>
<exception cref="T:System.ArgumentNullException"><paramref name="collection"/> is <c>null</c>.</exception>
<exception cref="T:System.ArgumentException"><paramref name="collection"/> contains one or more duplicate keys.</exception>
<remarks>
Every key in a <see cref="T:J2N.Collections.Generic.Dictionary`2"/> must be unique according to the default equality
comparer; likewise, every key in the source <paramref name="collection"/> must also be unique according to the default
equality comparer.
<para/>
The initial capacity of the new <see cref="T:J2N.Collections.Generic.Dictionary`2"/> is large enough to contain all the
elements in <paramref name="collection"/>.
<para/>
<see cref="T:J2N.Collections.Generic.Dictionary`2"/> requires an equality implementation to determine whether keys are equal.
This constructor uses the default generic equality comparer, <see cref="P:J2N.Collections.Generic.EqualityComparer`1.Default"/>. If type
<typeparamref name="TKey"/> implements the <see cref="T:System.IEquatable`1"/> generic interface, the default equality
comparer uses that implementation. Alternatively, you can specify an implementation of the <see cref="T:System.Collections.Generic.IEqualityComparer`1"/>
generic interface by using a constructor that accepts a comparer parameter.
<para/>
This constructor is an O(n) operation, where n is the number of elements in <paramref name="collection"/>.
</remarks>
</member>
<member name="M:J2N.Collections.Generic.Dictionary`2.#ctor(System.Collections.Generic.IEnumerable{System.Collections.Generic.KeyValuePair{`0,`1}},System.Collections.Generic.IEqualityComparer{`0})">
<summary>
Initializes a new instance of the <see cref="T:J2N.Collections.Generic.Dictionary`2"/> class that contains elements copied
from the specified <see cref="T:System.Collections.Generic.IDictionary`2"/> and uses the specified <see cref="T:System.Collections.Generic.IEqualityComparer`1"/>.
</summary>
<param name="collection">The <see cref="T:IEnumerable{KeyValuePair{TKey, TValue}}"/> whose elements are copied to the new
<see cref="T:J2N.Collections.Generic.Dictionary`2"/>.</param>
<param name="comparer">The <see cref="T:System.Collections.Generic.IEqualityComparer`1"/> implementation to use when comparing keys, or <c>null</c>
to use the default <see cref="T:J2N.Collections.Generic.EqualityComparer`1"/> for the type of the key.</param>
<exception cref="T:System.ArgumentNullException"><paramref name="collection"/> is <c>null</c>.</exception>
<exception cref="T:System.ArgumentException"><paramref name="collection"/> contains one or more duplicate keys.</exception>
<remarks>
Use this constructor with the case-insensitive string comparers provided by the <see cref="T:System.StringComparer"/>
class to create dictionaries with case-insensitive string keys.
<para/>
Every key in a <see cref="T:J2N.Collections.Generic.Dictionary`2"/> must be unique according to the specified comparer;
likewise, every key in the source <paramref name="collection"/> must also be unique according to the specified comparer.
<para/>
NOTE: For example, duplicate keys can occur if <paramref name="comparer"/> is one of the case-insensitive string
comparers provided by the <see cref="T:System.StringComparer"/> class and <paramref name="collection"/> does not use a
case-insensitive comparer key.
<para/>
The initial capacity of the new <see cref="T:J2N.Collections.Generic.Dictionary`2"/> is large enough to contain all the elements in
<paramref name="collection"/>.
<para/>
<see cref="T:J2N.Collections.Generic.Dictionary`2"/> requires an equality implementation to determine whether keys are equal.
If comparer is <c>null</c>, this constructor uses the default generic equality comparer, <see cref="P:J2N.Collections.Generic.EqualityComparer`1.Default"/>.
If type <typeparamref name="TKey"/> implements the <see cref="T:System.IEquatable`1"/> generic interface, the default equality
comparer uses that implementation.
<para/>
This constructor is an O(<c>n</c>) operation, where <c>n</c> is the number of elements in <paramref name="collection"/>.
</remarks>
</member>
<member name="M:J2N.Collections.Generic.Dictionary`2.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
<summary>
Initializes a new instance of the <see cref="T:J2N.Collections.Generic.Dictionary`2"/> class with serialized data.
</summary>
<param name="info">A <see cref="T:System.Runtime.Serialization.SerializationInfo"/> object containing
the information required to serialize the <see cref="T:J2N.Collections.Generic.Dictionary`2"/>.</param>
<param name="context">A <see cref="T:System.Runtime.Serialization.StreamingContext"/> structure containing
the source and destination of the serialized stream associated with the <see cref="T:J2N.Collections.Generic.Dictionary`2"/>.</param>
<remarks>
This constructor is called during deserialization to reconstitute an object transmitted over a stream.
For more information, see
<a href="https://docs.microsoft.com/en-us/dotnet/standard/serialization/xml-and-soap-serialization">XML and SOAP Serialization</a>.
</remarks>
</member>
<member name="M:J2N.Collections.Generic.Dictionary`2.AsReadOnly">
<summary>
Returns a read-only <see cref="T:J2N.Collections.ObjectModel.ReadOnlyDictionary`2"/> wrapper for the current collection.
</summary>
<returns>An object that acts as a read-only wrapper around the current <see cref="T:J2N.Collections.Generic.Dictionary`2"/>.</returns>
<remarks>
To prevent any modifications to the <see cref="T:J2N.Collections.Generic.Dictionary`2"/> object, expose it only through this wrapper.
A <see cref="T:J2N.Collections.ObjectModel.ReadOnlyDictionary`2"/> object does not expose methods that modify the collection. However,
if changes are made to the underlying <see cref="T:J2N.Collections.Generic.Dictionary`2"/> object, the read-only collection reflects those changes.
<para/>
This method is an O(1) operation.
</remarks>
</member>
<member name="P:J2N.Collections.Generic.Dictionary`2.EqualityComparer">
<summary>
Gets the <see cref="T:System.Collections.Generic.IEqualityComparer`1"/> that is used to determine equality of keys
for the dictionary.
</summary>
<remarks>
<see cref="T:J2N.Collections.Generic.Dictionary`2"/> requires an equality implementation to determine
whether keys are equal. You can specify an implementation of the <see cref="T:System.Collections.Generic.IEqualityComparer`1"/>
generic interface by using a constructor that accepts a comparer parameter; if you do not
specify one, J2N's default generic equality comparer <see cref="P:J2N.Collections.Generic.EqualityComparer`1.Default"/> is used.
<para/>
Getting the value of this property is an O(1) operation.
</remarks>
</member>
<member name="M:J2N.Collections.Generic.Dictionary`2.ContainsValue(`1)">
<summary>
Determines whether the <see cref="T:J2N.Collections.Generic.Dictionary`2"/> contains a specific value.
</summary>
<param name="value">The value to locate in the <see cref="T:J2N.Collections.Generic.Dictionary`2"/>.
The value can be <c>null</c> for reference types.</param>
<returns><c>true</c> if the <see cref="T:J2N.Collections.Generic.Dictionary`2"/> contains an element
with the specified value; otherwise, <c>false</c>.</returns>
<remarks>
This method determines equality using J2N's default equality comparer
<see cref="P:J2N.Collections.Generic.EqualityComparer`1.Default"/> for <typeparamref name="TValue"/>,
the type of values in the dictionary.
<para/>
This method performs a linear search; therefore, the average execution time
is proportional to <see cref="P:J2N.Collections.Generic.Dictionary`2.Count"/>. That is, this method is an O(<c>n</c>) operation,
where <c>n</c> is <see cref="P:J2N.Collections.Generic.Dictionary`2.Count"/>.
</remarks>
</member>
<member name="M:J2N.Collections.Generic.Dictionary`2.ContainsValue(`1,System.Collections.Generic.IEqualityComparer{`1})">
<summary>
Determines whether the <see cref="T:J2N.Collections.Generic.Dictionary`2"/> contains a specific value
as determined by the provided <paramref name="valueComparer"/>.
</summary>
<param name="value">The value to locate in the <see cref="T:J2N.Collections.Generic.Dictionary`2"/>.
The value can be <c>null</c> for reference types.</param>
<param name="valueComparer">The <see cref="T:System.Collections.Generic.IEqualityComparer`1"/> to use
to test each value for equality.</param>
<returns><c>true</c> if the <see cref="T:J2N.Collections.Generic.Dictionary`2"/> contains an element
with the specified value; otherwise, <c>false</c>.</returns>
<remarks>
This method performs a linear search; therefore, the average execution time
is proportional to <see cref="P:J2N.Collections.Generic.Dictionary`2.Count"/>. That is, this method is an O(<c>n</c>) operation,
where <c>n</c> is <see cref="P:J2N.Collections.Generic.Dictionary`2.Count"/>.
</remarks>
</member>
<member name="M:J2N.Collections.Generic.Dictionary`2.EnsureCapacity(System.Int32)">
<summary>
Ensures that the dictionary can hold up to a specified number of entries without any
further expansion of its backing storage.
</summary>
<param name="capacity">The number of entries.</param>
<returns>The current capacity of the <see cref="T:J2N.Collections.Generic.Dictionary`2"/>.</returns>
<exception cref="T:System.ArgumentOutOfRangeException"><paramref name="capacity"/> is less than 0.</exception>
</member>
<member name="M:J2N.Collections.Generic.Dictionary`2.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
<summary>
Implements the <see cref="T:System.Runtime.Serialization.ISerializable"/> interface and returns the data needed to
serialize the <see cref="T:J2N.Collections.Generic.Dictionary`2"/> instance.
</summary>
<param name="info">A <see cref="T:System.Runtime.Serialization.SerializationInfo"/> object that contains the
information required to serialize the <see cref="T:J2N.Collections.Generic.Dictionary`2"/>.</param>
<param name="context">A <see cref="T:System.Runtime.Serialization.StreamingContext"/> structure that contains
the source and destination of the serialized stream associated with the <see cref="T:J2N.Collections.Generic.Dictionary`2"/> instance.</param>
<exception cref="T:System.ArgumentNullException"><paramref name="info"/> is <c>null</c>.</exception>
<remarks>This method is an O(<c>n</c>) operation, where <c>n</c> is <see cref="P:J2N.Collections.Generic.Dictionary`2.Count"/>.</remarks>
</member>
<member name="M:J2N.Collections.Generic.Dictionary`2.OnDeserialization(System.Object)">
<summary>
Implements the <see cref="T:System.Runtime.Serialization.ISerializable"/> interface and raises the deserialization
event when the deserialization is complete.
</summary>
<param name="sender">The source of the deserialization event.</param>
<exception cref="T:System.Runtime.Serialization.SerializationException">
The <see cref="T:System.Runtime.Serialization.SerializationInfo"/> object associated with the current
<see cref="T:J2N.Collections.Generic.Dictionary`2"/> instance is invalid.</exception>
<remarks>This method is an O(<c>n</c>) operation, where <c>n</c> is <see cref="P:J2N.Collections.Generic.Dictionary`2.Count"/>.</remarks>
</member>
<member name="M:J2N.Collections.Generic.Dictionary`2.TrimExcess(System.Int32)">
<summary>
Sets the capacity of this dictionary to hold up a specified number of entries
without any further expansion of its backing storage.
</summary>
<param name="capacity">The new capacity.</param>
<exception cref="T:System.ArgumentOutOfRangeException"><paramref name="capacity"/> is less
than <see cref="T:J2N.Collections.Generic.Dictionary`2"/>.</exception>
<remarks>
This method can be used to minimize the memory overhead once it is known that no
new elements will be added.
</remarks>
</member>
<member name="M:J2N.Collections.Generic.Dictionary`2.TrimExcess">
<summary>
Sets the capacity of this dictionary to what it would be if it had been originally
initialized with all its entries.
</summary>
<remarks>
This method can be used to minimize memory overhead once it is known that no new
elements will be added to the dictionary. To allocate a minimum size storage array,
execute the following statements:
<code>
dictionary.Clear();
dictionary.TrimExcess();
</code>
</remarks>
</member>
<member name="M:J2N.Collections.Generic.Dictionary`2.TryAdd(`0,`1)">
<summary>
Attempts to add the specified key and value to the dictionary.
</summary>
<param name="key">The key of the element to add. It can be <c>null</c>.</param>
<param name="value">The value of the element to add. It can be <c>null</c>.</param>
<returns><c>true</c> if the key/value pair was added to the dictionary successfully; otherwise, <c>false</c>.</returns>
<remarks>Unlike the <see cref="M:J2N.Collections.Generic.Dictionary`2.Add(`0,`1)"/> method, this method doesn't throw an exception
if the element with the given key exists in the dictionary. Unlike the Dictionary indexer, <see cref="M:J2N.Collections.Generic.Dictionary`2.TryAdd(`0,`1)"/>
doesn't override the element if the element with the given key exists in the dictionary. If the key already exists,
<see cref="M:J2N.Collections.Generic.Dictionary`2.TryAdd(`0,`1)"/> does nothing and returns <c>false</c>.</remarks>
</member>
<member name="P:J2N.Collections.Generic.Dictionary`2.Keys">
<summary>
Gets a collection containing the keys in the <see cref="T:J2N.Collections.Generic.Dictionary`2"/>.
</summary>
<remarks>
The order of the keys in the <see cref="T:System.Collections.Generic.ICollection`1"/> is unspecified, but it is the same order as the
associated values in the <see cref="T:System.Collections.Generic.ICollection`1"/> returned by the <see cref="P:J2N.Collections.Generic.Dictionary`2.Values"/> property.
<para/>
The returned <see cref="T:System.Collections.Generic.ICollection`1"/> is not a static copy; instead,
the <see cref="T:System.Collections.Generic.ICollection`1"/> refers back to the keys in the original
<see cref="T:J2N.Collections.Generic.Dictionary`2"/>. Therefore, changes to the <see cref="T:J2N.Collections.Generic.Dictionary`2"/>
continue to be reflected in the <see cref="T:System.Collections.Generic.ICollection`1"/>.
<para/>
Getting the value of this property is an O(1) operation.
</remarks>
</member>
<member name="P:J2N.Collections.Generic.Dictionary`2.Values">
<summary>
Gets a collection containing the values in the <see cref="T:J2N.Collections.Generic.Dictionary`2"/>.
</summary>
<remarks>
The order of the values in the <see cref="T:System.Collections.Generic.ICollection`1"/> is unspecified, but it is the same order as the
associated keys in the <see cref="T:System.Collections.Generic.ICollection`1"/> returned by the <see cref="P:J2N.Collections.Generic.Dictionary`2.Keys"/> property.
<para/>
The returned <see cref="T:System.Collections.Generic.ICollection`1"/> is not a static copy;
instead, the <see cref="T:System.Collections.Generic.ICollection`1"/> refers back to the
values in the original <see cref="T:J2N.Collections.Generic.SortedDictionary`2"/>. Therefore, changes to
the <see cref="T:J2N.Collections.Generic.SortedDictionary`2"/> continue to be reflected in the
<see cref="T:System.Collections.Generic.ICollection`1"/>.
<para/>
Getting the value of this property is an O(1) operation.
</remarks>
</member>
<member name="P:J2N.Collections.Generic.Dictionary`2.Count">
<summary>
Gets the number of key/value pairs contained in the <see cref="T:J2N.Collections.Generic.Dictionary`2"/>.
</summary>
<remarks>
Getting the value of this property is an O(1) operation.
</remarks>
</member>
<member name="P:J2N.Collections.Generic.Dictionary`2.Item(`0)">
<summary>
Gets or sets the value associated with the specified key. The key may be <c>null</c>.
</summary>
<param name="key">The key of the value to get or set.</param>
<returns>The value associated with the specified key. If the specified key
is not found, a get operation throws a <see cref="T:System.Collections.Generic.KeyNotFoundException"/>, and
a set operation creates a new element with the specified key.</returns>
<exception cref="T:System.Collections.Generic.KeyNotFoundException">The property is retrieved and <paramref name="key"/>
does not exist in the collection.</exception>
<remarks>
This property provides the ability to access a specific element in the collection by using
the following C# syntax: <c>myCollection[key]</c> (<c>myCollection(key)</c> in Visual Basic).
<para/>
You can also use the <see cref="P:J2N.Collections.Generic.Dictionary`2.Item(`0)"/> property to add new elements by setting the value of a key
that does not exist in the <see cref="T:J2N.Collections.Generic.Dictionary`2"/>; for example,
<c>myCollection["myNonexistentKey"] = myValue</c>. However, if the specified key already exists in
the <see cref="T:J2N.Collections.Generic.Dictionary`2"/>, setting the <see cref="P:J2N.Collections.Generic.Dictionary`2.Item(`0)"/> property overwrites
the old value. In contrast, the <see cref="M:J2N.Collections.Generic.Dictionary`2.Add(`0,`1)"/> method does not modify existing elements.
<para/>
Unlike the <see cref="T:System.Collections.Generic.Dictionary`2"/>, both keys and values can
be <c>null</c> if either <see cref="T:System.Nullable`1"/> or a reference type.
<para/>
The C# language uses the <see cref="P:J2N.Collections.Generic.Dictionary`2.Item(`0)"/> keyword to define the indexers instead of implementing the
<c>Item[TKey]</c> property. Visual Basic implements <c>Item[TKey]</c> as a default property, which provides
the same indexing functionality.
<para/>
Getting the value of this property is an O(log <c>n</c>) operation; setting the property is also
an O(log <c>n</c>) operation.
</remarks>
</member>
<member name="M:J2N.Collections.Generic.Dictionary`2.Add(`0,`1)">
<summary>
Adds an element with the specified key and value into the <see cref="T:J2N.Collections.Generic.Dictionary`2"/>.
</summary>
<param name="key">The key of the element to add.</param>
<param name="value">The value of the element to add. The value can be <c>null</c> for reference types.</param>
<exception cref="T:System.ArgumentException">An element with the same key already exists
in the <see cref="T:J2N.Collections.Generic.Dictionary`2"/>.</exception>
<remarks>
You can also use the <see cref="P:J2N.Collections.Generic.Dictionary`2.Item(`0)"/> property to add new elements by setting the value of
a key that does not exist in the <see cref="T:J2N.Collections.Generic.Dictionary`2"/>; for example,
<c>myCollection["myNonexistentKey"] = myValue</c> (in Visual Basic, <c>myCollection("myNonexistantKey") = myValue</c>).
However, if the specified key already exists in the <see cref="T:J2N.Collections.Generic.Dictionary`2"/>, setting
the <see cref="P:J2N.Collections.Generic.Dictionary`2.Item(`0)"/> property overwrites the old value. In contrast, the <see cref="M:J2N.Collections.Generic.Dictionary`2.Add(`0,`1)"/>
method throws an exception if an element with the specified key already exists.
<para/>
Both keys and values can be <c>null</c> if the corresponding <typeparamref name="TKey"/> or
<typeparamref name="TValue"/> is <see cref="T:System.Nullable`1"/> or a reference type.
<para/>
This method is an O(log <c>n</c>) operation, where <c>n</c> is <see cref="P:J2N.Collections.Generic.Dictionary`2.Count"/>.
</remarks>
</member>
<member name="M:J2N.Collections.Generic.Dictionary`2.ContainsKey(`0)">
<summary>
Determines whether the <see cref="T:J2N.Collections.Generic.Dictionary`2"/> contains an
element with the specified key.
</summary>
<param name="key">The key to locate in the <see cref="T:J2N.Collections.Generic.Dictionary`2"/>. The key can be <c>null</c></param>
<returns><c>true</c> if the <see cref="T:J2N.Collections.Generic.Dictionary`2"/> contains an element
with the specified key; otherwise, <c>false</c>.</returns>
<remarks>This method is an O(log <c>n</c>) operation.</remarks>
</member>
<member name="M:J2N.Collections.Generic.Dictionary`2.Remove(`0)">
<summary>
Removes the element with the specified key from the <see cref="T:J2N.Collections.Generic.Dictionary`2"/>.
</summary>
<param name="key">The key of the element to remove.</param>
<returns><c>true</c> if the element is successfully removed; otherwise, <c>false</c>.
This method also returns <c>false</c> if key is not found in the <see cref="T:J2N.Collections.Generic.Dictionary`2"/>.</returns>
<remarks>
If the <see cref="T:J2N.Collections.Generic.Dictionary`2"/> does not contain an element with the specified key, the
<see cref="T:J2N.Collections.Generic.Dictionary`2"/> remains unchanged. No exception is thrown.
<para/>
This method is an O(log <c>n</c>) operation.
</remarks>
</member>
<member name="M:J2N.Collections.Generic.Dictionary`2.TryGetValue(`0,`1@)">
<summary>
Gets the value associated with the specified key.
</summary>
<param name="key">The key of the value to get.</param>
<param name="value">When this method returns, the value associated with the specified key,
if the key is found; otherwise, the default value for the type of the <paramref name="value"/> parameter.</param>
<returns><c>true</c> if the <see cref="T:J2N.Collections.Generic.Dictionary`2"/> contains an element with the
specified key; otherwise, <c>false</c>.</returns>
<remarks>
This method combines the functionality of the <see cref="M:J2N.Collections.Generic.Dictionary`2.ContainsKey(`0)"/> method
and the <see cref="P:J2N.Collections.Generic.Dictionary`2.Item(`0)"/> property.
<para/>
If the key is not found, then the <paramref name="value"/> parameter gets the appropriate
default value for the type <typeparamref name="TValue"/>; for example, 0 (zero) for
integer types, <c>false</c> for Boolean types, and <c>null</c> for reference types.
<para/>
Use the <see cref="M:J2N.Collections.Generic.Dictionary`2.TryGetValue(`0,`1@)"/> method if your code frequently
attempts to access keys that are not in the dictionary. Using this method is more
efficient than catching the <see cref="T:System.Collections.Generic.KeyNotFoundException"/> thrown by the
<see cref="P:J2N.Collections.Generic.Dictionary`2.Item(`0)"/> property.
<para/>
This method approaches an O(1) operation.
</remarks>
</member>
<member name="M:J2N.Collections.Generic.Dictionary`2.Clear">
<summary>
Removes all elements from the <see cref="T:J2N.Collections.Generic.Dictionary`2"/>.
</summary>
<remarks>
The <see cref="P:J2N.Collections.Generic.Dictionary`2.Count"/> property is set to 0, and references to other objects
from elements of the collection are also released.
<para/>
This method is an O(1) operation, since the root of the internal data structures
is simply released for garbage collection.
</remarks>
</member>
<member name="M:J2N.Collections.Generic.Dictionary`2.CopyTo(System.Collections.Generic.KeyValuePair{`0,`1}[],System.Int32)">
<summary>
Copies the elements of the <see cref="T:J2N.Collections.Generic.Dictionary`2"/> to the specified array
of <see cref="T:System.Collections.Generic.KeyValuePair`2"/> structures, starting at the specified index.
</summary>
<param name="array">The one-dimensional array of <see cref="T:System.Collections.Generic.KeyValuePair`2"/> structures
that is the destination of the elements copied from the current <see cref="T:J2N.Collections.Generic.Dictionary`2"/>.
The array must have zero-based indexing.</param>
<param name="index">The zero-based index in <paramref name="array"/> at which copying begins.</param>
</member>
<member name="M:J2N.Collections.Generic.Dictionary`2.Remove(`0,`1@)">
<summary>
Removes the element with the specified key from the <see cref="T:J2N.Collections.Generic.Dictionary`2"/>.
If the element exists, the associated <paramref name="value"/> is output after it is removed.
</summary>
<param name="key">The key of the element to remove.</param>
<param name="value">The value of the element before it is removed.</param>
<returns><c>true</c> if the element is successfully removed; otherwise, <c>false</c>.
This method also returns <c>false</c> if key is not found in the <see cref="T:J2N.Collections.Generic.Dictionary`2"/>.</returns>
<remarks>
If the <see cref="T:J2N.Collections.Generic.Dictionary`2"/> does not contain an element with the specified key, the
<see cref="T:J2N.Collections.Generic.Dictionary`2"/> remains unchanged. No exception is thrown.
</remarks>
</member>
<member name="M:J2N.Collections.Generic.Dictionary`2.GetEnumerator">
<summary>
Returns an enumerator that iterates through the <see cref="T:J2N.Collections.Generic.Dictionary`2"/>.
</summary>
<returns>A <see cref="T:System.Collections.Generic.IEnumerator`1"/> for the
<see cref="T:J2N.Collections.Generic.Dictionary`2"/>.</returns>
<remarks>
For purposes of enumeration, each item is a <see cref="T:System.Collections.Generic.KeyValuePair`2"/> structure
representing a value and its key.
<para/>
The <c>foreach</c> statement of the C# language (<c>for each</c> in C++, <c>For Each</c> in Visual Basic)
hides the complexity of enumerators. Therefore, using <c>foreach</c> is recommended instead of directly manipulating the enumerator.
<para/>
Enumerators can be used to read the data in the collection, but they cannot be used to modify the underlying collection.
<para/>
The dictionary is maintained in a sorted order using an internal tree. Every new element is positioned at the correct sort position,
and the tree is adjusted to maintain the sort order whenever an element is removed. While enumerating, the sort order is maintained.
<para/>
Initially, the enumerator is positioned before the first element in the collection. At this position, the
<see cref="P:System.Collections.Generic.IEnumerator`1.Current"/> property is undefined. Therefore, you must call the
<see cref="M:System.Collections.IEnumerator.MoveNext"/> method to advance the enumerator to the first element
of the collection before reading the value of <see cref="P:System.Collections.Generic.IEnumerator`1.Current"/>.
<para/>
The <see cref="P:System.Collections.Generic.IEnumerator`1.Current"/> property returns the same object until
<see cref="M:System.Collections.IEnumerator.MoveNext"/> is called. <see cref="M:System.Collections.IEnumerator.MoveNext"/>
sets <see cref="P:System.Collections.Generic.IEnumerator`1.Current"/> to the next element.
<para/>
If <see cref="M:System.Collections.IEnumerator.MoveNext"/> passes the end of the collection, the enumerator is
positioned after the last element in the collection and <see cref="M:System.Collections.IEnumerator.MoveNext"/>
returns <c>false</c>. When the enumerator is at this position, subsequent calls to <see cref="M:System.Collections.IEnumerator.MoveNext"/>
also return <c>false</c>. If the last call to <see cref="M:System.Collections.IEnumerator.MoveNext"/> returned <c>false</c>,
<see cref="P:System.Collections.Generic.IEnumerator`1.Current"/> is undefined. You cannot set <see cref="P:System.Collections.Generic.IEnumerator`1.Current"/>
to the first element of the collection again; you must create a new enumerator object instead.
<para/>
An enumerator remains valid as long as the collection remains unchanged. If changes are made to the collection,
such as adding, modifying, or deleting elements, the enumerator is irrecoverably invalidated and the next call
to <see cref="M:System.Collections.IEnumerator.MoveNext"/> or <see cref="M:System.Collections.IEnumerator.Reset"/> throws an
<see cref="T:System.InvalidOperationException"/>.
<para/>
The enumerator does not have exclusive access to the collection; therefore, enumerating through a collection is
intrinsically not a thread-safe procedure. To guarantee thread safety during enumeration, you can lock the
collection during the entire enumeration. To allow the collection to be accessed by multiple threads for
reading and writing, you must implement your own synchronization.
<para/>
Default implementations of collections in the <see cref="N:J2N.Collections.Generic"/> namespace are not synchronized.
<para/>
This method is an O(1) operation.
</remarks>
</member>
<member name="M:J2N.Collections.Generic.Dictionary`2.Equals(System.Object,System.Collections.IEqualityComparer)">
<summary>
Determines whether the specified object is structurally equal to the current dictionary
using rules provided by the specified <paramref name="comparer"/>.
</summary>
<param name="other">The object to compare with the current object.</param>
<param name="comparer">The <see cref="T:System.Collections.IEqualityComparer"/> implementation to use to determine
whether the current object and <paramref name="other"/> are structurally equal.</param>
<returns><c>true</c> if <paramref name="other"/> is structurally equal to the current dictionary;
otherwise, <c>false</c>.</returns>
<exception cref="T:System.ArgumentNullException">If <paramref name="comparer"/> is <c>null</c>.</exception>
</member>
<member name="M:J2N.Collections.Generic.Dictionary`2.GetHashCode(System.Collections.IEqualityComparer)">
<summary>
Gets the hash code representing the current dictionary using rules specified by the
provided <paramref name="comparer"/>.
</summary>
<param name="comparer">The <see cref="T:System.Collections.IEqualityComparer"/> implementation to use to generate
the hash code.</param>
<returns>A hash code representing the current dictionary.</returns>
</member>
<member name="M:J2N.Collections.Generic.Dictionary`2.Equals(System.Object)">
<summary>
Determines whether the specified object is structurally equal to the current dictionary
using rules similar to those in the JDK's AbstactMap class. Two dictionaries are considered
equal when they both contain the same mapppings (in any order).
</summary>
<param name="obj">The object to compare with the current object.</param>
<returns><c>true</c> if the specified object implements <see cref="T:System.Collections.Generic.IDictionary`2"/>
and it contains the same elements; otherwise, <c>false</c>.</returns>
<seealso cref="M:J2N.Collections.Generic.Dictionary`2.Equals(System.Object,System.Collections.IEqualityComparer)"/>
</member>
<member name="M:J2N.Collections.Generic.Dictionary`2.GetHashCode">
<summary>
Gets the hash code for the current dictionary. The hash code is calculated
by taking each nested element's hash code into account.
</summary>
<returns>A hash code for the current object.</returns>
<seealso cref="M:J2N.Collections.Generic.Dictionary`2.GetHashCode(System.Collections.IEqualityComparer)"/>
</member>
<member name="M:J2N.Collections.Generic.Dictionary`2.ToString(System.String,System.IFormatProvider)">
<summary>
Returns a string that represents the current dictionary using the specified
<paramref name="format"/> and <paramref name="formatProvider"/>.
</summary>
<returns>A string that represents the current dictionary.</returns>
<exception cref="T:System.ArgumentNullException"><paramref name="format"/> is <c>null</c>.</exception>
<exception cref="T:System.FormatException">
<paramref name="format"/> is invalid.
<para/>
-or-
<para/>
The index of a format item is not zero.
</exception>
</member>
<member name="M:J2N.Collections.Generic.Dictionary`2.ToString">
<summary>
Returns a string that represents the current dictionary using
<see cref="P:J2N.Text.StringFormatter.CurrentCulture"/>.
<para/>
The presentation has a specific format. It is enclosed by curly
brackets ("{}"). Keys and values are separated by '=',
KeyValuePairs are separated by ', ' (comma and space).
</summary>
<returns>A string that represents the current list.</returns>
</member>
<member name="M:J2N.Collections.Generic.Dictionary`2.ToString(System.IFormatProvider)">
<summary>
Returns a string that represents the current dictionary using the specified
<paramref name="formatProvider"/>.
</summary>
<returns>A string that represents the current dictionary.</returns>
<exception cref="T:System.ArgumentNullException"><paramref name="formatProvider"/> is <c>null</c>.</exception>
</member>
<member name="M:J2N.Collections.Generic.Dictionary`2.ToString(System.String)">
<summary>
Returns a string that represents the current dictionary using the specified
<paramref name="format"/> and <see cref="P:J2N.Text.StringFormatter.CurrentCulture"/>.
<para/>
The presentation has a specific format. It is enclosed by curly
brackets ("{}"). Keys and values are separated by '=',
KeyValuePairs are separated by ', ' (comma and space).
</summary>
<returns>A string that represents the current dictionary.</returns>
<exception cref="T:System.ArgumentNullException"><paramref name="format"/> is <c>null</c>.</exception>
<exception cref="T:System.FormatException">
<paramref name="format"/> is invalid.
<para/>
-or-
<para/>
The index of a format item is not zero.
</exception>
</member>
<member name="T:J2N.Collections.Generic.Dictionary`2.KeyCollection">
<summary>
Represents the collection of keys in a <see cref="T:J2N.Collections.Generic.Dictionary`2"/>. This class cannot be inherited.
</summary>
<remarks>
The <see cref="P:J2N.Collections.Generic.Dictionary`2.Keys"/> property returns an instance of this type, containing all
the keys in that <see cref="T:J2N.Collections.Generic.Dictionary`2"/>. The order of the keys in the
<see cref="T:J2N.Collections.Generic.Dictionary`2.KeyCollection"/> is unspecified, but it is the same order as the
associated values in the <see cref="T:J2N.Collections.Generic.Dictionary`2.ValueCollection"/> returned by the
<see cref="P:J2N.Collections.Generic.Dictionary`2.Values"/> property.
<para/>
The <see cref="T:J2N.Collections.Generic.Dictionary`2.KeyCollection"/> is not a static copy; instead, the
<see cref="T:J2N.Collections.Generic.Dictionary`2.KeyCollection"/> refers back to the keys in the original
<see cref="T:J2N.Collections.Generic.Dictionary`2"/>. Therefore, changes to the <see cref="T:J2N.Collections.Generic.Dictionary`2"/>
continue to be reflected in the <see cref="T:J2N.Collections.Generic.Dictionary`2.KeyCollection"/>.
</remarks>
</member>
<member name="M:J2N.Collections.Generic.Dictionary`2.KeyCollection.#ctor(J2N.Collections.Generic.Dictionary{`0,`1})">
<summary>
Initializes a new instance of the <see cref="T:J2N.Collections.Generic.Dictionary`2.KeyCollection"/>
class that reflects the keys in the specified <see cref="T:J2N.Collections.Generic.Dictionary`2"/>.
</summary>
<param name="dictionary">The <see cref="T:J2N.Collections.Generic.Dictionary`2"/> whose keys are
reflected in the new <see cref="T:J2N.Collections.Generic.Dictionary`2.KeyCollection"/>.</param>
<exception cref="T:System.ArgumentNullException"></exception>
</member>
<member name="P:J2N.Collections.Generic.Dictionary`2.KeyCollection.Count">
<summary>
Gets the number of elements contained in the <see cref="T:J2N.Collections.Generic.Dictionary`2.KeyCollection"/>.
</summary>
<value>
The number of elements contained in the <see cref="T:J2N.Collections.Generic.Dictionary`2.KeyCollection"/>.
<para/>
Retrieving the value of this property is an O(1) operation.
</value>
</member>
<member name="M:J2N.Collections.Generic.Dictionary`2.KeyCollection.CopyTo(`0[],System.Int32)">
<summary>
Copies the <see cref="T:J2N.Collections.Generic.Dictionary`2.KeyCollection"/> elements to an
existing one-dimensional <see cref="T:System.Array"/>, starting at the specified array index.
</summary>
<param name="array">The one-dimensional <see cref="T:System.Array"/> that is the destination
of the elements copied from <see cref="T:J2N.Collections.Generic.Dictionary`2.KeyCollection"/>.
The <see cref="T:System.Array"/> must have zero-based indexing.</param>
<param name="index">The zero-based index in <paramref name="array"/> at which copying begins.</param>
<exception cref="T:System.ArgumentNullException"><paramref name="array"/> is <c>null</c>.</exception>
<exception cref="T:System.ArgumentOutOfRangeException"><paramref name="index"/> is less than zero.</exception>
<exception cref="T:System.ArgumentException">The number of elements in the source <see cref="T:J2N.Collections.Generic.Dictionary`2.KeyCollection"/>
is greater than the available space from <paramref name="index"/> to the end of the destination <paramref name="array"/>.</exception>
<remarks>
The elements are copied to the <see cref="T:System.Array"/> in the same order in which the enumerator iterates through
the <see cref="T:J2N.Collections.Generic.Dictionary`2.KeyCollection"/>.
<para/>
This method is an O(<c>n</c>) operation, where <c>n</c> is <see cref="P:J2N.Collections.Generic.Dictionary`2.KeyCollection.Count"/>.
</remarks>
</member>
<member name="M:J2N.Collections.Generic.Dictionary`2.KeyCollection.GetEnumerator">
<summary>
Returns an enumerator that iterates through the <see cref="T:J2N.Collections.Generic.Dictionary`2.KeyCollection"/>.
</summary>
<returns>A <see cref="T:J2N.Collections.Generic.Dictionary`2.KeyCollection.Enumerator"/> for the <see cref="T:J2N.Collections.Generic.Dictionary`2.KeyCollection"/>.</returns>
<remarks>
The <c>foreach</c> statement of the C# language (<c>for each</c> in C++, <c>For Each</c> in Visual Basic)
hides the complexity of enumerators. Therefore, using <c>foreach</c> is recommended instead of directly manipulating the enumerator.
<para/>
Enumerators can be used to read the data in the collection, but they cannot be used to modify the underlying collection.
<para/>
Initially, the enumerator is positioned before the first element in the collection. At this position, the
<see cref="P:J2N.Collections.Generic.Dictionary`2.KeyCollection.Enumerator.Current"/> property is undefined. Therefore, you must call the
<see cref="M:J2N.Collections.Generic.Dictionary`2.KeyCollection.Enumerator.MoveNext"/> method to advance the enumerator to the first element
of the collection before reading the value of <see cref="P:J2N.Collections.Generic.Dictionary`2.KeyCollection.Enumerator.Current"/>.
<para/>
The <see cref="P:J2N.Collections.Generic.Dictionary`2.KeyCollection.Enumerator.Current"/> property returns the same object until
<see cref="M:J2N.Collections.Generic.Dictionary`2.KeyCollection.Enumerator.MoveNext"/> is called. <see cref="M:J2N.Collections.Generic.Dictionary`2.KeyCollection.Enumerator.MoveNext"/>
sets <see cref="P:J2N.Collections.Generic.Dictionary`2.KeyCollection.Enumerator.Current"/> to the next element.
<para/>
If <see cref="M:J2N.Collections.Generic.Dictionary`2.KeyCollection.Enumerator.MoveNext"/> passes the end of the collection, the enumerator is
positioned after the last element in the collection and <see cref="M:J2N.Collections.Generic.Dictionary`2.KeyCollection.Enumerator.MoveNext"/>
returns <c>false</c>. When the enumerator is at this position, subsequent calls to <see cref="M:J2N.Collections.Generic.Dictionary`2.KeyCollection.Enumerator.MoveNext"/>
also return <c>false</c>. If the last call to <see cref="M:J2N.Collections.Generic.Dictionary`2.KeyCollection.Enumerator.MoveNext"/> returned <c>false</c>,
<see cref="P:J2N.Collections.Generic.Dictionary`2.KeyCollection.Enumerator.Current"/> is undefined. You cannot set <see cref="P:J2N.Collections.Generic.Dictionary`2.KeyCollection.Enumerator.Current"/>
to the first element of the collection again; you must create a new enumerator object instead.
<para/>
An enumerator remains valid as long as the collection remains unchanged. If changes are made to the collection,
such as adding, modifying, or deleting elements, the enumerator is irrecoverably invalidated and the next call
to <see cref="M:J2N.Collections.Generic.Dictionary`2.KeyCollection.Enumerator.MoveNext"/> or <see cref="M:System.Collections.IEnumerator.Reset"/> throws an
<see cref="T:System.InvalidOperationException"/>.
<para/>
The only mutating methods which do not invalidate enumerators are <see cref="M:J2N.Collections.Generic.Dictionary`2.Remove(`0)"/>,
<see cref="M:J2N.Collections.Generic.Dictionary`2.Remove(`0,`1@)"/> and <see cref="M:J2N.Collections.Generic.Dictionary`2.Clear"/>.
<para/>
The enumerator does not have exclusive access to the collection; therefore, enumerating through a collection is
intrinsically not a thread-safe procedure. To guarantee thread safety during enumeration, you can lock the
collection during the entire enumeration. To allow the collection to be accessed by multiple threads for
reading and writing, you must implement your own synchronization.
<para/>
Default implementations of collections in the <see cref="N:J2N.Collections.Generic"/> namespace are not synchronized.
<para/>
This method is an O(1) operation.
</remarks>
</member>
<member name="T:J2N.Collections.Generic.Dictionary`2.KeyCollection.Enumerator">
<summary>
Enumerates the elements of a <see cref="T:J2N.Collections.Generic.Dictionary`2.KeyCollection"/>.
</summary>
<remarks>
The <c>foreach</c> statement of the C# language (<c>for each</c> in C++, <c>For Each</c> in Visual Basic)
hides the complexity of enumerators. Therefore, using <c>foreach</c> is recommended instead of directly manipulating the enumerator.
<para/>
Enumerators can be used to read the data in the collection, but they cannot be used to modify the underlying collection.
<para/>
Initially, the enumerator is positioned before the first element in the collection. At this position, the
<see cref="P:J2N.Collections.Generic.Dictionary`2.KeyCollection.Enumerator.Current"/> property is undefined. Therefore, you must call the
<see cref="M:J2N.Collections.Generic.Dictionary`2.KeyCollection.Enumerator.MoveNext"/> method to advance the enumerator to the first element
of the collection before reading the value of <see cref="P:J2N.Collections.Generic.Dictionary`2.KeyCollection.Enumerator.Current"/>.
<para/>
The <see cref="P:J2N.Collections.Generic.Dictionary`2.KeyCollection.Enumerator.Current"/> property returns the same object until
<see cref="M:J2N.Collections.Generic.Dictionary`2.KeyCollection.Enumerator.MoveNext"/> is called. <see cref="M:J2N.Collections.Generic.Dictionary`2.KeyCollection.Enumerator.MoveNext"/>
sets <see cref="P:J2N.Collections.Generic.Dictionary`2.KeyCollection.Enumerator.Current"/> to the next element.
<para/>
If <see cref="M:J2N.Collections.Generic.Dictionary`2.KeyCollection.Enumerator.MoveNext"/> passes the end of the collection, the enumerator is
positioned after the last element in the collection and <see cref="M:J2N.Collections.Generic.Dictionary`2.KeyCollection.Enumerator.MoveNext"/>
returns <c>false</c>. When the enumerator is at this position, subsequent calls to <see cref="M:J2N.Collections.Generic.Dictionary`2.KeyCollection.Enumerator.MoveNext"/>
also return <c>false</c>. If the last call to <see cref="M:J2N.Collections.Generic.Dictionary`2.KeyCollection.Enumerator.MoveNext"/> returned <c>false</c>,
<see cref="P:J2N.Collections.Generic.Dictionary`2.KeyCollection.Enumerator.Current"/> is undefined. You cannot set <see cref="P:J2N.Collections.Generic.Dictionary`2.KeyCollection.Enumerator.Current"/>
to the first element of the collection again; you must create a new enumerator object instead.
<para/>
An enumerator remains valid as long as the collection remains unchanged. If changes are made to the collection,
such as adding, modifying, or deleting elements, the enumerator is irrecoverably invalidated and the next call
to <see cref="M:J2N.Collections.Generic.Dictionary`2.KeyCollection.Enumerator.MoveNext"/> or <see cref="M:System.Collections.IEnumerator.Reset"/> throws an
<see cref="T:System.InvalidOperationException"/>.
<para/>
The only mutating methods which do not invalidate enumerators are <see cref="M:J2N.Collections.Generic.Dictionary`2.Remove(`0)"/>,
<see cref="M:J2N.Collections.Generic.Dictionary`2.Remove(`0,`1@)"/> and <see cref="M:J2N.Collections.Generic.Dictionary`2.Clear"/>.
<para/>
The enumerator does not have exclusive access to the collection; therefore, enumerating through a collection is
intrinsically not a thread-safe procedure. To guarantee thread safety during enumeration, you can lock the
collection during the entire enumeration. To allow the collection to be accessed by multiple threads for
reading and writing, you must implement your own synchronization.
<para/>
Default implementations of collections in the <see cref="N:J2N.Collections.Generic"/> namespace are not synchronized.
</remarks>
</member>
<member name="P:J2N.Collections.Generic.Dictionary`2.KeyCollection.Enumerator.Current">
<summary>
Gets the element at the current position of the enumerator.
</summary>
<value>
The element in the <see cref="T:J2N.Collections.Generic.Dictionary`2.KeyCollection"/> at
the current position of the enumerator.</value>
<remarks>
<see cref="P:J2N.Collections.Generic.Dictionary`2.KeyCollection.Enumerator.Current"/> is undefined under any of the following conditions:
<list type="bullet">
<item><description>The enumerator is positioned before the first element of the collection. That happens
after an enumerator is created or after the <see cref="M:System.Collections.IEnumerator.Reset"/> method is called.
The <see cref="M:J2N.Collections.Generic.Dictionary`2.KeyCollection.Enumerator.MoveNext"/> method must be called to advance the enumerator to the first element
of the collection before reading the value of the <see cref="P:J2N.Collections.Generic.Dictionary`2.KeyCollection.Enumerator.Current"/> property.</description></item>
<item><description>The last call to <see cref="M:J2N.Collections.Generic.Dictionary`2.KeyCollection.Enumerator.MoveNext"/> returned <c>false</c>, which indicates the
end of the collection and that the enumerator is positioned after the last element of the
collection.</description></item>
<item><description>The enumerator is invalidated due to changes made in the collection, such as adding,
modifying, or deleting elements.</description></item>
</list>
<para/>
<see cref="P:J2N.Collections.Generic.Dictionary`2.KeyCollection.Enumerator.Current"/> does not move the position of the enumerator, and consecutive calls to
<see cref="P:J2N.Collections.Generic.Dictionary`2.KeyCollection.Enumerator.Current"/> return the same object until either <see cref="M:J2N.Collections.Generic.Dictionary`2.KeyCollection.Enumerator.MoveNext"/> or <see cref="M:System.Collections.IEnumerator.Reset"/>
is called.
</remarks>
</member>
<member name="M:J2N.Collections.Generic.Dictionary`2.KeyCollection.Enumerator.Dispose">
<summary>
Releases all resources used by the <see cref="T:J2N.Collections.Generic.Dictionary`2.KeyCollection.Enumerator"/>.
</summary>
</member>
<member name="M:J2N.Collections.Generic.Dictionary`2.KeyCollection.Enumerator.MoveNext">
<summary>
Advances the enumerator to the next element of the <see cref="T:J2N.Collections.Generic.Dictionary`2.KeyCollection"/>.
</summary>
<returns><c>true</c> if the enumerator was successfully advanced to the next element;
<c>false</c> if the enumerator has passed the end of the collection.</returns>
<exception cref="T:System.InvalidOperationException">The collection was modified after the enumerator was created.</exception>
<remarks>
After an enumerator is created, the enumerator is positioned before the first element in the collection,
and the first call to <see cref="M:J2N.Collections.Generic.Dictionary`2.KeyCollection.Enumerator.MoveNext"/> advances the enumerator to the first element of the collection.
<para/>
If <see cref="M:J2N.Collections.Generic.Dictionary`2.KeyCollection.Enumerator.MoveNext"/> passes the end of the collection, the enumerator is positioned after the last element
in the collection and <see cref="M:J2N.Collections.Generic.Dictionary`2.KeyCollection.Enumerator.MoveNext"/> returns <c>false</c>. When the enumerator is at this position,
subsequent calls to <see cref="M:J2N.Collections.Generic.Dictionary`2.KeyCollection.Enumerator.MoveNext"/> also return <c>false</c>.
<para/>
An enumerator remains valid as long as the collection remains unchanged. If changes are made to the collection,
such as adding elements or changing the capacity, the enumerator is irrecoverably invalidated and the next
call to <see cref="M:J2N.Collections.Generic.Dictionary`2.KeyCollection.Enumerator.MoveNext"/> or <see cref="M:System.Collections.IEnumerator.Reset"/> throws an <see cref="T:System.InvalidOperationException"/>.
<para/>
The only mutating methods which do not invalidate enumerators are <see cref="M:J2N.Collections.Generic.Dictionary`2.Remove(`0)"/>,
<see cref="M:J2N.Collections.Generic.Dictionary`2.Remove(`0,`1@)"/> and <see cref="M:J2N.Collections.Generic.Dictionary`2.Clear"/>.
</remarks>
</member>
<member name="T:J2N.Collections.Generic.Dictionary`2.ValueCollection">
<summary>
Represents the collection of values in a <see cref="T:J2N.Collections.Generic.Dictionary`2"/>. This class cannot be inherited.
</summary>
<remarks>
The <see cref="P:J2N.Collections.Generic.Dictionary`2.Values"/> property returns an instance of this type, containing
all the values in that <see cref="T:J2N.Collections.Generic.Dictionary`2"/>. The order of the values in the
<see cref="T:J2N.Collections.Generic.Dictionary`2.ValueCollection"/> is unspecified, but it is the same order as
the associated keys in the <see cref="T:J2N.Collections.Generic.Dictionary`2.KeyCollection"/> returned by the
<see cref="P:J2N.Collections.Generic.Dictionary`2.Keys"/> property.
<para/>
The <see cref="T:J2N.Collections.Generic.Dictionary`2.ValueCollection"/> is not a static copy; instead, the
<see cref="T:J2N.Collections.Generic.Dictionary`2.ValueCollection"/> refers back to the values in the original
<see cref="T:J2N.Collections.Generic.Dictionary`2"/>. Therefore, changes to the <see cref="T:J2N.Collections.Generic.Dictionary`2"/>
continue to be reflected in the <see cref="T:J2N.Collections.Generic.Dictionary`2.ValueCollection"/>.
</remarks>
</member>
<member name="M:J2N.Collections.Generic.Dictionary`2.ValueCollection.#ctor(J2N.Collections.Generic.Dictionary{`0,`1})">
<summary>
Initializes a new instance of the <see cref="T:J2N.Collections.Generic.Dictionary`2.ValueCollection"/> class
that reflects the values in the specified <see cref="T:J2N.Collections.Generic.Dictionary`2"/>.
</summary>
<param name="dictionary">The <see cref="T:J2N.Collections.Generic.Dictionary`2"/> whose values are reflected
in the new <see cref="T:J2N.Collections.Generic.Dictionary`2.ValueCollection"/>.</param>
<exception cref="T:System.ArgumentNullException"><paramref name="dictionary"/> is <c>null</c>.</exception>
<remarks>
The <see cref="T:J2N.Collections.Generic.Dictionary`2.ValueCollection"/> is not a static copy; instead,
the <see cref="T:J2N.Collections.Generic.Dictionary`2.ValueCollection"/> refers back to the values in the
original <see cref="T:J2N.Collections.Generic.Dictionary`2"/>. Therefore, changes to the <see cref="T:J2N.Collections.Generic.Dictionary`2"/>
continue to be reflected in the <see cref="T:J2N.Collections.Generic.Dictionary`2.ValueCollection"/>.
<para/>
This constructor is an O(1) operation.
</remarks>
</member>
<member name="P:J2N.Collections.Generic.Dictionary`2.ValueCollection.Count">
<summary>
Gets the number of elements contained in the <see cref="T:J2N.Collections.Generic.Dictionary`2.ValueCollection"/>.
</summary>
<value>
The number of elements contained in the <see cref="T:J2N.Collections.Generic.Dictionary`2.ValueCollection"/>.
</value>
<remarks>
Retrieving the value of this property is an O(1) operation.
</remarks>
</member>
<member name="M:J2N.Collections.Generic.Dictionary`2.ValueCollection.CopyTo(`1[],System.Int32)">
<summary>
Copies the <see cref="T:J2N.Collections.Generic.Dictionary`2.ValueCollection"/> elements to an
existing one-dimensional <see cref="T:System.Array"/>, starting at the specified array index.
</summary>
<param name="array">The one-dimensional <see cref="T:System.Array"/> that is the destination of the elements
copied from <see cref="T:J2N.Collections.Generic.Dictionary`2.ValueCollection"/>. The <see cref="T:System.Array"/> must have
zero-based indexing.</param>
<param name="index">The zero-based index in <paramref name="array"/> at which copying begins.</param>
<exception cref="T:System.ArgumentNullException"><paramref name="array"/> is <c>null</c>.</exception>
<exception cref="T:System.ArgumentOutOfRangeException"><paramref name="index"/> is less than zero.</exception>
<exception cref="T:System.ArgumentException">The number of elements in the source <see cref="T:J2N.Collections.Generic.Dictionary`2.ValueCollection"/>
is greater than the available space from <paramref name="index"/> to the end of the destination <paramref name="array"/>.</exception>
<remarks>
The elements are copied to the <see cref="T:System.Array"/> in the same order in which the enumerator iterates through
the <see cref="T:J2N.Collections.Generic.Dictionary`2.ValueCollection"/>.
<para/>
This method is an O(<c>n</c>) operation, where <c>n</c> is <see cref="P:J2N.Collections.Generic.Dictionary`2.ValueCollection.Count"/>.
</remarks>
</member>
<member name="M:J2N.Collections.Generic.Dictionary`2.ValueCollection.GetEnumerator">
<summary>
Returns an enumerator that iterates through the <see cref="T:J2N.Collections.Generic.Dictionary`2.ValueCollection"/>.
</summary>
<returns>A <see cref="T:J2N.Collections.Generic.Dictionary`2.ValueCollection.Enumerator"/> for the
<see cref="T:J2N.Collections.Generic.Dictionary`2.ValueCollection"/>.</returns>
<remarks>
The <c>foreach</c> statement of the C# language (<c>for each</c> in C++, <c>For Each</c> in Visual Basic)
hides the complexity of enumerators. Therefore, using <c>foreach</c> is recommended instead of directly manipulating the enumerator.
<para/>
Enumerators can be used to read the data in the collection, but they cannot be used to modify the underlying collection.
<para/>
Initially, the enumerator is positioned before the first element in the collection. At this position, the
<see cref="P:J2N.Collections.Generic.Dictionary`2.ValueCollection.Enumerator.Current"/> property is undefined. Therefore, you must call the
<see cref="M:J2N.Collections.Generic.Dictionary`2.ValueCollection.Enumerator.MoveNext"/> method to advance the enumerator to the first element
of the collection before reading the value of <see cref="P:J2N.Collections.Generic.Dictionary`2.ValueCollection.Enumerator.Current"/>.
<para/>
The <see cref="P:J2N.Collections.Generic.Dictionary`2.ValueCollection.Enumerator.Current"/> property returns the same object until
<see cref="M:J2N.Collections.Generic.Dictionary`2.ValueCollection.Enumerator.MoveNext"/> is called. <see cref="M:J2N.Collections.Generic.Dictionary`2.ValueCollection.Enumerator.MoveNext"/>
sets <see cref="P:J2N.Collections.Generic.Dictionary`2.ValueCollection.Enumerator.Current"/> to the next element.
<para/>
If <see cref="M:J2N.Collections.Generic.Dictionary`2.ValueCollection.Enumerator.MoveNext"/> passes the end of the collection, the enumerator is
positioned after the last element in the collection and <see cref="M:J2N.Collections.Generic.Dictionary`2.ValueCollection.Enumerator.MoveNext"/>
returns <c>false</c>. When the enumerator is at this position, subsequent calls to <see cref="M:J2N.Collections.Generic.Dictionary`2.ValueCollection.Enumerator.MoveNext"/>
also return <c>false</c>. If the last call to <see cref="M:J2N.Collections.Generic.Dictionary`2.ValueCollection.Enumerator.MoveNext"/> returned <c>false</c>,
<see cref="P:J2N.Collections.Generic.Dictionary`2.ValueCollection.Enumerator.Current"/> is undefined. You cannot set <see cref="P:J2N.Collections.Generic.Dictionary`2.ValueCollection.Enumerator.Current"/>
to the first element of the collection again; you must create a new enumerator object instead.
<para/>
An enumerator remains valid as long as the collection remains unchanged. If changes are made to the collection,
such as adding, modifying, or deleting elements, the enumerator is irrecoverably invalidated and the next call
to <see cref="M:J2N.Collections.Generic.Dictionary`2.ValueCollection.Enumerator.MoveNext"/> or <see cref="M:System.Collections.IEnumerator.Reset"/> throws an
<see cref="T:System.InvalidOperationException"/>.
<para/>
The only mutating methods which do not invalidate enumerators are <see cref="M:J2N.Collections.Generic.Dictionary`2.Remove(`0)"/>,
<see cref="M:J2N.Collections.Generic.Dictionary`2.Remove(`0,`1@)"/> and <see cref="M:J2N.Collections.Generic.Dictionary`2.Clear"/>.
<para/>
The enumerator does not have exclusive access to the collection; therefore, enumerating through a collection is
intrinsically not a thread-safe procedure. To guarantee thread safety during enumeration, you can lock the
collection during the entire enumeration. To allow the collection to be accessed by multiple threads for
reading and writing, you must implement your own synchronization.
<para/>
Default implementations of collections in the <see cref="N:J2N.Collections.Generic"/> namespace are not synchronized.
<para/>
This method is an O(1) operation.
</remarks>
</member>
<member name="T:J2N.Collections.Generic.Dictionary`2.ValueCollection.Enumerator">
<summary>
Enumerates the elements of a <see cref="T:J2N.Collections.Generic.Dictionary`2.ValueCollection"/>.
</summary>
<remarks>
The <c>foreach</c> statement of the C# language (<c>for each</c> in C++, <c>For Each</c> in Visual Basic)
hides the complexity of enumerators. Therefore, using <c>foreach</c> is recommended instead of directly manipulating the enumerator.
<para/>
Enumerators can be used to read the data in the collection, but they cannot be used to modify the underlying collection.
<para/>
Initially, the enumerator is positioned before the first element in the collection. At this position, the
<see cref="P:J2N.Collections.Generic.Dictionary`2.ValueCollection.Enumerator.Current"/> property is undefined. Therefore, you must call the
<see cref="M:J2N.Collections.Generic.Dictionary`2.ValueCollection.Enumerator.MoveNext"/> method to advance the enumerator to the first element
of the collection before reading the value of <see cref="P:J2N.Collections.Generic.Dictionary`2.ValueCollection.Enumerator.Current"/>.
<para/>
The <see cref="P:J2N.Collections.Generic.Dictionary`2.ValueCollection.Enumerator.Current"/> property returns the same object until
<see cref="M:J2N.Collections.Generic.Dictionary`2.ValueCollection.Enumerator.MoveNext"/> is called. <see cref="M:J2N.Collections.Generic.Dictionary`2.ValueCollection.Enumerator.MoveNext"/>
sets <see cref="P:J2N.Collections.Generic.Dictionary`2.ValueCollection.Enumerator.Current"/> to the next element.
<para/>
If <see cref="M:J2N.Collections.Generic.Dictionary`2.ValueCollection.Enumerator.MoveNext"/> passes the end of the collection, the enumerator is
positioned after the last element in the collection and <see cref="M:J2N.Collections.Generic.Dictionary`2.ValueCollection.Enumerator.MoveNext"/>
returns <c>false</c>. When the enumerator is at this position, subsequent calls to <see cref="M:J2N.Collections.Generic.Dictionary`2.ValueCollection.Enumerator.MoveNext"/>
also return <c>false</c>. If the last call to <see cref="M:J2N.Collections.Generic.Dictionary`2.ValueCollection.Enumerator.MoveNext"/> returned <c>false</c>,
<see cref="P:J2N.Collections.Generic.Dictionary`2.ValueCollection.Enumerator.Current"/> is undefined. You cannot set <see cref="P:J2N.Collections.Generic.Dictionary`2.ValueCollection.Enumerator.Current"/>
to the first element of the collection again; you must create a new enumerator object instead.
<para/>
An enumerator remains valid as long as the collection remains unchanged. If changes are made to the collection,
such as adding, modifying, or deleting elements, the enumerator is irrecoverably invalidated and the next call
to <see cref="M:J2N.Collections.Generic.Dictionary`2.ValueCollection.Enumerator.MoveNext"/> or <see cref="M:System.Collections.IEnumerator.Reset"/> throws an
<see cref="T:System.InvalidOperationException"/>.
<para/>
The only mutating methods which do not invalidate enumerators are <see cref="M:J2N.Collections.Generic.Dictionary`2.Remove(`0)"/>,
<see cref="M:J2N.Collections.Generic.Dictionary`2.Remove(`0,`1@)"/> and <see cref="M:J2N.Collections.Generic.Dictionary`2.Clear"/>.
<para/>
The enumerator does not have exclusive access to the collection; therefore, enumerating through a collection is
intrinsically not a thread-safe procedure. To guarantee thread safety during enumeration, you can lock the
collection during the entire enumeration. To allow the collection to be accessed by multiple threads for
reading and writing, you must implement your own synchronization.
<para/>
Default implementations of collections in the <see cref="N:J2N.Collections.Generic"/> namespace are not synchronized.
</remarks>
</member>
<member name="P:J2N.Collections.Generic.Dictionary`2.ValueCollection.Enumerator.Current">
<summary>
Gets the element at the current position of the enumerator.
</summary>
<value>
The element in the <see cref="T:J2N.Collections.Generic.Dictionary`2.ValueCollection"/> at the current position
of the enumerator.
</value>
<remarks>
<see cref="P:J2N.Collections.Generic.Dictionary`2.ValueCollection.Enumerator.Current"/> is undefined under any of the following conditions:
<list type="bullet">
<item><description>The enumerator is positioned before the first element of the collection. That happens
after an enumerator is created or after the <see cref="M:System.Collections.IEnumerator.Reset"/> method is called.
The <see cref="M:J2N.Collections.Generic.Dictionary`2.ValueCollection.Enumerator.MoveNext"/> method must be called to advance the enumerator to the first element
of the collection before reading the value of the <see cref="P:J2N.Collections.Generic.Dictionary`2.ValueCollection.Enumerator.Current"/> property.</description></item>
<item><description>The last call to <see cref="M:J2N.Collections.Generic.Dictionary`2.ValueCollection.Enumerator.MoveNext"/> returned <c>false</c>, which indicates the
end of the collection and that the enumerator is positioned after the last element of the
collection.</description></item>
<item><description>The enumerator is invalidated due to changes made in the collection, such as adding,
modifying, or deleting elements.</description></item>
</list>
<para/>
<see cref="P:J2N.Collections.Generic.Dictionary`2.ValueCollection.Enumerator.Current"/> does not move the position of the enumerator, and consecutive calls to
<see cref="P:J2N.Collections.Generic.Dictionary`2.ValueCollection.Enumerator.Current"/> return the same object until either <see cref="M:J2N.Collections.Generic.Dictionary`2.ValueCollection.Enumerator.MoveNext"/> or <see cref="M:System.Collections.IEnumerator.Reset"/>
is called.
</remarks>
</member>
<member name="M:J2N.Collections.Generic.Dictionary`2.ValueCollection.Enumerator.Dispose">
<summary>
Releases all resources used by the <see cref="T:J2N.Collections.Generic.Dictionary`2.ValueCollection.Enumerator"/>.
</summary>
</member>
<member name="M:J2N.Collections.Generic.Dictionary`2.ValueCollection.Enumerator.MoveNext">
<summary>
Advances the enumerator to the next element of the <see cref="T:J2N.Collections.Generic.Dictionary`2.ValueCollection"/>.
</summary>
<returns><c>true</c> if the enumerator was successfully advanced to the next element;
<c>false</c> if the enumerator has passed the end of the collection.</returns>
<exception cref="T:System.InvalidOperationException">The collection was modified after the enumerator was created.</exception>
<remarks>
After an enumerator is created, the enumerator is positioned before the first element in the collection,
and the first call to <see cref="M:J2N.Collections.Generic.Dictionary`2.ValueCollection.Enumerator.MoveNext"/> advances the enumerator to the first element of the collection.
<para/>
If <see cref="M:J2N.Collections.Generic.Dictionary`2.ValueCollection.Enumerator.MoveNext"/> passes the end of the collection, the enumerator is positioned after the last element
in the collection and <see cref="M:J2N.Collections.Generic.Dictionary`2.ValueCollection.Enumerator.MoveNext"/> returns <c>false</c>. When the enumerator is at this position,
subsequent calls to <see cref="M:J2N.Collections.Generic.Dictionary`2.ValueCollection.Enumerator.MoveNext"/> also return <c>false</c>.
<para/>
An enumerator remains valid as long as the collection remains unchanged. If changes are made to the collection,
such as adding elements or changing the capacity, the enumerator is irrecoverably invalidated and the next
call to <see cref="M:J2N.Collections.Generic.Dictionary`2.ValueCollection.Enumerator.MoveNext"/> or <see cref="M:System.Collections.IEnumerator.Reset"/> throws an <see cref="T:System.InvalidOperationException"/>.
<para/>
The only mutating methods which do not invalidate enumerators are <see cref="M:J2N.Collections.Generic.Dictionary`2.Remove(`0)"/>,
<see cref="M:J2N.Collections.Generic.Dictionary`2.Remove(`0,`1@)"/> and <see cref="M:J2N.Collections.Generic.Dictionary`2.Clear"/>.
</remarks>
</member>
<member name="T:J2N.Collections.Generic.Dictionary`2.Enumerator">
<summary>
Enumerates the elemensts of a <see cref="T:J2N.Collections.Generic.Dictionary`2"/>.
</summary>
<remarks>
The <c>foreach</c> statement of the C# language (<c>for each</c> in C++, <c>For Each</c> in Visual Basic)
hides the complexity of enumerators. Therefore, using <c>foreach</c> is recommended instead of directly manipulating the enumerator.
<para/>
Enumerators can be used to read the data in the collection, but they cannot be used to modify the underlying collection.
<para/>
Initially, the enumerator is positioned before the first element in the collection. At this position, the
<see cref="P:J2N.Collections.Generic.Dictionary`2.Enumerator.Current"/> property is undefined. Therefore, you must call the
<see cref="M:J2N.Collections.Generic.Dictionary`2.Enumerator.MoveNext"/> method to advance the enumerator to the first element
of the collection before reading the value of <see cref="P:J2N.Collections.Generic.Dictionary`2.Enumerator.Current"/>.
<para/>
The <see cref="P:J2N.Collections.Generic.Dictionary`2.Enumerator.Current"/> property returns the same object until
<see cref="M:J2N.Collections.Generic.Dictionary`2.Enumerator.MoveNext"/> is called. <see cref="M:J2N.Collections.Generic.Dictionary`2.Enumerator.MoveNext"/>
sets <see cref="P:J2N.Collections.Generic.Dictionary`2.Enumerator.Current"/> to the next element.
<para/>
If <see cref="M:J2N.Collections.Generic.Dictionary`2.Enumerator.MoveNext"/> passes the end of the collection, the enumerator is
positioned after the last element in the collection and <see cref="M:J2N.Collections.Generic.Dictionary`2.Enumerator.MoveNext"/>
returns <c>false</c>. When the enumerator is at this position, subsequent calls to <see cref="M:J2N.Collections.Generic.Dictionary`2.Enumerator.MoveNext"/>
also return <c>false</c>. If the last call to <see cref="M:J2N.Collections.Generic.Dictionary`2.Enumerator.MoveNext"/> returned <c>false</c>,
<see cref="P:J2N.Collections.Generic.Dictionary`2.Enumerator.Current"/> is undefined. You cannot set <see cref="P:J2N.Collections.Generic.Dictionary`2.Enumerator.Current"/>
to the first element of the collection again; you must create a new enumerator object instead.
<para/>
An enumerator remains valid as long as the collection remains unchanged. If changes are made to the collection,
such as adding, modifying, or deleting elements, the enumerator is irrecoverably invalidated and the next call
to <see cref="M:J2N.Collections.Generic.Dictionary`2.Enumerator.MoveNext"/> or <see cref="M:System.Collections.IEnumerator.Reset"/> throws an
<see cref="T:System.InvalidOperationException"/>.
<para/>
The enumerator does not have exclusive access to the collection; therefore, enumerating through a collection is
intrinsically not a thread-safe procedure. To guarantee thread safety during enumeration, you can lock the
collection during the entire enumeration. To allow the collection to be accessed by multiple threads for
reading and writing, you must implement your own synchronization.
<para/>
Default implementations of collections in the <see cref="N:J2N.Collections.Generic"/> namespace are not synchronized.
</remarks>
</member>
<member name="P:J2N.Collections.Generic.Dictionary`2.Enumerator.Current">
<summary>
Gets the element at the current position of the enumerator.
</summary>
<value>The element in the <see cref="T:J2N.Collections.Generic.Dictionary`2"/> at the current position of the enumerator.</value>
</member>
<member name="M:J2N.Collections.Generic.Dictionary`2.Enumerator.Dispose">
<summary>
Releases all resources used by the <see cref="T:J2N.Collections.Generic.Dictionary`2.Enumerator"/>.
</summary>
</member>
<member name="M:J2N.Collections.Generic.Dictionary`2.Enumerator.MoveNext">
<summary>
Advances the enumerator to the next element of the <see cref="T:J2N.Collections.Generic.Dictionary`2"/>.
</summary>
<returns><c>true</c> if the enumerator was successfully advanced to the next element;
<c>false</c> if the enumerator has passed the end of the collection.</returns>
<exception cref="T:System.InvalidOperationException">The collection was modified after the enumerator was created.</exception>
<remarks>
After an enumerator is created, the enumerator is positioned before the first element in the collection, and the
first call to <see cref="M:J2N.Collections.Generic.Dictionary`2.Enumerator.MoveNext"/> advances the enumerator to the first element of the collection.
<para/>
If <see cref="M:J2N.Collections.Generic.Dictionary`2.Enumerator.MoveNext"/> passes the end of the collection, the enumerator is positioned after the last element
in the collection and <see cref="M:J2N.Collections.Generic.Dictionary`2.Enumerator.MoveNext"/> returns <c>false</c>. When the enumerator is at this position,
subsequent calls to <see cref="M:J2N.Collections.Generic.Dictionary`2.Enumerator.MoveNext"/> also return <c>false</c>.
<para/>
An enumerator remains valid as long as the collection remains unchanged. If changes are made to the collection,
such as adding elements or changing the capacity, the enumerator is irrecoverably invalidated and the next
call to <see cref="M:J2N.Collections.Generic.Dictionary`2.Enumerator.MoveNext"/> or <see cref="M:System.Collections.IEnumerator.Reset"/> throws an <see cref="T:System.InvalidOperationException"/>.
<para/>
The only mutating methods which do not invalidate enumerators are <see cref="M:J2N.Collections.Generic.Dictionary`2.Remove(`0)"/>,
<see cref="M:J2N.Collections.Generic.Dictionary`2.Remove(`0,`1@)"/> and <see cref="M:J2N.Collections.Generic.Dictionary`2.Clear"/>.
</remarks>
<seealso cref="P:J2N.Collections.Generic.Dictionary`2.Enumerator.Current"/>
</member>
<member name="T:J2N.Collections.Generic.Dictionary`2.CollectionsMarshalHelper">
<summary>
A helper class containing APIs exposed through <see cref="T:J2N.Runtime.InteropServices.CollectionMarshal"/>.
These methods are relatively niche and only used in specific scenarios, so adding them in a separate type avoids
the additional overhead on each <see cref="T:J2N.Collections.Generic.Dictionary`2"/> instantiation, especially in AOT scenarios.
</summary>
</member>
<member name="F:J2N.Collections.Generic.Dictionary`2.Entry.next">
<summary>
0-based index of next entry in chain: -1 means end of chain
also encodes whether this entry _itself_ is part of the free list by changing sign and subtracting 3,
so -2 means end of free list, -3 means index 0 but on free list, -4 means index 1 but on free list, etc.
</summary>
</member>
<member name="T:J2N.Collections.Generic.DictionaryEqualityComparer`2">
<summary>
Provides comparers that can be used to compare <see cref="T:System.Collections.Generic.IDictionary`2"/>
implementations for structural equality using rules similar to those
in the JDK's AbstractMap class.
</summary>
<typeparam name="TKey">The key element type.</typeparam>
<typeparam name="TValue">The value element type.</typeparam>
</member>
<member name="P:J2N.Collections.Generic.DictionaryEqualityComparer`2.Default">
<summary>
Gets a <see cref="T:J2N.Collections.Generic.DictionaryEqualityComparer`2"/> object that compares
<see cref="T:System.Collections.Generic.IDictionary`2"/> implementations for structural equality
using rules similar to those in Java. Nested elemements that implement
<see cref="T:System.Collections.IStructuralEquatable"/> are also compared.
</summary>
</member>
<member name="P:J2N.Collections.Generic.DictionaryEqualityComparer`2.Aggressive">
<summary>
Gets a <see cref="T:J2N.Collections.Generic.DictionaryEqualityComparer`2"/> object that compares
<see cref="T:System.Collections.Generic.IDictionary`2"/> implementations for structural equality
using rules similar to those in Java. Nested elemements are also compared.
<para/>
If a nested object implements <see cref="T:System.Collections.IStructuralEquatable"/>, it will be used
to compare structural equality. If not, a reflection call is made to determine
if the object can be converted to <see cref="T:System.Collections.Generic.IList`1"/>, <see cref="T:System.Collections.Generic.ISet`1"/>, or
<see cref="T:System.Collections.Generic.IDictionary`2"/> and then the object is converted to a <c>dynamic</c>
using <see cref="M:System.Convert.ChangeType(System.Object,System.Type)"/>. The compiler then uses the converted type
to decide which comparison rules to use using method overloading.
<para/>
Usage Note: This comparer can be used to patch standard built-in .NET collections for structural equality,
but it is slower to use built-in .NET collections than ensuring all nested types
implement <see cref="T:System.Collections.IStructuralEquatable"/>. This mode only supports types that
implement <see cref="T:System.Collections.IStructuralEquatable"/>, <see cref="T:System.Collections.Generic.IList`1"/>,
<see cref="T:System.Collections.Generic.ISet`1"/>, or <see cref="T:System.Collections.Generic.IDictionary`2"/>. All other types will
be compared using <see cref="P:J2N.Collections.Generic.EqualityComparer`1.Default"/>.
</summary>
</member>
<member name="M:J2N.Collections.Generic.DictionaryEqualityComparer`2.Equals(System.Collections.Generic.IDictionary{`0,`1},System.Collections.Generic.IDictionary{`0,`1})">
<summary>
Compares two dictionaries for structural equality using rules similar to those in
the JDK's AbstactMap class. Two dictionaries are considered equal if
both of them contain the same mappings (ignoring order).
</summary>
<param name="dictionaryA">The first dictionary to compare.</param>
<param name="dictionaryB">The second dictionary to compare.</param>
<returns><c>true</c> if both dictionaries contain the same mappings; otherwise, <c>false</c>.</returns>
</member>
<member name="M:J2N.Collections.Generic.DictionaryEqualityComparer`2.GetHashCode(System.Collections.Generic.IDictionary{`0,`1})">
<summary>
Returns the hash code for the specified <paramref name="dictionary"/>.
<para/>
This implementation iterates over the dictionary getting the hash code
for each element using <see cref="P:J2N.Collections.Generic.EqualityComparer`1.Default"/>,
uses a bitwise logical XOR <c>^</c> to combine key and value hash codes, and adds
up the result.
</summary>
<param name="dictionary">The dictionary to calculate the hash code for.</param>
<returns>The hash code for <paramref name="dictionary"/>.</returns>
</member>
<member name="M:J2N.Collections.Generic.DictionaryEqualityComparer`2.Equals(System.Object,System.Object)">
<summary>
Compares two dictionaries for structural equality using rules similar to those in
the JDK's AbstactMap class. Two dictionaries are considered equal if
both of them contain the same mappings (ignoring order).
</summary>
<param name="a">The first dictionary to compare.</param>
<param name="b">The second dictionary to compare.</param>
<returns><c>true</c> if both objects implement <see cref="T:System.Collections.Generic.IDictionary`2"/> and contain the same mappings; otherwise, <c>false</c>.</returns>
</member>
<member name="M:J2N.Collections.Generic.DictionaryEqualityComparer`2.GetHashCode(System.Object)">
<summary>
Returns the hash code for the specified <paramref name="obj"/>.
<para/>
If the <paramref name="obj"/> argument is a <see cref="T:System.Collections.Generic.IDictionary`2"/>,
this implementation iterates over the dictionary getting the hash code
for each element using <see cref="P:J2N.Collections.Generic.EqualityComparer`1.Default"/>,
uses a bitwise logical XOR <c>^</c> to combine key and value hash codes, and adds
up the result.
<para/>
If the <paramref name="obj"/> argument is not a <see cref="T:System.Collections.Generic.IDictionary`2"/>,
the hash code is calculated using <see cref="P:J2N.Collections.Generic.EqualityComparer`1.Default"/>.
</summary>
<param name="obj">The dictionary to calculate the hash code for.</param>
<returns>The hash code for <paramref name="obj"/>.</returns>
</member>
<member name="M:J2N.Collections.Generic.DictionaryEqualityComparer`2.TryGetDictionaryEqualityComparer(System.Collections.IEqualityComparer,J2N.Collections.Generic.DictionaryEqualityComparer{`0,`1}@)">
<summary>
Tries to convert the specified <paramref name="comparer"/> to a strongly typed <see cref="T:J2N.Collections.Generic.DictionaryEqualityComparer`2"/>.
</summary>
<param name="comparer">The comparer to convert to a <see cref="T:J2N.Collections.Generic.DictionaryEqualityComparer`2"/>, if possible.</param>
<param name="equalityComparer">The result <see cref="T:J2N.Collections.Generic.DictionaryEqualityComparer`2"/> of the conversion.</param>
<returns><c>true</c> if the conversion was successful; otherwise, <c>false</c>.</returns>
</member>
<member name="M:J2N.Collections.Generic.DictionaryEqualityComparer`2.Equals(System.Collections.Generic.IDictionary{`0,`1},System.Object,System.Collections.IEqualityComparer)">
<summary>
Compares two objects for structural equality using rules similar to those in
the JDK's AbstactMap class. Two dictionaries are considered equal when they both contain
the same mappings (in any order).
<para/>
Usage Note: This overload can be used in a collection of <see cref="T:System.Collections.Generic.IDictionary`2"/> to
implement <see cref="M:System.Collections.IStructuralEquatable.Equals(System.Object,System.Collections.IEqualityComparer)"/> for the
dictionary.
</summary>
<param name="dictionary">The first object to compare for structural equality.</param>
<param name="other">The other object to compare for structural equality.</param>
<param name="comparer">The comparer that is passed to <see cref="M:System.Collections.IStructuralEquatable.Equals(System.Object,System.Collections.IEqualityComparer)"/>.</param>
<returns><c>true</c> if the specified dictionaries are equal; otherwise, <c>false</c>.</returns>
<exception cref="T:System.ArgumentNullException">If <paramref name="comparer"/> is <c>null</c>.</exception>
</member>
<member name="M:J2N.Collections.Generic.DictionaryEqualityComparer`2.GetHashCode(System.Collections.Generic.IDictionary{`0,`1},System.Collections.IEqualityComparer)">
<summary>
Returns the hash code of the specified <paramref name="dictionary"/>. The hash code is calculated by
taking each nested element's hash code into account.
<para/>
Usage Note: This overload can be used in a collection of <see cref="T:System.Collections.Generic.IDictionary`2"/> to
implement <see cref="M:System.Collections.IStructuralEquatable.GetHashCode(System.Collections.IEqualityComparer)"/> for the
dictionary.
</summary>
<param name="dictionary">The dictionary to calculate the hash code for.</param>
<param name="comparer">The comparer that is passed to <see cref="M:System.Collections.IStructuralEquatable.GetHashCode(System.Collections.IEqualityComparer)"/>.</param>
<returns>The hash code of <paramref name="dictionary"/>.</returns>
<exception cref="T:System.ArgumentNullException">If <paramref name="comparer"/> is <c>null</c>.</exception>
</member>
<member name="T:J2N.Collections.Generic.EnumerableHelpers">
<summary>
Internal helper functions for working with enumerables.
</summary>
</member>
<member name="M:J2N.Collections.Generic.EnumerableHelpers.GetEmptyEnumerator``1">
<summary>Gets an enumerator singleton for an empty collection.</summary>
</member>
<member name="M:J2N.Collections.Generic.EnumerableHelpers.ToArray``1(System.Collections.Generic.IEnumerable{``0},System.Int32@)">
<summary>Converts an enumerable to an array using the same logic as <see cref="T:J2N.Collections.Generic.List`1"/>.</summary>
<param name="source">The enumerable to convert.</param>
<param name="length">The number of items stored in the resulting array, 0-indexed.</param>
<returns>
The resulting array. The length of the array may be greater than <paramref name="length"/>,
which is the actual number of elements in the array.
</returns>
</member>
<member name="T:J2N.Collections.Generic.EqualityComparer`1">
<summary>
Provides comparers that use natural equality rules similar to those in Java.
</summary>
<typeparam name="T">The type of objects to compare.</typeparam>
</member>
<member name="P:J2N.Collections.Generic.EqualityComparer`1.Default">
<summary>
Provides natural comparison rules similar to those in Java.
<list type="bullet">
<item><description>
<see cref="T:System.Double"/> and <see cref="T:System.Single"/> are compared for positive zero and negative zero equality. These are considered
two separate numbers, as opposed to the default .NET behavior that considers them equal.
</description></item>
<item><description>
<see cref="T:System.Double"/> and <see cref="T:System.Single"/> are compared for NaN (not a number) equality. All NaN values are considered equal,
which differs from the default .NET behavior, where NaN is never equal to NaN.
</description></item>
<item><description>
<see cref="T:System.Double"/>? and <see cref="T:System.Single"/>? are first compared for <c>null</c> prior to applying the above rules.
</description></item>
<item><description>
<see cref="T:System.String"/> uses culture-insensitive equality comparison using <see cref="P:System.StringComparer.Ordinal"/>.
</description></item>
</list>
</summary>
</member>
<member name="T:J2N.Collections.Generic.Extensions.CollectionExtensions">
<summary>
Extensions to the <see cref="T:System.Collections.Generic.ICollection`1"/> interface.
</summary>
</member>
<member name="M:J2N.Collections.Generic.Extensions.CollectionExtensions.AsReadOnly``1(System.Collections.Generic.ICollection{``0})">
<summary>
Returns a read-only <see cref="T:System.Collections.Generic.ICollection`1"/> wrapper for the current collection.
</summary>
<typeparam name="T">The type of elements in the collection.</typeparam>
<param name="collection">The collection to make read-only.</param>
<returns>An object that acts as a read-only wrapper around the current <see cref="T:System.Collections.Generic.ICollection`1"/>.</returns>
<exception cref="T:System.ArgumentNullException"><paramref name="collection"/> is <c>null</c>.</exception>
<remarks>
To prevent any modifications to the <see cref="T:System.Collections.Generic.ICollection`1"/> object, expose it only through this wrapper.
A <see cref="T:J2N.Collections.ObjectModel.ReadOnlyCollection`1"/> object does not expose methods that modify the collection. However, if
changes are made to the underlying <see cref="T:System.Collections.Generic.ICollection`1"/> object, the read-only collection reflects those changes.
<para/>
This method is an O(1) operation.
</remarks>
</member>
<member name="M:J2N.Collections.Generic.Extensions.CollectionExtensions.ToArray``1(System.Collections.Generic.ICollection{``0})">
<summary>
Creates an array from a <see cref="T:System.Collections.Generic.ICollection`1"/>.
<para/>
This is similar to the LINQ <see cref="T:System.Collections.Generic.IEnumerable`1"/> extension method,
but since it pre-allocates the exact number of array elements and always
uses <see cref="M:System.Collections.Generic.ICollection`1.CopyTo(`0[],System.Int32)"/>, it is usually much faster.
</summary>
<typeparam name="T">The type of the elements of <paramref name="source"/>.</typeparam>
<param name="source">An <see cref="T:System.Collections.Generic.ICollection`1"/> to create an array from.</param>
<returns>An array that contains the elements from the input sequence.</returns>
</member>
<member name="T:J2N.Collections.Generic.Extensions.DictionaryExtensions">
<summary>
Extensions to the <see cref="T:System.Collections.Generic.IDictionary`2"/> interface.
</summary>
</member>
<member name="M:J2N.Collections.Generic.Extensions.DictionaryExtensions.AsReadOnly``2(System.Collections.Generic.IDictionary{``0,``1})">
<summary>
Returns a read-only <see cref="T:J2N.Collections.ObjectModel.ReadOnlyDictionary`2"/> wrapper for the current dictionary.
</summary>
<typeparam name="TKey">The type of keys in the dictionary.</typeparam>
<typeparam name="TValue">The type of values in the dictionary.</typeparam>
<param name="collection">The collection to make read-only.</param>
<returns>An object that acts as a read-only wrapper around the current <see cref="T:System.Collections.Generic.IDictionary`2"/>.</returns>
<exception cref="T:System.ArgumentNullException"><paramref name="collection"/> is <c>null</c>.</exception>
<remarks>
To prevent any modifications to the <see cref="T:System.Collections.Generic.IDictionary`2"/> object, expose it only through this wrapper.
A <see cref="T:J2N.Collections.ObjectModel.ReadOnlyDictionary`2"/> object does not expose methods that modify the collection. However, if
changes are made to the underlying <see cref="T:System.Collections.Generic.IDictionary`2"/> object, the read-only collection reflects those changes.
<para/>
This method is an O(1) operation.
</remarks>
</member>
<member name="T:J2N.Collections.Generic.Extensions.ListExtensions">
<summary>
Extensions to the <see cref="T:System.Collections.Generic.IList`1"/> interface.
</summary>
</member>
<member name="M:J2N.Collections.Generic.Extensions.ListExtensions.AsReadOnly``1(System.Collections.Generic.IList{``0})">
<summary>
Returns a read-only <see cref="T:System.Collections.Generic.IList`1"/> wrapper for the current collection.
</summary>
<typeparam name="T">The type of elements in the collection.</typeparam>
<param name="collection">The collection to make read-only.</param>
<returns>An object that acts as a read-only wrapper around the current <see cref="T:System.Collections.Generic.IList`1"/>.</returns>
<exception cref="T:System.ArgumentNullException"><paramref name="collection"/> is <c>null</c>.</exception>
<remarks>
To prevent any modifications to the <see cref="T:System.Collections.Generic.IList`1"/> object, expose it only through this wrapper.
A <see cref="T:J2N.Collections.ObjectModel.ReadOnlyList`1"/> object does not expose methods that modify the collection. However, if
changes are made to the underlying <see cref="T:System.Collections.Generic.IList`1"/> object, the read-only collection reflects those changes.
<para/>
This method is an O(1) operation.
</remarks>
</member>
<member name="M:J2N.Collections.Generic.Extensions.ListExtensions.BinarySearch``1(System.Collections.Generic.IList{``0},``0)">
<summary>
Performs a binary search for the specified element in the specified
sorted list. The list needs to be already sorted in natural sorting
order. Searching in an unsorted list has an undefined result. It's also
undefined which element is found if there are multiple occurrences of the
same element.
</summary>
<typeparam name="T">The element type.</typeparam>
<param name="list">The sorted list to search.</param>
<param name="item">The element to find.</param>
<returns>The non-negative index of the element, or a negative index which
is the <c>-index - 1</c> where the element would be inserted.</returns>
<exception cref="T:System.ArgumentNullException"><paramref name="list"/> is <c>null</c>.</exception>
</member>
<member name="M:J2N.Collections.Generic.Extensions.ListExtensions.BinarySearch``1(System.Collections.Generic.IList{``0},``0,System.Collections.Generic.IComparer{``0})">
<summary>
Performs a binary search for the specified element in the specified
sorted list using the specified comparer. The list needs to be already
sorted according to the <paramref name="comparer"/> passed. Searching in an unsorted list
has an undefined result. It's also undefined which element is found if
there are multiple occurrences of the same element.
</summary>
<typeparam name="T">The element type.</typeparam>
<param name="list">The sorted <see cref="T:System.Collections.Generic.IList`1"/> to search.</param>
<param name="item">The element to find.</param>
<param name="comparer">The comparer. If the comparer is <c>null</c> then the
search uses the <see cref="P:J2N.Collections.Generic.Comparer`1.Default"/> comparer, which
uses rules similar to Java's defaults.</param>
<returns>the non-negative index of the element, or a negative index which
is the <c>-index - 1</c> where the element would be inserted.</returns>
<exception cref="T:System.ArgumentNullException"><paramref name="list"/> is <c>null</c>.</exception>
</member>
<member name="M:J2N.Collections.Generic.Extensions.ListExtensions.BinarySearch``1(System.Collections.Generic.IList{``0},System.Int32,System.Int32,``0,System.Collections.Generic.IComparer{``0})">
<summary>
Performs a binary search for the specified element in the specified
sorted list using the specified comparer. The list needs to be already
sorted according to the <paramref name="comparer"/> passed. Searching in an unsorted list
has an undefined result. It's also undefined which element is found if
there are multiple occurrences of the same element.
</summary>
<typeparam name="T">The element type.</typeparam>
<param name="list">The sorted <see cref="T:System.Collections.Generic.IList`1"/> to search.</param>
<param name="index">The zero-based starting index of the range to search.</param>
<param name="count">The length of the range to search.</param>
<param name="item">The element to find.</param>
<param name="comparer">The comparer. If the comparer is <c>null</c> then the
search uses the <see cref="P:J2N.Collections.Generic.Comparer`1.Default"/> comparer, which
uses rules similar to Java's defaults.</param>
<returns>the non-negative index of the element, or a negative index which
is the <c>-index - 1</c> where the element would be inserted.</returns>
<exception cref="T:System.ArgumentNullException"><paramref name="list"/> is <c>null</c>.</exception>
</member>
<member name="M:J2N.Collections.Generic.Extensions.ListExtensions.CopyTo``1(System.Collections.Generic.IList{``0},System.Int32,System.Collections.Generic.IList{``0},System.Int32,System.Int32)">
<summary>
Copies a range of elements from an <see cref="T:System.Collections.Generic.IList`1"/> starting at the specified source index and pastes
them to another <see cref="T:System.Collections.Generic.IList`1"/> starting at the specified destination index. The length and the
indexes are specified as 32-bit integers.
</summary>
<typeparam name="T">The type of elements to copy.</typeparam>
<param name="source">The <see cref="T:System.Collections.Generic.IList`1"/> that contains the data to copy.</param>
<param name="sourceIndex">A 32-bit integer that represents the index in the <paramref name="sourceIndex"/> at which copying begins.</param>
<param name="destination">The <see cref="T:System.Collections.Generic.IList`1"/> that receives the data.</param>
<param name="destinationIndex">A 32-bit integer that represents the index in the <paramref name="destination"/> at which storing begins.</param>
<param name="length">A 32-bit integer that represents the number of elements to copy.</param>
<exception cref="T:System.ArgumentNullException">
<paramref name="source"/> is <c>null</c>.
<para/>
-or-
<para/>
<paramref name="destination"/> is <c>null</c>.
</exception>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="sourceIndex"/>, <paramref name="destinationIndex"/> or <paramref name="length"/> is less than zero.
</exception>
<exception cref="T:System.ArgumentException">
<paramref name="sourceIndex"/> plus <paramref name="length"/> is greater than or equal to the number of items in <paramref name="source"/>.
<para/>
-or-
<para/>
The number of elements in the source <paramref name="source"/> is greater
than the available space from <paramref name="destinationIndex"/> plus <paramref name="length"/>.</exception>
</member>
<member name="M:J2N.Collections.Generic.Extensions.ListExtensions.GetView``1(System.Collections.Generic.IList{``0},System.Int32,System.Int32)">
<summary>
Returns a view of a sublist in an <see cref="T:System.Collections.Generic.IList`1"/>.
<para/>
IMPORTANT: This method uses .NET semantics. That is, the second parameter is a count rather than an exclusive end
index as would be the case in Java's subList() method. To translate from Java, use <c>toIndex - fromIndex</c> to
obtain the value of <paramref name="count"/>.
</summary>
<typeparam name="T">The element type.</typeparam>
<param name="list">The parent list to use to create a sublist.</param>
<param name="index">The first index in the view (inclusive).</param>
<param name="count">The number of elements to include in the view.</param>
<returns>A sublist view that contains only the values in the specified range.</returns>
<exception cref="T:System.ArgumentNullException"><paramref name="list"/> is <c>null</c>.</exception>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="index"/> or <paramref name="count"/> is less than zero.
</exception>
<exception cref="T:System.ArgumentException">
<paramref name="index"/> and <paramref name="count"/> refer to a location outside of the list.
</exception>
<remarks>This method returns a view of the range of elements that are specified by <paramref name="index"/>
and <paramref name="count"/>. Unlike <see cref="M:J2N.Collections.Generic.List`1.GetRange(System.Int32,System.Int32)"/>, this method does not copy elements from
the <see cref="T:System.Collections.Generic.IList`1"/>, but provides a window into the underlying <see cref="T:System.Collections.Generic.IList`1"/> itself.
<para/>
You can make changes to the view and create child views of the view.
<para/>
If the <see cref="T:System.Collections.Generic.IList`1"/> implementation is either <see cref="T:J2N.Collections.Generic.List`1"/> or a <see cref="T:J2N.Collections.ObjectModel.ReadOnlyList`1"/> that wraps <see cref="T:J2N.Collections.Generic.List`1"/>,
any structural change to a parent view or the original <see cref="T:System.Collections.Generic.IList`1"/> will cause all methods of the view or any enumerator based on the view
to throw an <see cref="T:System.InvalidOperationException"/>. Structural modifications are any edit that will change the <see cref="P:System.Collections.Generic.ICollection`1.Count"/>
or otherwise perturb it in such a way that enumerations in progress will be invalid. A view is only valid until one of its ancestors
is structurally modified, at which point you will need to create a new view.
<para/>
If another <see cref="T:System.Collections.Generic.IList`1"/> implementation is used, any structural change to the parent view or original <see cref="T:System.Collections.Generic.IList`1"/> that changes
the <see cref="P:System.Collections.Generic.ICollection`1.Count"/> property will cause all methods of the view or any enumerator based on the view to throw an
<see cref="T:System.InvalidOperationException"/>. While other structural modifications to any ancestor view do not cause exceptions, the behavior
of the view after such a modification is undefined. For this reason, it is recommended to use <see cref="T:J2N.Collections.Generic.List`1"/> when possible.
<para/>
This method is an O(1) operation.
</remarks>
</member>
<member name="M:J2N.Collections.Generic.Extensions.ListExtensions.RemoveAll``1(System.Collections.Generic.IList{``0},System.Predicate{``0})">
<summary>
Removes all the elements that match the conditions defined by the specified predicate.
</summary>
<typeparam name="T">The element type.</typeparam>
<param name="list">The <see cref="T:System.Collections.Generic.IList`1"/> to remove elements from.</param>
<param name="match">The <see cref="T:System.Predicate`1"/> delegate that defines the conditions
of the elements to remove.</param>
<returns>The number of elements removed from the <see cref="T:System.Collections.Generic.IList`1"/>.</returns>
<exception cref="T:System.ArgumentNullException"><paramref name="list"/> or <paramref name="match"/> is <c>null</c>.</exception>
<remarks>
The <see cref="T:System.Predicate`1"/> is a delegate to a method that returns <c>true</c> if the object passed
to it matches the conditions defined in the delegate. The elements of the current <see cref="T:System.Collections.Generic.IList`1"/>
are individually passed to the <see cref="T:System.Predicate`1"/> delegate, and the elements that match
the conditions are renived from the <see cref="T:System.Collections.Generic.IList`1"/>.
<para/>
This method performs a linear search; therefore, this method is an O(<c>n</c>) operation, where
<c>n</c> is <see cref="P:System.Collections.Generic.ICollection`1.Count"/> of the supplied <paramref name="list"/>.
</remarks>
</member>
<member name="M:J2N.Collections.Generic.Extensions.ListExtensions.RemoveAll``1(System.Collections.Generic.IList{``0},System.Int32,System.Int32,System.Predicate{``0})">
<summary>
Removes all the elements that match the conditions defined by the specified predicate.
</summary>
<typeparam name="T">The element type.</typeparam>
<param name="list">The <see cref="T:System.Collections.Generic.IList`1"/> to remove elements from.</param>
<param name="startIndex">The zero-based starting index to begin removing matching items.</param>
<param name="count">The number of elements in the section to search.</param>
<param name="match">The <see cref="T:System.Predicate`1"/> delegate that defines the conditions
of the elements to remove.</param>
<returns>The number of elements removed from the <see cref="T:System.Collections.Generic.IList`1"/>.</returns>
<exception cref="T:System.ArgumentNullException"><paramref name="list"/> or <paramref name="match"/> is <c>null</c>.</exception>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="startIndex"/> or <paramref name="count"/> is less than zero.
<para/>
-or-
<para/>
<paramref name="startIndex"/> and <paramref name="count"/> refer to a location outside of <paramref name="list"/>.
</exception>
<remarks>
The <see cref="T:System.Predicate`1"/> is a delegate to a method that returns <c>true</c> if the object passed
to it matches the conditions defined in the delegate. The elements of the current <see cref="T:System.Collections.Generic.IList`1"/>
are individually passed to the <see cref="T:System.Predicate`1"/> delegate, and the elements that match
the conditions are renived from the <see cref="T:System.Collections.Generic.IList`1"/>.
<para/>
This method performs a linear search; therefore, this method is an O(<c>n</c>) operation, where
<c>n</c> is <paramref name="count"/> - <paramref name="startIndex"/>.
</remarks>
</member>
<member name="M:J2N.Collections.Generic.Extensions.ListExtensions.Shuffle``1(System.Collections.Generic.IList{``0})">
<summary>
Moves every element of the list to a random new position in the <paramref name="list"/>.
</summary>
<typeparam name="T">The element type.</typeparam>
<param name="list">The <see cref="T:System.Collections.Generic.IList`1"/> to shuffle.</param>
<exception cref="T:System.ArgumentNullException">If <paramref name="list"/> is <c>null</c>.</exception>
<seealso cref="M:J2N.Collections.Generic.Extensions.ListExtensions.Shuffle``1(System.Collections.Generic.IList{``0},System.Random)"/>
</member>
<member name="M:J2N.Collections.Generic.Extensions.ListExtensions.Shuffle``1(System.Collections.Generic.IList{``0},System.Random)">
<summary>
Moves every element of the list to a random new position in the list
using the specified random number generator.
</summary>
<typeparam name="T">The element type.</typeparam>
<param name="list">The <see cref="T:System.Collections.Generic.IList`1"/> to shuffle.</param>
<param name="random">The random number generator.</param>
<exception cref="T:System.ArgumentNullException">If <paramref name="list"/> or <paramref name="random"/> is <c>null</c>.</exception>
<seealso cref="M:J2N.Collections.Generic.Extensions.ListExtensions.Shuffle``1(System.Collections.Generic.IList{``0})"/>
</member>
<member name="M:J2N.Collections.Generic.Extensions.ListExtensions.Swap``1(System.Collections.Generic.IList{``0},System.Int32,System.Int32)">
<summary>
Swaps the elements of <paramref name="list"/> at indices <paramref name="index1"/>
and <paramref name="index2"/>.
</summary>
<typeparam name="T">The element type.</typeparam>
<param name="list">The list to manipulate.</param>
<param name="index1">Position of the first element to swap with the element in
<paramref name="index2"/>.</param>
<param name="index2">Position of the other element.</param>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="index1"/> or <paramref name="index2"/> is greater than or equal to <c><paramref name="list"/>.Count</c>.
<para/>
-or-
<para/>
<paramref name="index1"/> or <paramref name="index2"/> is less than zero.
</exception>
<exception cref="T:System.ArgumentNullException">If <paramref name="list"/> is <c>null</c>.</exception>
</member>
<member name="T:J2N.Collections.Generic.Extensions.SetExtensions">
<summary>
Extensions to the <see cref="T:System.Collections.Generic.ISet`1"/> interface.
</summary>
</member>
<member name="M:J2N.Collections.Generic.Extensions.SetExtensions.AsReadOnly``1(System.Collections.Generic.ISet{``0})">
<summary>
Returns a read-only <see cref="T:J2N.Collections.ObjectModel.ReadOnlySet`1"/> wrapper for the current collection.
</summary>
<typeparam name="T">The type of elements in the set.</typeparam>
<param name="collection">The collection to make read-only.</param>
<returns>An object that acts as a read-only wrapper around the current <see cref="T:System.Collections.Generic.ISet`1"/>.</returns>
<exception cref="T:System.ArgumentNullException"><paramref name="collection"/> is <c>null</c>.</exception>
<remarks>
To prevent any modifications to the <see cref="T:System.Collections.Generic.ISet`1"/> object, expose it only through this wrapper.
A <see cref="T:J2N.Collections.ObjectModel.ReadOnlySet`1"/> object does not expose methods that modify the collection. However, if
changes are made to the underlying <see cref="T:System.Collections.Generic.ISet`1"/> object, the read-only collection reflects those changes.
<para/>
This method is an O(1) operation.
</remarks>
</member>
<member name="T:J2N.Collections.Generic.SubList`1">
<summary>
Wraps an <see cref="T:System.Collections.Generic.IList`1"/> as a sublist. However, since we can make no assumptions as to the internals of the
passed in implementation, we make a best effort to throw an exception when the Count property of the list has changed
but have undefined behavior it the state is mutated in another way.
</summary>
<typeparam name="T"></typeparam>
</member>
<member name="M:J2N.Collections.Generic.SubList`1.Equals(System.Object,System.Collections.IEqualityComparer)">
<summary>
Determines whether the specified object is structurally equal to the current list
using rules provided by the specified <paramref name="comparer"/>.
</summary>
<param name="other">The object to compare with the current object.</param>
<param name="comparer">The <see cref="T:System.Collections.IEqualityComparer"/> implementation to use to determine
whether the current object and <paramref name="other"/> are structurally equal.</param>
<returns><c>true</c> if <paramref name="other"/> is structurally equal to the current list;
otherwise, <c>false</c>.</returns>
<exception cref="T:System.ArgumentNullException">If <paramref name="comparer"/> is <c>null</c>.</exception>
</member>
<member name="M:J2N.Collections.Generic.SubList`1.GetHashCode(System.Collections.IEqualityComparer)">
<summary>
Gets the hash code representing the current list using rules specified by the
provided <paramref name="comparer"/>.
</summary>
<param name="comparer">The <see cref="T:System.Collections.IEqualityComparer"/> implementation to use to generate
the hash code.</param>
<returns>A hash code representing the current list.</returns>
</member>
<member name="M:J2N.Collections.Generic.SubList`1.Equals(System.Object)">
<summary>
Determines whether the specified object is structurally equal to the current list
using rules similar to those in the JDK's AbstactList class. Two lists are considered
equal when they both contain the same objects in the same order.
</summary>
<param name="obj">The object to compare with the current object.</param>
<returns><c>true</c> if the specified object implements <see cref="T:System.Collections.Generic.IList`1"/>
and it contains the same elements in the same order; otherwise, <c>false</c>.</returns>
<seealso cref="M:J2N.Collections.Generic.SubList`1.Equals(System.Object,System.Collections.IEqualityComparer)"/>
</member>
<member name="M:J2N.Collections.Generic.SubList`1.GetHashCode">
<summary>
Gets the hash code for the current list. The hash code is calculated
by taking each nested element's hash code into account.
</summary>
<returns>A hash code for the current object.</returns>
</member>
<member name="M:J2N.Collections.Generic.SubList`1.ToString(System.String,System.IFormatProvider)">
<summary>
Returns a string that represents the current list using the specified
<paramref name="format"/> and <paramref name="formatProvider"/>.
</summary>
<returns>A string that represents the current list.</returns>
<exception cref="T:System.ArgumentNullException"><paramref name="format"/> is <c>null</c>.</exception>
<exception cref="T:System.FormatException">
<paramref name="format"/> is invalid.
<para/>
-or-
<para/>
The index of a format item is not zero.
</exception>
</member>
<member name="M:J2N.Collections.Generic.SubList`1.ToString">
<summary>
Returns a string that represents the current list using
<see cref="P:J2N.Text.StringFormatter.CurrentCulture"/>.
<para/>
The presentation has a specific format. It is enclosed by square
brackets ("[]"). Elements are separated by ', ' (comma and space).
</summary>
<returns>A string that represents the current list.</returns>
</member>
<member name="M:J2N.Collections.Generic.SubList`1.ToString(System.IFormatProvider)">
<summary>
Returns a string that represents the current list using the specified
<paramref name="formatProvider"/>.
</summary>
<returns>A string that represents the current list.</returns>
<exception cref="T:System.ArgumentNullException"><paramref name="formatProvider"/> is <c>null</c>.</exception>
</member>
<member name="M:J2N.Collections.Generic.SubList`1.ToString(System.String)">
<summary>
Returns a string that represents the current list using the specified
<paramref name="format"/> and <see cref="P:J2N.Text.StringFormatter.CurrentCulture"/>.
<para/>
The presentation has a specific format. It is enclosed by square
brackets ("[]"). Elements are separated by ', ' (comma and space).
</summary>
<returns>A string that represents the current list.</returns>
<exception cref="T:System.ArgumentNullException"><paramref name="format"/> is <c>null</c>.</exception>
<exception cref="T:System.FormatException">
<paramref name="format"/> is invalid.
<para/>
-or-
<para/>
The index of a format item is not zero.
</exception>
</member>
<member name="T:J2N.Collections.Generic.HashSet`1">
<summary>
Represents a set of values.
<para/>
<see cref="T:J2N.Collections.Generic.HashSet`1"/> adds the following features to <see cref="T:System.Collections.Generic.HashSet`1"/>:
<list type="bullet">
<item><description>
Overrides the <see cref="M:J2N.Collections.Generic.HashSet`1.Equals(System.Object)"/> and <see cref="M:J2N.Collections.Generic.HashSet`1.GetHashCode"/> methods to compare collections
using structural equality by default. Also, <see cref="T:System.Collections.IStructuralEquatable"/> is implemented so the
default behavior can be overridden.
</description></item>
<item><description>
Overrides the <see cref="M:J2N.Collections.Generic.HashSet`1.ToString"/> method to list the contents of the set
by default. Also, <see cref="T:System.IFormatProvider"/> is implemented so the
default behavior can be overridden.
</description></item>
<item><description>
Uses <see cref="P:J2N.Collections.Generic.EqualityComparer`1.Default"/> by default, which provides some specialized equality comparisons
for specific types to match the behavior of Java.
</description></item>
</list>
<para/>
Usage Note: This class is intended to be a direct replacement for <see cref="T:System.Collections.Generic.HashSet`1"/> in order
to provide default structural equality and formatting behavior similar to Java. Note that the <see cref="M:J2N.Collections.Generic.HashSet`1.ToString"/>
method uses the current culture by default to behave like other components in .NET. To exactly match Java's culture-neutral behavior,
call <c>ToString(StringFormatter.InvariantCulture)</c>.
</summary>
<typeparam name="T">The type of elements in the set.</typeparam>
</member>
<member name="M:J2N.Collections.Generic.HashSet`1.#ctor">
<summary>
Initializes a new instance of the <see cref="T:J2N.Collections.Generic.HashSet`1"/> class that is empty
and uses <see cref="P:J2N.Collections.Generic.EqualityComparer`1.Default"/> for the set type.
</summary>
<remarks>
The capacity of a <see cref="T:J2N.Collections.Generic.HashSet`1"/> object is the number of elements that the object can hold.
A <see cref="T:J2N.Collections.Generic.HashSet`1"/> object's capacity automatically increases as elements are added to the object.
<para/>
This constructor is an O(1) operation.
</remarks>
</member>
<member name="M:J2N.Collections.Generic.HashSet`1.#ctor(System.Collections.Generic.IEqualityComparer{`0})">
<summary>
Initializes a new instance of the <see cref="T:J2N.Collections.Generic.HashSet`1"/> class that is empty and uses the
specified equality comparer for the set type.
</summary>
<param name="comparer">The <see cref="T:System.Collections.Generic.IEqualityComparer`1"/> implementation to use when comparing values in the
set, or <c>null</c> to use <see cref="P:J2N.Collections.Generic.EqualityComparer`1.Default"/> for the set type.</param>
<remarks>
The capacity of a <see cref="T:J2N.Collections.Generic.HashSet`1"/> object is the number of elements that the object can hold.
A <see cref="T:J2N.Collections.Generic.HashSet`1"/> object's capacity automatically increases as elements are added to the object.
<para/>
This constructor is an O(1) operation.
</remarks>
</member>
<member name="M:J2N.Collections.Generic.HashSet`1.#ctor(System.Int32)">
<summary>
Initializes a new instance of the <see cref="T:J2N.Collections.Generic.HashSet`1"/> class that is empty, but has reserved
space for <paramref name="capacity"/> items and uses <see cref="P:J2N.Collections.Generic.EqualityComparer`1.Default"/> for the set type.
</summary>
<param name="capacity">The initial size of the <see cref="T:J2N.Collections.Generic.HashSet`1"/>.</param>
<remarks>
Since resizes are relatively expensive (require rehashing), this attempts to minimize the need
to resize by setting the initial capacity based on the value of the <paramref name="capacity"/>.
</remarks>
</member>
<member name="M:J2N.Collections.Generic.HashSet`1.#ctor(System.Collections.Generic.IEnumerable{`0})">
<summary>
Initializes a new instance of the <see cref="T:J2N.Collections.Generic.HashSet`1"/> class that uses <see cref="P:J2N.Collections.Generic.EqualityComparer`1.Default"/>
for the set type, contains elements copied from the specified collection, and has sufficient capacity
to accommodate the number of elements copied.
</summary>
<param name="collection">The collection whose elements are copied to the new set.</param>
<exception cref="T:System.ArgumentNullException"><paramref name="collection"/> is <c>null</c>.</exception>
<remarks>
The capacity of a <see cref="T:J2N.Collections.Generic.HashSet`1"/> object is the number of elements that the object can hold.
A <see cref="T:J2N.Collections.Generic.HashSet`1"/> object's capacity automatically increases as elements are added to the object.
<para/>
If <paramref name="collection"/> contains duplicates, the set will contain one of each unique element.No exception will
be thrown. Therefore, the size of the resulting set is not identical to the size of <paramref name="collection"/>.
<para/>
This constructor is an O(n) operation, where n is the number of elements in the <paramref name="collection"/> parameter.
</remarks>
</member>
<member name="M:J2N.Collections.Generic.HashSet`1.#ctor(System.Collections.Generic.IEnumerable{`0},System.Collections.Generic.IEqualityComparer{`0})">
<summary>
Initializes a new instance of the <see cref="T:J2N.Collections.Generic.HashSet`1"/> class that uses the specified equality comparer for the set type,
contains elements copied from the specified collection, and has sufficient capacity to accommodate the number of elements copied.
</summary>
<param name="collection">The collection whose elements are copied to the new set.</param>
<param name="comparer">The <see cref="T:System.Collections.Generic.IEqualityComparer`1"/> implementation to use when comparing values in the
set, or <c>null</c> to use <see cref="P:J2N.Collections.Generic.EqualityComparer`1.Default"/> for the set type.</param>
<exception cref="T:System.ArgumentNullException"><paramref name="collection"/> is <c>null</c>.</exception>
<remarks>
The capacity of a <see cref="T:J2N.Collections.Generic.HashSet`1"/> object is the number of elements that the object can hold. A <see cref="T:J2N.Collections.Generic.HashSet`1"/>
object's capacity automatically increases as elements are added to the object.
<para/>
If <paramref name="collection"/> contains duplicates, the set will contain one of each unique element. No exception will be thrown. Therefore,
the size of the resulting set is not identical to the size of <paramref name="collection"/>.
<para/>
This constructor is an O(n) operation, where n is the number of elements in the <paramref name="collection"/> parameter.
</remarks>
</member>
<member name="M:J2N.Collections.Generic.HashSet`1.#ctor(System.Int32,System.Collections.Generic.IEqualityComparer{`0})">
<summary>
Initializes a new instance of the <see cref="T:J2N.Collections.Generic.HashSet`1"/> class that uses the specified equality comparer
for the set type, and has sufficient capacity to accommodate <paramref name="capacity"/> elements.
</summary>
<param name="capacity">The initial size of the <see cref="T:J2N.Collections.Generic.HashSet`1"/>.</param>
<param name="comparer">The <see cref="T:System.Collections.Generic.IEqualityComparer`1"/> implementation to use when comparing values in the
set, or <c>null</c> to use <see cref="P:J2N.Collections.Generic.EqualityComparer`1.Default"/> for the set type.</param>
<remarks>Since resizes are relatively expensive (require rehashing), this attempts to minimize the need to resize
by setting the initial capacity based on the value of the <paramref name="capacity"/>.</remarks>
</member>
<member name="M:J2N.Collections.Generic.HashSet`1.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
<summary>
Initializes a new instance of the <see cref="T:J2N.Collections.Generic.HashSet`1"/> class with serialized data.
</summary>
<param name="info">A <see cref="T:System.Runtime.Serialization.SerializationInfo"/> object that contains
the information required to serialize the <see cref="T:J2N.Collections.Generic.HashSet`1"/> object.</param>
<param name="context">A <see cref="T:System.Runtime.Serialization.StreamingContext"/> structure that contains
the source and destination of the serialized stream associated with the <see cref="T:J2N.Collections.Generic.HashSet`1"/> object.</param>
</member>
<member name="M:J2N.Collections.Generic.HashSet`1.AsReadOnly">
<summary>
Returns a read-only <see cref="T:J2N.Collections.ObjectModel.ReadOnlySet`1"/> wrapper for the current collection.
</summary>
<returns>An object that acts as a read-only wrapper around the current <see cref="T:J2N.Collections.Generic.HashSet`1"/>.</returns>
<remarks>
To prevent any modifications to the <see cref="T:J2N.Collections.Generic.HashSet`1"/> object, expose it only through this wrapper.
A <see cref="T:J2N.Collections.ObjectModel.ReadOnlySet`1"/> object does not expose methods that modify the collection. However,
if changes are made to the underlying <see cref="T:J2N.Collections.Generic.HashSet`1"/> object, the read-only collection reflects those changes.
<para/>
This method is an O(1) operation.
</remarks>
</member>
<member name="M:J2N.Collections.Generic.HashSet`1.System#Collections#Generic#ICollection{T}#Add(`0)">
<summary>
Add item to this hashset. This is the explicit implementation of the <see cref="T:System.Collections.Generic.ICollection`1"/>
interface. The other Add method returns bool indicating whether item was added.
</summary>
<param name="item">item to add</param>
</member>
<member name="M:J2N.Collections.Generic.HashSet`1.Clear">
<summary>
Removes all elements from a <see cref="T:J2N.Collections.Generic.HashSet`1"/> object.
</summary>
<remarks>
<see cref="P:J2N.Collections.Generic.HashSet`1.Count"/> is set to zero and references to other objects from elements of the
collection are also released. The capacity remains unchanged until a call to <see cref="M:J2N.Collections.Generic.HashSet`1.TrimExcess"/> is made.
<para/>
This method is an O(<c>n</c>) operation, where <c>n</c> is <see cref="P:J2N.Collections.Generic.HashSet`1.Count"/>.
</remarks>
</member>
<member name="M:J2N.Collections.Generic.HashSet`1.Contains(`0)">
<summary>
Determines whether a <see cref="T:J2N.Collections.Generic.HashSet`1"/> object contains the specified element.
</summary>
<param name="item">The element to locate in the <see cref="T:J2N.Collections.Generic.HashSet`1"/> object.</param>
<returns><c>true</c> if the <see cref="T:J2N.Collections.Generic.HashSet`1"/> object contains the specified element;
otherwise, <c>false</c>.</returns>
<remarks>
This method is an O(1) operation.
</remarks>
</member>
<member name="M:J2N.Collections.Generic.HashSet`1.CopyTo(`0[],System.Int32)">
<summary>
Copies the elements of a <see cref="T:J2N.Collections.Generic.HashSet`1"/> collection to an array.
</summary>
<param name="array">The one-dimensional array that is the destination of
the elements copied from the <see cref="T:J2N.Collections.Generic.HashSet`1"/> object.
The array must have zero-based indexing.</param>
<param name="arrayIndex">The zero-based index in <paramref name="array"/> at which copying begins.</param>
<exception cref="T:System.ArgumentNullException"><paramref name="array"/> is <c>null</c>.</exception>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="arrayIndex"/> is less than 0.
</exception>
<exception cref="T:System.ArgumentException">
<paramref name="arrayIndex"/> is greater than the length of the destination <paramref name="array"/>.
</exception>
<remarks>
Calling this method is an O(<c>n</c>) operation, where <c>n</c> is <see cref="P:J2N.Collections.Generic.HashSet`1.Count"/>.
</remarks>
</member>
<member name="M:J2N.Collections.Generic.HashSet`1.Remove(`0)">
<summary>
Removes the specified element from a <see cref="T:J2N.Collections.Generic.HashSet`1"/> object.
</summary>
<param name="item">The element to remove.</param>
<returns><c>true</c> if the element is successfully found and removed;
otherwise, <c>false</c>. This method returns <c>false</c> if item is not
found in the <see cref="T:J2N.Collections.Generic.HashSet`1"/> object.</returns>
<remarks>
If the <see cref="T:J2N.Collections.Generic.HashSet`1"/> object does not contain the specified
element, the object remains unchanged. No exception is thrown.
<para/>
This method is an O(1) operation.
</remarks>
</member>
<member name="P:J2N.Collections.Generic.HashSet`1.Count">
<summary>
Gets the number of elements that are contained in a set.
</summary>
<remarks>
The capacity of a <see cref="T:J2N.Collections.Generic.HashSet`1"/> object is the number of elements that the object can hold.
A <see cref="T:J2N.Collections.Generic.HashSet`1"/> object's capacity automatically increases as elements are added to the object.
<para/>
The capacity is always greater than or equal to <see cref="P:J2N.Collections.Generic.HashSet`1.Count"/>. If <see cref="P:J2N.Collections.Generic.HashSet`1.Count"/> exceeds the
capacity while adding elements, the capacity is set to the first prime number that is greater than
double the previous capacity.
<para/>
Retrieving the value of this property is an O(1) operation.
</remarks>
</member>
<member name="P:J2N.Collections.Generic.HashSet`1.System#Collections#Generic#ICollection{T}#IsReadOnly">
<summary>
Gets a value indicating whether a collection is read-only.
</summary>
<remarks>
Retrieving the value of this property is an O(1) operation.
</remarks>
</member>
<member name="M:J2N.Collections.Generic.HashSet`1.GetEnumerator">
<summary>
Returns an enumerator that iterates through a <see cref="T:J2N.Collections.Generic.HashSet`1"/> object.
</summary>
<returns>An <see cref="T:System.Collections.Generic.IEnumerator`1"/> object for the <see cref="T:J2N.Collections.Generic.HashSet`1"/> object.</returns>
<remarks>
The <c>foreach</c> statement of the C# language (<c>for each</c> in C++, <c>For Each</c> in Visual Basic)
hides the complexity of enumerators. Therefore, using <c>foreach</c> is recommended instead of directly manipulating the enumerator.
<para/>
Enumerators can be used to read the data in the collection, but they cannot be used to modify the underlying collection.
<para/>
Initially, the enumerator is positioned before the first element in the collection. At this position, the
<see cref="P:System.Collections.Generic.IEnumerator`1.Current"/> property is undefined. Therefore, you must call the
<see cref="M:System.Collections.IEnumerator.MoveNext"/> method to advance the enumerator to the first element
of the collection before reading the value of <see cref="P:System.Collections.Generic.IEnumerator`1.Current"/>.
<para/>
The <see cref="P:System.Collections.Generic.IEnumerator`1.Current"/> property returns the same object until
<see cref="M:System.Collections.IEnumerator.MoveNext"/> is called. <see cref="M:System.Collections.IEnumerator.MoveNext"/>
sets <see cref="P:System.Collections.Generic.IEnumerator`1.Current"/> to the next element.
<para/>
If <see cref="M:System.Collections.IEnumerator.MoveNext"/> passes the end of the collection, the enumerator is
positioned after the last element in the collection and <see cref="M:System.Collections.IEnumerator.MoveNext"/>
returns <c>false</c>. When the enumerator is at this position, subsequent calls to <see cref="M:System.Collections.IEnumerator.MoveNext"/>
also return <c>false</c>. If the last call to <see cref="M:System.Collections.IEnumerator.MoveNext"/> returned <c>false</c>,
<see cref="P:System.Collections.Generic.IEnumerator`1.Current"/> is undefined. You cannot set <see cref="P:System.Collections.Generic.IEnumerator`1.Current"/>
to the first element of the collection again; you must create a new enumerator object instead.
<para/>
An enumerator remains valid as long as the collection remains unchanged. If changes are made to the collection,
such as adding, modifying, or deleting elements, the enumerator is irrecoverably invalidated and the next call
to <see cref="M:System.Collections.IEnumerator.MoveNext"/> or <see cref="M:System.Collections.IEnumerator.Reset"/> throws an
<see cref="T:System.InvalidOperationException"/>.
<para/>
The enumerator does not have exclusive access to the collection; therefore, enumerating through a collection is
intrinsically not a thread-safe procedure. To guarantee thread safety during enumeration, you can lock the
collection during the entire enumeration. To allow the collection to be accessed by multiple threads for
reading and writing, you must implement your own synchronization.
<para/>
Default implementations of collections in the <see cref="N:J2N.Collections.Generic"/> namespace are not synchronized.
<para/>
This method is an O(1) operation.
</remarks>
</member>
<member name="M:J2N.Collections.Generic.HashSet`1.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
<summary>
Implements the <see cref="T:System.Runtime.Serialization.ISerializable"/> interface and returns the data
needed to serialize a <see cref="T:J2N.Collections.Generic.HashSet`1"/> object.
</summary>
<param name="info">A <see cref="T:System.Runtime.Serialization.SerializationInfo"/> object that contains
the information required to serialize the <see cref="T:J2N.Collections.Generic.HashSet`1"/> object.</param>
<param name="context">A <see cref="T:System.Runtime.Serialization.StreamingContext"/> structure that
contains the source and destination of the serialized stream associated with the <see cref="T:J2N.Collections.Generic.HashSet`1"/> object.</param>
<exception cref="T:System.ArgumentNullException"><paramref name="info"/> is <c>null</c>.</exception>
<remarks>
Calling this method is an O(<c>n</c>) operation, where <c>n</c> is <see cref="P:J2N.Collections.Generic.HashSet`1.Count"/>.
</remarks>
<permission cref="T:System.Security.Permissions.SecurityPermissionAttribute">
for providing serialization services. Security action: <see cref="F:System.Security.Permissions.SecurityAction.LinkDemand"/>.
Associated enumeration: <see cref="F:System.Security.Permissions.SecurityPermissionFlag.SerializationFormatter"/>
</permission>
</member>
<member name="M:J2N.Collections.Generic.HashSet`1.OnDeserialization(System.Object)">
<summary>
Implements the <see cref="T:System.Runtime.Serialization.ISerializable"/> interface and raises the
deserialization event when the deserialization is complete.
</summary>
<param name="sender">The source of the deserialization event.</param>
<exception cref="T:System.Runtime.Serialization.SerializationException">
The <see cref="T:System.Runtime.Serialization.SerializationInfo"/> object associated with the
current <see cref="T:J2N.Collections.Generic.HashSet`1"/> object is invalid.
</exception>
<remarks>
Calling this method is an O(<c>n</c>) operation, where <c>n</c> is <see cref="P:J2N.Collections.Generic.HashSet`1.Count"/>.
</remarks>
</member>
<member name="M:J2N.Collections.Generic.HashSet`1.Add(`0)">
<summary>
Adds the specified element to a set.
</summary>
<param name="item">The element to add to the set.</param>
<returns><c>true</c> if the element is added to the <see cref="T:J2N.Collections.Generic.HashSet`1"/> object;
<c>false</c> if the element is already present.</returns>
<remarks>
If <see cref="P:J2N.Collections.Generic.HashSet`1.Count"/> already equals the capacity of the <see cref="T:J2N.Collections.Generic.HashSet`1"/> object,
the capacity is automatically adjusted to accommodate the new item.
<para/>
If <see cref="P:J2N.Collections.Generic.HashSet`1.Count"/> is less than the capacity of the internal array, this method is an
O(1) operation. If the <see cref="T:J2N.Collections.Generic.HashSet`1"/> object must be resized, this method
becomes an O(<c>n</c>) operation, where <c>n</c> is <see cref="P:J2N.Collections.Generic.HashSet`1.Count"/>.
</remarks>
</member>
<member name="M:J2N.Collections.Generic.HashSet`1.TryGetValue(`0,`0@)">
<summary>
Searches the set for a given value and returns the equal value it finds, if any.
</summary>
<param name="equalValue">The value to search for.</param>
<param name="actualValue">The value from the set that the search found, or the
default value of <typeparamref name="T"/> when the search yielded no match.</param>
<returns>A value indicating whether the search was successful.</returns>
<remarks>
This can be useful when you want to reuse a previously stored reference instead of
a newly constructed one (so that more sharing of references can occur) or to look up
a value that has more complete data than the value you currently have, although their
comparer functions indicate they are equal.
</remarks>
</member>
<member name="M:J2N.Collections.Generic.HashSet`1.UnionWith(System.Collections.Generic.IEnumerable{`0})">
<summary>
Modifies the current <see cref="T:J2N.Collections.Generic.HashSet`1"/> object to contain all elements that are present
in itself, the specified collection, or both.
</summary>
<param name="other">The collection to compare to the current <see cref="T:J2N.Collections.Generic.HashSet`1"/> object.</param>
<exception cref="T:System.ArgumentNullException"><paramref name="other"/> is <c>null</c>.</exception>
<remarks>
This method is an O(<c>n</c>) operation, where <c>n</c> is the number of elements in the
<paramref name="other"/> parameter.
</remarks>
</member>
<member name="M:J2N.Collections.Generic.HashSet`1.IntersectWith(System.Collections.Generic.IEnumerable{`0})">
<summary>
Modifies the current <see cref="T:J2N.Collections.Generic.HashSet`1"/> object to contain only elements that are
present in that object and in the specified collection.
</summary>
<param name="other">The collection to compare to the current <see cref="T:J2N.Collections.Generic.HashSet`1"/> object.</param>
<exception cref="T:System.ArgumentNullException"><paramref name="other"/> is <c>null</c>.</exception>
<remarks>
If the collection represented by the other parameter is a <see cref="T:J2N.Collections.Generic.HashSet`1"/> collection with
the same equality comparer as the current <see cref="T:J2N.Collections.Generic.HashSet`1"/> object, this method is an O(<c>n</c>) operation.
Otherwise, this method is an O(<c>n</c> + <c>m</c>) operation, where <c>n</c> is <see cref="P:J2N.Collections.Generic.HashSet`1.Count"/> and <c>m</c>
is the number of elements in <paramref name="other"/>.
</remarks>
</member>
<member name="M:J2N.Collections.Generic.HashSet`1.ExceptWith(System.Collections.Generic.IEnumerable{`0})">
<summary>
Removes all elements in the specified collection from the current <see cref="T:J2N.Collections.Generic.HashSet`1"/> object.
</summary>
<param name="other">The collection of items to remove from the <see cref="T:J2N.Collections.Generic.HashSet`1"/> object.</param>
<exception cref="T:System.ArgumentNullException"><paramref name="other"/> is <c>null</c>.</exception>
<remarks>
The <see cref="M:J2N.Collections.Generic.HashSet`1.ExceptWith(System.Collections.Generic.IEnumerable{`0})"/> method is the equivalent of mathematical set subtraction.
<para/>
This method is an O(<c>n</c>) operation, where <c>n</c> is the number of elements in the <paramref name="other"/> parameter.
</remarks>
</member>
<member name="M:J2N.Collections.Generic.HashSet`1.SymmetricExceptWith(System.Collections.Generic.IEnumerable{`0})">
<summary>
Modifies the current <see cref="T:J2N.Collections.Generic.HashSet`1"/> object to contain only elements that are present either
in that object or in the specified collection, but not both.
</summary>
<param name="other">The collection to compare to the current <see cref="T:J2N.Collections.Generic.HashSet`1"/> object.</param>
<exception cref="T:System.ArgumentNullException"><paramref name="other"/> is <c>null</c>.</exception>
<remarks>
If the other parameter is a <see cref="T:J2N.Collections.Generic.HashSet`1"/> collection with the same equality comparer as
the current <see cref="T:J2N.Collections.Generic.HashSet`1"/> object, this method is an O(<c>n</c>) operation. Otherwise,
this method is an O(<c>n</c> + <c>m</c>) operation, where n is the number of elements in other and
<c>m</c> is <see cref="P:J2N.Collections.Generic.HashSet`1.Count"/>.
</remarks>
</member>
<member name="M:J2N.Collections.Generic.HashSet`1.IsSubsetOf(System.Collections.Generic.IEnumerable{`0})">
<summary>
Determines whether a <see cref="T:J2N.Collections.Generic.HashSet`1"/> object is a subset of the specified collection.
</summary>
<param name="other">The collection to compare to the current <see cref="T:J2N.Collections.Generic.HashSet`1"/> object.</param>
<returns><c>true</c> if the <see cref="T:J2N.Collections.Generic.HashSet`1"/> object is a subset of <paramref name="other"/>;
otherwise, <c>false</c>.</returns>
<exception cref="T:System.ArgumentNullException"><paramref name="other"/> is <c>null</c>.</exception>
<remarks>
An empty set is a subset of any other collection, including an empty set; therefore, this method returns
<c>true</c> if the collection represented by the current <see cref="T:J2N.Collections.Generic.HashSet`1"/> object is empty,
even if the <paramref name="other"/> parameter is an empty set.
<para/>
This method always returns <c>false</c> if <see cref="P:J2N.Collections.Generic.HashSet`1.Count"/> is greater than the number of
elements in <paramref name="other"/>.
<para/>
If the collection represented by other is a <see cref="T:J2N.Collections.Generic.HashSet`1"/> collection with the same
equality comparer as the current <see cref="T:J2N.Collections.Generic.HashSet`1"/> object, this method is an O(<c>n</c>) operation.
Otherwise, this method is an O(<c>n</c> + <c>m</c>) operation, where <c>n</c> is <see cref="P:J2N.Collections.Generic.HashSet`1.Count"/> and <c>m</c>
is the number of elements in other.
</remarks>
</member>
<member name="M:J2N.Collections.Generic.HashSet`1.IsProperSubsetOf(System.Collections.Generic.IEnumerable{`0})">
<summary>
Determines whether a <see cref="T:J2N.Collections.Generic.HashSet`1"/> object is a proper subset of the specified collection.
</summary>
<param name="other">The collection to compare to the current <see cref="T:J2N.Collections.Generic.HashSet`1"/> object.</param>
<returns><c>true</c> if the <see cref="T:J2N.Collections.Generic.HashSet`1"/> object is a proper subset of <paramref name="other"/>;
otherwise, <c>false</c>.</returns>
<exception cref="T:System.ArgumentNullException"><paramref name="other"/> is <c>null</c>.</exception>
<remarks>
An empty set is a proper subset of any other collection. Therefore, this method returns <c>true</c> if the
collection represented by the current <see cref="T:J2N.Collections.Generic.HashSet`1"/> object is empty unless the other
parameter is also an empty set.
<para/>
This method always returns <c>false</c> if <see cref="P:J2N.Collections.Generic.HashSet`1.Count"/> is greater than or equal to the number of
elements in <paramref name="other"/>.
<para/>
If the collection represented by other is a <see cref="T:J2N.Collections.Generic.HashSet`1"/> collection with the same equality
comparer as the current <see cref="T:J2N.Collections.Generic.HashSet`1"/> object, then this method is an O(n) operation. Otherwise,
this method is an O(<c>n</c> + <c>m</c>) operation, where <c>n</c> is <see cref="P:J2N.Collections.Generic.HashSet`1.Count"/> and <c>m</c> is the
number of elements in other.
</remarks>
</member>
<member name="M:J2N.Collections.Generic.HashSet`1.IsSupersetOf(System.Collections.Generic.IEnumerable{`0})">
<summary>
Determines whether a <see cref="T:J2N.Collections.Generic.HashSet`1"/> object is a superset of the specified collection.
</summary>
<param name="other">The collection to compare to the current <see cref="T:J2N.Collections.Generic.HashSet`1"/> object.</param>
<returns><c>true</c> if the <see cref="T:J2N.Collections.Generic.HashSet`1"/> object is a superset of <paramref name="other"/>;
otherwise, <c>false</c>.</returns>
<exception cref="T:System.ArgumentNullException"><paramref name="other"/> is <c>null</c>.</exception>
<remarks>
All collections, including the empty set, are supersets of the empty set. Therefore, this method returns
<c>true</c> if the collection represented by the other parameter is empty, even if the current
<see cref="T:J2N.Collections.Generic.HashSet`1"/> object is empty.
<para/>
This method always returns <c>false</c> if <see cref="P:J2N.Collections.Generic.HashSet`1.Count"/> is less than the number of elements
in <paramref name="other"/>.
<para/>
If the collection represented by other is a <see cref="T:J2N.Collections.Generic.HashSet`1"/> collection with the same
equality comparer as the current <see cref="T:J2N.Collections.Generic.HashSet`1"/> object, this method is an O(<c>n</c>) operation.
Otherwise, this method is an O(<c>n</c> + <c>m</c>) operation, where <c>n</c> is the number of elements in other
and <c>m</c> is <see cref="P:J2N.Collections.Generic.HashSet`1.Count"/>.
</remarks>
</member>
<member name="M:J2N.Collections.Generic.HashSet`1.IsProperSupersetOf(System.Collections.Generic.IEnumerable{`0})">
<summary>
Determines whether a <see cref="T:J2N.Collections.Generic.HashSet`1"/> object is a proper superset of the specified collection.
</summary>
<param name="other">The collection to compare to the current <see cref="T:J2N.Collections.Generic.HashSet`1"/> object.</param>
<returns><c>true</c> if the <see cref="T:J2N.Collections.Generic.HashSet`1"/> object is a proper superset of other; otherwise, <c>false</c>.</returns>
<exception cref="T:System.ArgumentNullException"><paramref name="other"/> is <c>null</c>.</exception>
<remarks>
An empty set is a proper superset of any other collection. Therefore, this method returns <c>true</c> if the
collection represented by the other parameter is empty unless the current <see cref="T:J2N.Collections.Generic.HashSet`1"/> collection is also empty.
<para/>
This method always returns <c>false</c> if <see cref="P:J2N.Collections.Generic.HashSet`1.Count"/> is less than or equal to the number of elements in other.
<para/>
If the collection represented by other is a <see cref="T:J2N.Collections.Generic.HashSet`1"/> collection with the same equality
comparer as the current <see cref="T:J2N.Collections.Generic.HashSet`1"/> object, this method is an O(<c>n</c>) operation. Otherwise,
this method is an O(<c>n</c> + <c>m</c>) operation, where <c>n</c> is the number of elements in other and <c>m</c>
is <see cref="P:J2N.Collections.Generic.HashSet`1.Count"/>.
</remarks>
</member>
<member name="M:J2N.Collections.Generic.HashSet`1.Overlaps(System.Collections.Generic.IEnumerable{`0})">
<summary>
Determines whether the current <see cref="T:J2N.Collections.Generic.HashSet`1"/> object and a specified collection
share common elements.
</summary>
<param name="other">The collection to compare to the current <see cref="T:J2N.Collections.Generic.HashSet`1"/> object.</param>
<returns><c>true</c> if the <see cref="T:J2N.Collections.Generic.HashSet`1"/> object and <paramref name="other"/> share
at least one common element; otherwise, <c>false</c>.</returns>
<exception cref="T:System.ArgumentNullException"><paramref name="other"/> is <c>null</c>.</exception>
<remarks>
This method is an O(<c>n</c>) operation, where <c>n</c> is the number of elements in other.
</remarks>
</member>
<member name="M:J2N.Collections.Generic.HashSet`1.SetEquals(System.Collections.Generic.IEnumerable{`0})">
<summary>
Determines whether a <see cref="T:J2N.Collections.Generic.HashSet`1"/> object and the specified collection contain the same elements.
</summary>
<param name="other">The collection to compare to the current <see cref="T:J2N.Collections.Generic.HashSet`1"/> object.</param>
<returns><c>true</c> if the <see cref="T:J2N.Collections.Generic.HashSet`1"/> object is equal to <paramref name="other"/>;
otherwise, <c>false</c>.</returns>
<exception cref="T:System.ArgumentNullException"><paramref name="other"/> is <c>null</c>.</exception>
<remarks>
The <see cref="M:J2N.Collections.Generic.HashSet`1.SetEquals(System.Collections.Generic.IEnumerable{`0})"/> method ignores duplicate entries and the order of elements in the
<paramref name="other"/> parameter.
<para/>
If the collection represented by other is a <see cref="T:J2N.Collections.Generic.HashSet`1"/> collection with the same equality
comparer as the current <see cref="T:J2N.Collections.Generic.HashSet`1"/> object, this method is an O(<c>n</c>) operation. Otherwise,
this method is an O(<c>n</c> + <c>m</c>) operation, where <c>n</c> is the number of elements in other and
<c>m</c> is <see cref="P:J2N.Collections.Generic.HashSet`1.Count"/>.
</remarks>
</member>
<member name="M:J2N.Collections.Generic.HashSet`1.CopyTo(`0[])">
<summary>
Copies the elements of a <see cref="T:J2N.Collections.Generic.HashSet`1"/> object to an array.
</summary>
<param name="array">The one-dimensional array that is the destination of
the elements copied from the <see cref="T:J2N.Collections.Generic.HashSet`1"/> object.
The array must have zero-based indexing.</param>
<exception cref="T:System.ArgumentNullException"><paramref name="array"/> is <c>null</c>.</exception>
<remarks>
This method is an O(<c>n</c>) operation, where <c>n</c> is <see cref="P:J2N.Collections.Generic.HashSet`1.Count"/>.
</remarks>
</member>
<member name="M:J2N.Collections.Generic.HashSet`1.CopyTo(`0[],System.Int32,System.Int32)">
<summary>
Copies the specified number of elements of a <see cref="T:J2N.Collections.Generic.HashSet`1"/>
object to an array, starting at the specified array index.
</summary>
<param name="array">The one-dimensional array that is the destination of
the elements copied from the <see cref="T:J2N.Collections.Generic.HashSet`1"/> object.
The array must have zero-based indexing.</param>
<param name="arrayIndex">The zero-based index in <paramref name="array"/> at which copying begins.</param>
<param name="count">The number of elements to copy to <paramref name="array"/>.</param>
<exception cref="T:System.ArgumentNullException"><paramref name="array"/> is <c>null</c>.</exception>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="arrayIndex"/> is less than 0.
<para/>
-or-
<para/>
<paramref name="count"/> is less than 0.
</exception>
<exception cref="T:System.ArgumentException">
<paramref name="arrayIndex"/> is greater than the length of the destination <paramref name="array"/>.
<para/>
-or-
<para/>
<paramref name="count"/> is greater than the available space from the <paramref name="arrayIndex"/>
to the end of the destination <paramref name="array"/>.
</exception>
<remarks>
Calling this method is an O(<c>n</c>) operation, where <c>n</c> is <paramref name="count"/>.
</remarks>
</member>
<member name="M:J2N.Collections.Generic.HashSet`1.RemoveWhere(System.Predicate{`0})">
<summary>
Removes all elements that match the conditions defined by the specified
predicate from a <see cref="T:J2N.Collections.Generic.HashSet`1"/> collection.
</summary>
<param name="match">The <see cref="T:System.Predicate`1"/> delegate that defines
the conditions of the elements to remove.</param>
<returns>The number of elements that were removed from the
<see cref="T:J2N.Collections.Generic.HashSet`1"/> collection.</returns>
</member>
<member name="P:J2N.Collections.Generic.HashSet`1.EqualityComparer">
<summary>
Gets the <see cref="T:System.Collections.Generic.IEqualityComparer`1"/> object that is used
to determine equality for the values in the set.
</summary>
<remarks>
Retrieving the value of this property is an O(1) operation.
</remarks>
</member>
<member name="M:J2N.Collections.Generic.HashSet`1.EnsureCapacity(System.Int32)">
<summary>
Ensures that this hash set can hold the specified number of elements without growing.
</summary>
<param name="capacity">The minimum capacity to ensure.</param>
<returns>The new capacity of this instance.</returns>
<exception cref="T:System.ArgumentOutOfRangeException"><paramref name="capacity"/> is less than zero.</exception>
</member>
<member name="M:J2N.Collections.Generic.HashSet`1.TrimExcess">
<summary>
Sets the capacity of a <see cref="T:J2N.Collections.Generic.HashSet`1"/> object to the actual
number of elements it contains, rounded up to a nearby, implementation-specific value.
</summary>
<remarks>
You can use the <see cref="M:J2N.Collections.Generic.HashSet`1.TrimExcess"/> method to minimize a <see cref="T:J2N.Collections.Generic.HashSet`1"/>
object's memory overhead once it is known that no new elements will be added. To completely
clear a <see cref="T:J2N.Collections.Generic.HashSet`1"/> object and release all memory referenced by it,
call this method after calling the <see cref="M:J2N.Collections.Generic.HashSet`1.Clear"/> method.
<para/>
This method is an O(<c>n</c>) operation, where <c>n</c> is <see cref="P:J2N.Collections.Generic.HashSet`1.Count"/>.
</remarks>
</member>
<member name="M:J2N.Collections.Generic.HashSet`1.CreateSetComparer">
<summary>
Returns an <see cref="T:System.Collections.IEqualityComparer"/> object that can be used
for equality testing of a <see cref="T:J2N.Collections.Generic.HashSet`1"/> object
as well as any nested objects that implement <see cref="T:System.Collections.IStructuralEquatable"/>.
<para/>
Usage Note: This is exactly the same as <see cref="P:J2N.Collections.Generic.SetEqualityComparer`1.Default"/>.
It is included here to cover the <see cref="T:System.Collections.Generic.HashSet`1"/> API.
</summary>
<returns>An <see cref="T:System.Collections.IEqualityComparer"/> object that can be used for deep
equality testing of the <see cref="T:J2N.Collections.Generic.HashSet`1"/> object.</returns>
<remarks>
The <see cref="T:System.Collections.IEqualityComparer"/> object checks for equality for multiple levels.
Nested reference types that implement <see cref="T:System.Collections.IStructuralEquatable"/> are also compared.
</remarks>
</member>
<member name="M:J2N.Collections.Generic.HashSet`1.Initialize(System.Int32)">
<summary>
Initializes buckets and slots arrays. Uses suggested capacity by finding next prime
greater than or equal to capacity.
</summary>
<param name="capacity"></param>
</member>
<member name="M:J2N.Collections.Generic.HashSet`1.IncreaseCapacity">
<summary>
Expand to new capacity. New capacity is next prime greater than or equal to suggested
size. This is called when the underlying array is filled. This performs no
defragmentation, allowing faster execution; note that this is reasonable since
AddIfNotPresent attempts to insert new elements in re-opened spots.
</summary>
</member>
<member name="M:J2N.Collections.Generic.HashSet`1.SetCapacity(System.Int32)">
<summary>
Set the underlying buckets array to size newSize and rehash. Note that newSize
*must* be a prime. It is very likely that you want to call IncreaseCapacity()
instead of this method.
</summary>
</member>
<member name="M:J2N.Collections.Generic.HashSet`1.AddIfNotPresent(`0)">
<summary>
Adds value to HashSet if not contained already
Returns true if added and false if already present
</summary>
<param name="value">value to find</param>
<returns></returns>
</member>
<member name="M:J2N.Collections.Generic.HashSet`1.ContainsAllElements(System.Collections.Generic.IEnumerable{`0})">
<summary>
Checks if this contains of other's elements. Iterates over other's elements and
returns false as soon as it finds an element in other that's not in this.
Used by SupersetOf, ProperSupersetOf, and SetEquals.
</summary>
<param name="other"></param>
<returns></returns>
</member>
<member name="M:J2N.Collections.Generic.HashSet`1.IsSubsetOfHashSetWithSameEC(System.Collections.Generic.ICollection{`0})">
<summary>
Implementation Notes:
If other is a hashset and is using same equality comparer, then checking subset is
faster. Simply check that each element in this is in other.
Note: if other doesn't use same equality comparer, then Contains check is invalid,
which is why callers must take are of this.
If callers are concerned about whether this is a proper subset, they take care of that.
</summary>
<param name="other"></param>
<returns></returns>
</member>
<member name="M:J2N.Collections.Generic.HashSet`1.IntersectWithHashSetWithSameEC(System.Collections.Generic.ICollection{`0})">
<summary>
If other is a hashset that uses same equality comparer, intersect is much faster
because we can use other's Contains
</summary>
<param name="other"></param>
</member>
<member name="M:J2N.Collections.Generic.HashSet`1.IntersectWithEnumerable(System.Collections.Generic.IEnumerable{`0})">
<summary>
Iterate over other. If contained in this, mark an element in bit array corresponding to
its position in _slots. If anything is unmarked (in bit array), remove it.
This attempts to allocate on the stack, if below StackAllocThreshold.
</summary>
<param name="other"></param>
</member>
<member name="M:J2N.Collections.Generic.HashSet`1.InternalIndexOf(`0)">
<summary>
Used internally by set operations which have to rely on bit array marking. This is like
Contains but returns index in slots array.
</summary>
<param name="item"></param>
<returns></returns>
</member>
<member name="M:J2N.Collections.Generic.HashSet`1.SymmetricExceptWithUniqueHashSet(System.Collections.Generic.IEnumerable{`0})">
<summary>
if other is a set, we can assume it doesn't have duplicate elements, so use this
technique: if can't remove, then it wasn't present in this set, so add.
As with other methods, callers take care of ensuring that other is a hashset using the
same equality comparer.
</summary>
<param name="other"></param>
</member>
<member name="M:J2N.Collections.Generic.HashSet`1.SymmetricExceptWithEnumerable(System.Collections.Generic.IEnumerable{`0})">
<summary>
Implementation notes:
Used for symmetric except when other isn't a HashSet. This is more tedious because
other may contain duplicates. HashSet technique could fail in these situations:
1. Other has a duplicate that's not in this: HashSet technique would add then
remove it.
2. Other has a duplicate that's in this: HashSet technique would remove then add it
back.
In general, its presence would be toggled each time it appears in other.
This technique uses bit marking to indicate whether to add/remove the item. If already
present in collection, it will get marked for deletion. If added from other, it will
get marked as something not to remove.
</summary>
<param name="other"></param>
</member>
<member name="M:J2N.Collections.Generic.HashSet`1.AddOrGetLocation(`0,System.Int32@)">
<summary>
Add if not already in hashset. Returns an out param indicating index where added. This
is used by SymmetricExcept because it needs to know the following things:
- whether the item was already present in the collection or added from other
- where it's located (if already present, it will get marked for removal, otherwise
marked for keeping)
</summary>
<param name="value"></param>
<param name="location"></param>
<returns></returns>
</member>
<member name="M:J2N.Collections.Generic.HashSet`1.CheckUniqueAndUnfoundElements(System.Collections.Generic.IEnumerable{`0},System.Boolean)">
<summary>
Determines counts that can be used to determine equality, subset, and superset. This
is only used when other is an IEnumerable and not a HashSet. If other is a HashSet
these properties can be checked faster without use of marking because we can assume
other has no duplicates.
The following count checks are performed by callers:
1. Equals: checks if unfoundCount = 0 and uniqueFoundCount = _count; i.e. everything
in other is in this and everything in this is in other
2. Subset: checks if unfoundCount >= 0 and uniqueFoundCount = _count; i.e. other may
have elements not in this and everything in this is in other
3. Proper subset: checks if unfoundCount > 0 and uniqueFoundCount = _count; i.e
other must have at least one element not in this and everything in this is in other
4. Proper superset: checks if unfound count = 0 and uniqueFoundCount strictly less
than _count; i.e. everything in other was in this and this had at least one element
not contained in other.
An earlier implementation used delegates to perform these checks rather than returning
an ElementCount struct; however this was changed due to the perf overhead of delegates.
</summary>
<param name="other"></param>
<param name="returnIfUnfound">Allows us to finish faster for equals and proper superset
because unfoundCount must be 0.</param>
<returns></returns>
</member>
<member name="M:J2N.Collections.Generic.HashSet`1.HashSetEquals(J2N.Collections.Generic.HashSet{`0},J2N.Collections.Generic.HashSet{`0},System.Collections.Generic.IEqualityComparer{`0})">
<summary>
Internal method used for HashSetEqualityComparer. Compares set1 and set2 according
to specified comparer.
Because items are hashed according to a specific equality comparer, we have to resort
to n^2 search if they're using different equality comparers.
</summary>
<param name="set1"></param>
<param name="set2"></param>
<param name="comparer"></param>
<returns></returns>
</member>
<member name="M:J2N.Collections.Generic.HashSet`1.AreEqualityComparersEqual(J2N.Collections.Generic.HashSet{`0},System.Collections.Generic.IEnumerable{`0})">
<summary>
Checks if equality comparers are equal. This is used for algorithms that can
speed up if it knows the other item has unique elements. I.e. if they're using
different equality comparers, then uniqueness assumption between sets break.
</summary>
<param name="set1"></param>
<param name="set2"></param>
<returns></returns>
</member>
<member name="M:J2N.Collections.Generic.HashSet`1.AreEqualityComparersEqual(J2N.Collections.Generic.HashSet{`0},J2N.Collections.Generic.HashSet{`0})">
<summary>
Checks if equality comparers are equal. This is used for algorithms that can
speed up if it knows the other item has unique elements. I.e. if they're using
different equality comparers, then uniqueness assumption between sets break.
</summary>
<param name="set1"></param>
<param name="set2"></param>
<returns></returns>
</member>
<member name="M:J2N.Collections.Generic.HashSet`1.InternalGetHashCode(`0,System.Collections.Generic.IEqualityComparer{`0})">
<summary>
Workaround Comparers that throw ArgumentNullException for GetHashCode(null).
</summary>
<param name="item"></param>
<param name="comparer"></param>
<returns>hash code</returns>
</member>
<member name="M:J2N.Collections.Generic.HashSet`1.Equals(System.Object,System.Collections.IEqualityComparer)">
<summary>
Determines whether the specified object is structurally equal to the current set
using rules provided by the specified <paramref name="comparer"/>.
</summary>
<param name="other">The object to compare with the current object.</param>
<param name="comparer">The <see cref="T:System.Collections.IEqualityComparer"/> implementation to use to determine
whether the current object and <paramref name="other"/> are structurally equal.</param>
<returns><c>true</c> if <paramref name="other"/> is structurally equal to the current set;
otherwise, <c>false</c>.</returns>
<exception cref="T:System.ArgumentNullException">If <paramref name="comparer"/> is <c>null</c>.</exception>
</member>
<member name="M:J2N.Collections.Generic.HashSet`1.GetHashCode(System.Collections.IEqualityComparer)">
<summary>
Gets the hash code representing the current set using rules specified by the
provided <paramref name="comparer"/>.
</summary>
<param name="comparer">The <see cref="T:System.Collections.IEqualityComparer"/> implementation to use to generate
the hash code.</param>
<returns>A hash code representing the current set.</returns>
</member>
<member name="M:J2N.Collections.Generic.HashSet`1.Equals(System.Object)">
<summary>
Determines whether the specified object is structurally equal to the current set
using rules similar to those in the JDK's AbstactSet class. Two sets are considered
equal when they both contain the same objects (in any order).
</summary>
<param name="obj">The object to compare with the current object.</param>
<returns><c>true</c> if the specified object implements <see cref="T:System.Collections.Generic.ISet`1"/>
and it contains the same elements; otherwise, <c>false</c>.</returns>
<seealso cref="M:J2N.Collections.Generic.HashSet`1.Equals(System.Object,System.Collections.IEqualityComparer)"/>
</member>
<member name="M:J2N.Collections.Generic.HashSet`1.GetHashCode">
<summary>
Gets the hash code for the current set. The hash code is calculated
by taking each nested element's hash code into account.
</summary>
<returns>A hash code for the current object.</returns>
<seealso cref="M:J2N.Collections.Generic.HashSet`1.GetHashCode(System.Collections.IEqualityComparer)"/>
</member>
<member name="M:J2N.Collections.Generic.HashSet`1.ToString(System.String,System.IFormatProvider)">
<summary>
Returns a string that represents the current set using the specified
<paramref name="format"/> and <paramref name="formatProvider"/>.
</summary>
<returns>A string that represents the current set.</returns>
<exception cref="T:System.ArgumentNullException"><paramref name="format"/> is <c>null</c>.</exception>
<exception cref="T:System.FormatException">
<paramref name="format"/> is invalid.
<para/>
-or-
<para/>
The index of a format item is not zero.
</exception>
</member>
<member name="M:J2N.Collections.Generic.HashSet`1.ToString">
<summary>
Returns a string that represents the current set using
<see cref="P:J2N.Text.StringFormatter.CurrentCulture"/>.
<para/>
The presentation has a specific format. It is enclosed by square
brackets ("[]"). Elements are separated by ', ' (comma and space).
</summary>
<returns>A string that represents the current set.</returns>
</member>
<member name="M:J2N.Collections.Generic.HashSet`1.ToString(System.IFormatProvider)">
<summary>
Returns a string that represents the current set using the specified
<paramref name="formatProvider"/>.
</summary>
<returns>A string that represents the current set.</returns>
<exception cref="T:System.ArgumentNullException"><paramref name="formatProvider"/> is <c>null</c>.</exception>
</member>
<member name="M:J2N.Collections.Generic.HashSet`1.ToString(System.String)">
<summary>
Returns a string that represents the current set using the specified
<paramref name="format"/> and <see cref="P:J2N.Text.StringFormatter.CurrentCulture"/>.
<para/>
The presentation has a specific format. It is enclosed by square
brackets ("[]"). Elements are separated by ', ' (comma and space).
</summary>
<returns>A string that represents the current set.</returns>
<exception cref="T:System.ArgumentNullException"><paramref name="format"/> is <c>null</c>.</exception>
<exception cref="T:System.FormatException">
<paramref name="format"/> is invalid.
<para/>
-or-
<para/>
The index of a format item is not zero.
</exception>
</member>
<member name="T:J2N.Collections.Generic.IInternalStringEqualityComparer">
<summary>
Represents an <see cref="T:System.Collections.Generic.IEqualityComparer`1"/> that's meant for internal
use only and isn't intended to be serialized or returned back to the user.
Use the <see cref="M:J2N.Collections.Generic.IInternalStringEqualityComparer.GetUnderlyingEqualityComparer"/> method to get the object
that should actually be returned to the caller.
</summary>
</member>
<member name="M:J2N.Collections.Generic.InternalStringEqualityComparer.GetUnderlyingEqualityComparer(System.Collections.Generic.IEqualityComparer{System.String})">
<summary>
Unwraps the internal equality comparer, if proxied.
Otherwise returns the equality comparer itself or its default equivalent.
</summary>
</member>
<member name="T:J2N.Collections.Generic.InsertionBehavior">
<summary>
Used internally to control behavior of insertion into a <see cref="T:J2N.Collections.Generic.Dictionary`2"/>
or <see cref="T:J2N.Collections.Generic.HashSet`1"/>.
</summary>
</member>
<member name="F:J2N.Collections.Generic.InsertionBehavior.None">
<summary>
The default insertion behavior.
</summary>
</member>
<member name="F:J2N.Collections.Generic.InsertionBehavior.OverwriteExisting">
<summary>
Specifies that an existing entry with the same key should be overwritten if encountered.
</summary>
</member>
<member name="F:J2N.Collections.Generic.InsertionBehavior.ThrowOnExisting">
<summary>
Specifies that if an existing entry with the same key is encountered, an exception should be thrown.
</summary>
</member>
<member name="T:J2N.Collections.Generic.LinkedDictionary`2">
<summary>
Represents a collection of key/value pairs that are sorted based on insertion order.
<para/>
<see cref="T:J2N.Collections.Generic.Dictionary`2"/> adds the following features to <see cref="T:System.Collections.Generic.Dictionary`2"/>:
<list type="bullet">
<item><description>
If <typeparamref name="TKey"/> is <see cref="T:System.Nullable`1"/> or a reference type, the key can be
<c>null</c> without throwing an exception.
</description></item>
<item><description>
Overrides the <see cref="M:J2N.Collections.Generic.LinkedDictionary`2.Equals(System.Object)"/> and <see cref="M:J2N.Collections.Generic.LinkedDictionary`2.GetHashCode"/> methods to compare collections
using structural equality by default. Also, <see cref="T:System.Collections.IStructuralEquatable"/> is implemented so the
default behavior can be overridden.
</description></item>
<item><description>
Overrides the <see cref="M:J2N.Collections.Generic.LinkedDictionary`2.ToString"/> method to list the contents of the set
by default. Also, <see cref="T:System.IFormatProvider"/> is implemented so the
default behavior can be overridden.
</description></item>
<item><description>
Uses <see cref="P:J2N.Collections.Generic.EqualityComparer`1.Default"/> by default, which provides some specialized equality comparisons
for specific types to match the behavior of Java.
</description></item>
</list>
<para/>
Usage Note: This class is designed to be a direct replacement for Java's LinkedHashMap, except that
it doesn't contain a constructor overload with an order parameter to turn it into an LRU cache.
<para/>
Note that the <see cref="M:J2N.Collections.Generic.LinkedDictionary`2.ToString"/> method uses the current culture by default to behave like other
components in .NET. To exactly match Java's culture-neutral behavior,
call <c>ToString(StringFormatter.InvariantCulture)</c>.
</summary>
<typeparam name="TKey">The type of the keys in the dictionary.</typeparam>
<typeparam name="TValue">The type of the values in the dictionary.</typeparam>
</member>
<member name="M:J2N.Collections.Generic.LinkedDictionary`2.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
<summary>
Initializes a new instance of the <see cref="T:J2N.Collections.Generic.LinkedDictionary`2"/> class with serialized data.
</summary>
<param name="info">A <see cref="T:System.Runtime.Serialization.SerializationInfo"/> object containing
the information required to serialize the <see cref="T:J2N.Collections.Generic.LinkedDictionary`2"/>.</param>
<param name="context">A <see cref="T:System.Runtime.Serialization.StreamingContext"/> structure containing
the source and destination of the serialized stream associated with the <see cref="T:J2N.Collections.Generic.LinkedDictionary`2"/>.</param>
<remarks>
This constructor is called during deserialization to reconstitute an object transmitted over a stream.
For more information, see
<a href="https://docs.microsoft.com/en-us/dotnet/standard/serialization/xml-and-soap-serialization">XML and SOAP Serialization</a>.
</remarks>
</member>
<member name="M:J2N.Collections.Generic.LinkedDictionary`2.AsReadOnly">
<summary>
Returns a read-only <see cref="T:J2N.Collections.ObjectModel.ReadOnlyDictionary`2"/> wrapper for the current collection.
</summary>
<returns>An object that acts as a read-only wrapper around the current <see cref="T:J2N.Collections.Generic.LinkedDictionary`2"/>.</returns>
<remarks>
To prevent any modifications to the <see cref="T:J2N.Collections.Generic.LinkedDictionary`2"/> object, expose it only through this wrapper.
A <see cref="T:J2N.Collections.ObjectModel.ReadOnlyDictionary`2"/> object does not expose methods that modify the collection. However,
if changes are made to the underlying <see cref="T:J2N.Collections.Generic.LinkedDictionary`2"/> object, the read-only collection reflects those changes.
<para/>
This method is an O(1) operation.
</remarks>
</member>
<member name="P:J2N.Collections.Generic.LinkedDictionary`2.EqualityComparer">
<summary>
Gets the <see cref="T:System.Collections.Generic.IEqualityComparer`1"/> that is used to determine equality of keys
for the dictionary.
</summary>
<remarks>
<see cref="T:J2N.Collections.Generic.LinkedDictionary`2"/> requires an equality implementation to determine
whether keys are equal. You can specify an implementation of the <see cref="T:System.Collections.Generic.IEqualityComparer`1"/>
generic interface by using a constructor that accepts a comparer parameter; if you do not
specify one, J2N's default generic equality comparer <see cref="P:J2N.Collections.Generic.EqualityComparer`1.Default"/> is used.
<para/>
Getting the value of this property is an O(1) operation.
</remarks>
</member>
<member name="M:J2N.Collections.Generic.LinkedDictionary`2.ContainsValue(`1)">
<summary>
Determines whether the <see cref="T:J2N.Collections.Generic.LinkedDictionary`2"/> contains a specific value.
</summary>
<param name="value">The value to locate in the <see cref="T:J2N.Collections.Generic.LinkedDictionary`2"/>.
The value can be <c>null</c> for reference types.</param>
<returns><c>true</c> if the <see cref="T:J2N.Collections.Generic.LinkedDictionary`2"/> contains an element
with the specified value; otherwise, <c>false</c>.</returns>
<remarks>
This method determines equality using J2N's default equality comparer
<see cref="P:J2N.Collections.Generic.EqualityComparer`1.Default"/> for <typeparamref name="TValue"/>,
the type of values in the dictionary.
<para/>
This method performs a linear search; therefore, the average execution time
is proportional to <see cref="P:J2N.Collections.Generic.LinkedDictionary`2.Count"/>. That is, this method is an O(<c>n</c>) operation,
where <c>n</c> is <see cref="P:J2N.Collections.Generic.LinkedDictionary`2.Count"/>.
</remarks>
</member>
<member name="M:J2N.Collections.Generic.LinkedDictionary`2.ContainsValue(`1,System.Collections.Generic.IEqualityComparer{`1})">
<summary>
Determines whether the <see cref="T:J2N.Collections.Generic.LinkedDictionary`2"/> contains a specific value
as determined by the provided <paramref name="valueComparer"/>.
</summary>
<param name="value">The value to locate in the <see cref="T:J2N.Collections.Generic.LinkedDictionary`2"/>.
The value can be <c>null</c> for reference types.</param>
<param name="valueComparer">The <see cref="T:System.Collections.Generic.IEqualityComparer`1"/> to use
to test each value for equality.</param>
<returns><c>true</c> if the <see cref="T:J2N.Collections.Generic.LinkedDictionary`2"/> contains an element
with the specified value; otherwise, <c>false</c>.</returns>
<remarks>
This method performs a linear search; therefore, the average execution time
is proportional to <see cref="P:J2N.Collections.Generic.LinkedDictionary`2.Count"/>. That is, this method is an O(<c>n</c>) operation,
where <c>n</c> is <see cref="P:J2N.Collections.Generic.LinkedDictionary`2.Count"/>.
</remarks>
</member>
<member name="M:J2N.Collections.Generic.LinkedDictionary`2.CopyTo(System.Collections.Generic.KeyValuePair{`0,`1}[],System.Int32)">
<summary>
Copies the elements of the <see cref="T:J2N.Collections.Generic.LinkedDictionary`2"/> to the specified array
of <see cref="T:System.Collections.Generic.KeyValuePair`2"/> structures, starting at the specified index.
</summary>
<param name="array">The one-dimensional array of <see cref="T:System.Collections.Generic.KeyValuePair`2"/> structures
that is the destination of the elements copied from the current <see cref="T:J2N.Collections.Generic.LinkedDictionary`2"/>.
The array must have zero-based indexing.</param>
<param name="index">The zero-based index in <paramref name="array"/> at which copying begins.</param>
<exception cref="T:System.ArgumentException">The number of elements in the source array is greater
than the available space from <paramref name="index"/> to the end of the destination array.</exception>
<exception cref="T:System.ArgumentNullException"><paramref name="array"/> is <c>null</c>.</exception>
<exception cref="T:System.ArgumentOutOfRangeException"><paramref name="index"/> is less than zero.</exception>
<remarks>This method is an <c>O(n)</c> operation, where <c>n</c> is <see cref="P:J2N.Collections.Generic.LinkedDictionary`2.Count"/>.</remarks>
</member>
<member name="M:J2N.Collections.Generic.LinkedDictionary`2.EnsureCapacity(System.Int32)">
<summary>
Ensures that the dictionary can hold up to a specified number of entries without any
further expansion of its backing storage.
</summary>
<param name="capacity">The number of entries.</param>
<returns>The current capacity of the <see cref="T:J2N.Collections.Generic.LinkedDictionary`2"/>.</returns>
<exception cref="T:System.ArgumentOutOfRangeException"><paramref name="capacity"/> is less than 0.</exception>
</member>
<member name="M:J2N.Collections.Generic.LinkedDictionary`2.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
<summary>
Implements the <see cref="T:System.Runtime.Serialization.ISerializable"/> interface and returns the data needed to
serialize the <see cref="T:J2N.Collections.Generic.LinkedDictionary`2"/> instance.
</summary>
<param name="info">A <see cref="T:System.Runtime.Serialization.SerializationInfo"/> object that contains the
information required to serialize the <see cref="T:J2N.Collections.Generic.LinkedDictionary`2"/>.</param>
<param name="context">A <see cref="T:System.Runtime.Serialization.StreamingContext"/> structure that contains
the source and destination of the serialized stream associated with the <see cref="T:J2N.Collections.Generic.LinkedDictionary`2"/> instance.</param>
<exception cref="T:System.ArgumentNullException"><paramref name="info"/> is <c>null</c>.</exception>
<remarks>This method is an O(<c>n</c>) operation, where <c>n</c> is <see cref="P:J2N.Collections.Generic.LinkedDictionary`2.Count"/>.</remarks>
</member>
<member name="M:J2N.Collections.Generic.LinkedDictionary`2.OnDeserialization(System.Object)">
<summary>
Implements the <see cref="T:System.Runtime.Serialization.ISerializable"/> interface and raises the deserialization
event when the deserialization is complete.
</summary>
<param name="sender">The source of the deserialization event.</param>
<exception cref="T:System.Runtime.Serialization.SerializationException">
The <see cref="T:System.Runtime.Serialization.SerializationInfo"/> object associated with the current
<see cref="T:J2N.Collections.Generic.LinkedDictionary`2"/> instance is invalid.</exception>
<remarks>This method is an O(<c>n</c>) operation, where <c>n</c> is <see cref="P:J2N.Collections.Generic.LinkedDictionary`2.Count"/>.</remarks>
</member>
<member name="M:J2N.Collections.Generic.LinkedDictionary`2.TrimExcess(System.Int32)">
<summary>
Sets the capacity of this dictionary to hold up a specified number of entries
without any further expansion of its backing storage.
</summary>
<param name="capacity">The new capacity.</param>
<exception cref="T:System.ArgumentOutOfRangeException"><paramref name="capacity"/> is less
than <see cref="T:J2N.Collections.Generic.Dictionary`2"/>.</exception>
<remarks>
This method can be used to minimize the memory overhead once it is known that no
new elements will be added.
</remarks>
</member>
<member name="M:J2N.Collections.Generic.LinkedDictionary`2.TrimExcess">
<summary>
Sets the capacity of this dictionary to what it would be if it had been originally
initialized with all its entries.
</summary>
<remarks>
This method can be used to minimize memory overhead once it is known that no new
elements will be added to the dictionary. To allocate a minimum size storage array,
execute the following statements:
<code>
dictionary.Clear();
dictionary.TrimExcess();
</code>
</remarks>
</member>
<member name="M:J2N.Collections.Generic.LinkedDictionary`2.TryAdd(`0,`1)">
<summary>
Attempts to add the specified key and value to the dictionary.
</summary>
<param name="key">The key of the element to add. It can be <c>null</c>.</param>
<param name="value">The value of the element to add. It can be <c>null</c>.</param>
<returns><c>true</c> if the key/value pair was added to the dictionary successfully; otherwise, <c>false</c>.</returns>
<remarks>Unlike the <see cref="M:J2N.Collections.Generic.LinkedDictionary`2.Add(`0,`1)"/> method, this method doesn't throw an exception
if the element with the given key exists in the dictionary. Unlike the Dictionary indexer, <see cref="M:J2N.Collections.Generic.LinkedDictionary`2.TryAdd(`0,`1)"/>
doesn't override the element if the element with the given key exists in the dictionary. If the key already exists,
<see cref="M:J2N.Collections.Generic.LinkedDictionary`2.TryAdd(`0,`1)"/> does nothing and returns <c>false</c>.</remarks>
</member>
<member name="M:J2N.Collections.Generic.LinkedDictionary`2.Remove(`0,`1@)">
<summary>
Removes the element with the specified key from the <see cref="T:J2N.Collections.Generic.LinkedDictionary`2"/>.
If the element exists, the associated <paramref name="value"/> is output after it is removed.
</summary>
<param name="key">The key of the element to remove.</param>
<param name="value">The value of the element before it is removed.</param>
<returns><c>true</c> if the element is successfully removed; otherwise, <c>false</c>.
This method also returns <c>false</c> if key is not found in the <see cref="T:J2N.Collections.Generic.LinkedDictionary`2"/>.</returns>
<remarks>
If the <see cref="T:J2N.Collections.Generic.LinkedDictionary`2"/> does not contain an element with the specified key, the
<see cref="T:J2N.Collections.Generic.LinkedDictionary`2"/> remains unchanged. No exception is thrown.
</remarks>
</member>
<member name="M:J2N.Collections.Generic.LinkedDictionary`2.GetEnumerator">
<summary>
Returns an enumerator that iterates through the <see cref="T:J2N.Collections.Generic.LinkedDictionary`2"/>.
</summary>
<returns>A <see cref="T:System.Collections.Generic.IEnumerator`1"/> for the
<see cref="T:J2N.Collections.Generic.LinkedDictionary`2"/>.</returns>
<remarks>
For purposes of enumeration, each item is a <see cref="T:System.Collections.Generic.KeyValuePair`2"/> structure
representing a value and its key.
<para/>
The <c>foreach</c> statement of the C# language (<c>for each</c> in C++, <c>For Each</c> in Visual Basic)
hides the complexity of enumerators. Therefore, using <c>foreach</c> is recommended instead of directly manipulating the enumerator.
<para/>
Enumerators can be used to read the data in the collection, but they cannot be used to modify the underlying collection.
<para/>
The dictionary is maintained in a sorted order using an internal tree. Every new element is positioned at the correct sort position,
and the tree is adjusted to maintain the sort order whenever an element is removed. While enumerating, the sort order is maintained.
<para/>
Initially, the enumerator is positioned before the first element in the collection. At this position, the
<see cref="P:System.Collections.Generic.IEnumerator`1.Current"/> property is undefined. Therefore, you must call the
<see cref="M:System.Collections.IEnumerator.MoveNext"/> method to advance the enumerator to the first element
of the collection before reading the value of <see cref="P:System.Collections.Generic.IEnumerator`1.Current"/>.
<para/>
The <see cref="P:System.Collections.Generic.IEnumerator`1.Current"/> property returns the same object until
<see cref="M:System.Collections.IEnumerator.MoveNext"/> is called. <see cref="M:System.Collections.IEnumerator.MoveNext"/>
sets <see cref="P:System.Collections.Generic.IEnumerator`1.Current"/> to the next element.
<para/>
If <see cref="M:System.Collections.IEnumerator.MoveNext"/> passes the end of the collection, the enumerator is
positioned after the last element in the collection and <see cref="M:System.Collections.IEnumerator.MoveNext"/>
returns <c>false</c>. When the enumerator is at this position, subsequent calls to <see cref="M:System.Collections.IEnumerator.MoveNext"/>
also return <c>false</c>. If the last call to <see cref="M:System.Collections.IEnumerator.MoveNext"/> returned <c>false</c>,
<see cref="P:System.Collections.Generic.IEnumerator`1.Current"/> is undefined. You cannot set <see cref="P:System.Collections.Generic.IEnumerator`1.Current"/>
to the first element of the collection again; you must create a new enumerator object instead.
<para/>
An enumerator remains valid as long as the collection remains unchanged. If changes are made to the collection,
such as adding, modifying, or deleting elements, the enumerator is irrecoverably invalidated and the next call
to <see cref="M:System.Collections.IEnumerator.MoveNext"/> or <see cref="M:System.Collections.IEnumerator.Reset"/> throws an
<see cref="T:System.InvalidOperationException"/>.
<para/>
The enumerator does not have exclusive access to the collection; therefore, enumerating through a collection is
intrinsically not a thread-safe procedure. To guarantee thread safety during enumeration, you can lock the
collection during the entire enumeration. To allow the collection to be accessed by multiple threads for
reading and writing, you must implement your own synchronization.
<para/>
Default implementations of collections in the <see cref="N:J2N.Collections.Generic"/> namespace are not synchronized.
<para/>
This method is an O(1) operation.
</remarks>
</member>
<member name="P:J2N.Collections.Generic.LinkedDictionary`2.Keys">
<summary>
Gets a collection containing the keys in the <see cref="T:J2N.Collections.Generic.LinkedDictionary`2"/>.
</summary>
<remarks>
The keys in the <see cref="T:J2N.Collections.Generic.LinkedDictionary`2.KeyCollection"/> are sorted according
the order in which they were inserted, and are in the same order as the associated values in
the <see cref="T:J2N.Collections.Generic.LinkedDictionary`2.ValueCollection"/> returned by the <see cref="P:J2N.Collections.Generic.LinkedDictionary`2.Values"/> property.
<para/>
The returned <see cref="T:J2N.Collections.Generic.LinkedDictionary`2.KeyCollection"/> is not a static copy; instead,
the <see cref="T:J2N.Collections.Generic.LinkedDictionary`2.KeyCollection"/> refers back to the keys in the original
<see cref="T:J2N.Collections.Generic.LinkedDictionary`2"/>. Therefore, changes to the <see cref="T:J2N.Collections.Generic.LinkedDictionary`2"/>
continue to be reflected in the <see cref="T:J2N.Collections.Generic.LinkedDictionary`2.KeyCollection"/>.
<para/>
Getting the value of this property is an O(1) operation.
</remarks>
</member>
<member name="P:J2N.Collections.Generic.LinkedDictionary`2.Values">
<summary>
Gets a collection containing the values in the <see cref="T:J2N.Collections.Generic.LinkedDictionary`2"/>.
</summary>
<remarks>
The values in the <see cref="T:J2N.Collections.Generic.LinkedDictionary`2.ValueCollection"/> are sorted according to
the order in which they were inserted, and are in the same order as the associated keys in the
<see cref="T:J2N.Collections.Generic.LinkedDictionary`2.KeyCollection"/> returned by the <see cref="P:J2N.Collections.Generic.LinkedDictionary`2.Keys"/> property.
<para/>
The returned <see cref="T:J2N.Collections.Generic.LinkedDictionary`2.ValueCollection"/> is not a static copy;
instead, the <see cref="T:J2N.Collections.Generic.LinkedDictionary`2.ValueCollection"/> refers back to the
values in the original <see cref="T:J2N.Collections.Generic.LinkedDictionary`2"/>. Therefore, changes to
the <see cref="T:J2N.Collections.Generic.LinkedDictionary`2"/> continue to be reflected in the
<see cref="T:J2N.Collections.Generic.LinkedDictionary`2.ValueCollection"/>.
<para/>
Getting the value of this property is an O(1) operation.
</remarks>
</member>
<member name="P:J2N.Collections.Generic.LinkedDictionary`2.Item(`0)">
<summary>
Gets or sets the value associated with the specified key. The key may be <c>null</c>.
</summary>
<param name="key">The key of the value to get or set.</param>
<returns>The value associated with the specified key. If the specified key
is not found, a get operation throws a <see cref="T:System.Collections.Generic.KeyNotFoundException"/>, and
a set operation creates a new element with the specified key.</returns>
<exception cref="T:System.Collections.Generic.KeyNotFoundException">The property is retrieved and <paramref name="key"/>
does not exist in the collection.</exception>
<remarks>
This property provides the ability to access a specific element in the collection by using
the following C# syntax: <c>myCollection[key]</c> (<c>myCollection(key)</c> in Visual Basic).
<para/>
You can also use the <see cref="P:J2N.Collections.Generic.LinkedDictionary`2.Item(`0)"/> property to add new elements by setting the value of a key
that does not exist in the <see cref="T:J2N.Collections.Generic.LinkedDictionary`2"/>; for example,
<c>myCollection["myNonexistentKey"] = myValue</c>. However, if the specified key already exists in
the <see cref="T:J2N.Collections.Generic.LinkedDictionary`2"/>, setting the <see cref="P:J2N.Collections.Generic.LinkedDictionary`2.Item(`0)"/> property overwrites
the old value. In contrast, the <see cref="M:J2N.Collections.Generic.LinkedDictionary`2.Add(`0,`1)"/> method does not modify existing elements.
<para/>
Both keys and values can be <c>null</c> if either <see cref="T:System.Nullable`1"/> or a reference type.
<para/>
The C# language uses the <see cref="P:J2N.Collections.Generic.LinkedDictionary`2.Item(`0)"/> keyword to define the indexers instead of implementing the
<c>Item[TKey]</c> property. Visual Basic implements <c>Item[TKey]</c> as a default property, which provides
the same indexing functionality.
<para/>
Getting the value of this property is an O(log <c>n</c>) operation; setting the property is also
an O(log <c>n</c>) operation.
</remarks>
</member>
<member name="M:J2N.Collections.Generic.LinkedDictionary`2.Add(`0,`1)">
<summary>
Adds an element with the specified key and value into the <see cref="T:J2N.Collections.Generic.LinkedDictionary`2"/>.
</summary>
<param name="key">The key of the element to add.</param>
<param name="value">The value of the element to add. The value can be <c>null</c> for reference types.</param>
<exception cref="T:System.ArgumentException">An element with the same key already exists
in the <see cref="T:J2N.Collections.Generic.LinkedDictionary`2"/>.</exception>
<remarks>
You can also use the <see cref="P:J2N.Collections.Generic.LinkedDictionary`2.Item(`0)"/> property to add new elements by setting the value of
a key that does not exist in the <see cref="T:J2N.Collections.Generic.LinkedDictionary`2"/>; for example,
<c>myCollection["myNonexistentKey"] = myValue</c> (in Visual Basic, <c>myCollection("myNonexistantKey") = myValue</c>).
However, if the specified key already exists in the <see cref="T:J2N.Collections.Generic.LinkedDictionary`2"/>, setting
the <see cref="P:J2N.Collections.Generic.LinkedDictionary`2.Item(`0)"/> property overwrites the old value. In contrast, the <see cref="M:J2N.Collections.Generic.LinkedDictionary`2.Add(`0,`1)"/>
method throws an exception if an element with the specified key already exists.
<para/>
Both keys and values can be <c>null</c> if the corresponding <typeparamref name="TKey"/> or
<typeparamref name="TValue"/> is <see cref="T:System.Nullable`1"/> or a reference type.
<para/>
This method is an O(log <c>n</c>) operation, where <c>n</c> is <see cref="P:J2N.Collections.Generic.LinkedDictionary`2.Count"/>.
</remarks>
</member>
<member name="M:J2N.Collections.Generic.LinkedDictionary`2.ContainsKey(`0)">
<summary>
Determines whether the <see cref="T:J2N.Collections.Generic.LinkedDictionary`2"/> contains an
element with the specified key.
</summary>
<param name="key">The key to locate in the <see cref="T:J2N.Collections.Generic.LinkedDictionary`2"/>. The key can be <c>null</c></param>
<returns><c>true</c> if the <see cref="T:J2N.Collections.Generic.LinkedDictionary`2"/> contains an element
with the specified key; otherwise, <c>false</c>.</returns>
<remarks>This method is an O(log <c>n</c>) operation.</remarks>
</member>
<member name="M:J2N.Collections.Generic.LinkedDictionary`2.TryGetValue(`0,`1@)">
<summary>
Gets the value associated with the specified key.
</summary>
<param name="key">The key of the value to get.</param>
<param name="value">When this method returns, the value associated with the specified key,
if the key is found; otherwise, the default value for the type of the <paramref name="value"/> parameter.</param>
<returns><c>true</c> if the <see cref="T:J2N.Collections.Generic.LinkedDictionary`2"/> contains an element with the
specified key; otherwise, <c>false</c>.</returns>
<remarks>
This method combines the functionality of the <see cref="M:J2N.Collections.Generic.LinkedDictionary`2.ContainsKey(`0)"/> method
and the <see cref="P:J2N.Collections.Generic.LinkedDictionary`2.Item(`0)"/> property.
<para/>
If the key is not found, then the <paramref name="value"/> parameter gets the appropriate
default value for the type <typeparamref name="TValue"/>; for example, 0 (zero) for
integer types, <c>false</c> for Boolean types, and <c>null</c> for reference types.
<para/>
Use the <see cref="M:J2N.Collections.Generic.LinkedDictionary`2.TryGetValue(`0,`1@)"/> method if your code frequently
attempts to access keys that are not in the dictionary. Using this method is more
efficient than catching the <see cref="T:System.Collections.Generic.KeyNotFoundException"/> thrown by the
<see cref="P:J2N.Collections.Generic.LinkedDictionary`2.Item(`0)"/> property.
<para/>
This method approaches an O(1) operation.
</remarks>
</member>
<member name="M:J2N.Collections.Generic.LinkedDictionary`2.Remove(`0)">
<summary>
Removes the element with the specified key from the <see cref="T:J2N.Collections.Generic.LinkedDictionary`2"/>.
</summary>
<param name="key">The key of the element to remove.</param>
<returns><c>true</c> if the element is successfully removed; otherwise, <c>false</c>.
This method also returns <c>false</c> if key is not found in the <see cref="T:J2N.Collections.Generic.LinkedDictionary`2"/>.</returns>
<remarks>
If the <see cref="T:J2N.Collections.Generic.LinkedDictionary`2"/> does not contain an element with the specified key, the
<see cref="T:J2N.Collections.Generic.LinkedDictionary`2"/> remains unchanged. No exception is thrown.
<para/>
This method is an O(log <c>n</c>) operation.
</remarks>
</member>
<member name="M:J2N.Collections.Generic.LinkedDictionary`2.Clear">
<summary>
Removes all elements from the <see cref="T:J2N.Collections.Generic.LinkedDictionary`2"/>.
</summary>
<remarks>
The <see cref="P:J2N.Collections.Generic.LinkedDictionary`2.Count"/> property is set to 0, and references to other objects
from elements of the collection are also released.
<para/>
This method is an O(1) operation, since the root of the internal data structures
is simply released for garbage collection.
</remarks>
</member>
<member name="P:J2N.Collections.Generic.LinkedDictionary`2.Count">
<summary>
Gets the number of key/value pairs contained in the <see cref="T:J2N.Collections.Generic.LinkedDictionary`2"/>.
</summary>
<remarks>
Getting the value of this property is an O(1) operation.
</remarks>
</member>
<member name="M:J2N.Collections.Generic.LinkedDictionary`2.Equals(System.Object,System.Collections.IEqualityComparer)">
<summary>
Determines whether the specified object is structurally equal to the current dictionary
using rules provided by the specified <paramref name="comparer"/>.
</summary>
<param name="other">The object to compare with the current object.</param>
<param name="comparer">The <see cref="T:System.Collections.IEqualityComparer"/> implementation to use to determine
whether the current object and <paramref name="other"/> are structurally equal.</param>
<returns><c>true</c> if <paramref name="other"/> is structurally equal to the current dictionary;
otherwise, <c>false</c>.</returns>
<exception cref="T:System.ArgumentNullException">If <paramref name="comparer"/> is <c>null</c>.</exception>
</member>
<member name="M:J2N.Collections.Generic.LinkedDictionary`2.GetHashCode(System.Collections.IEqualityComparer)">
<summary>
Gets the hash code representing the current dictionary using rules specified by the
provided <paramref name="comparer"/>.
</summary>
<param name="comparer">The <see cref="T:System.Collections.IEqualityComparer"/> implementation to use to generate
the hash code.</param>
<returns>A hash code representing the current dictionary.</returns>
</member>
<member name="M:J2N.Collections.Generic.LinkedDictionary`2.Equals(System.Object)">
<summary>
Determines whether the specified object is structurally equal to the current dictionary
using rules similar to those in the JDK's AbstactMap class. Two dictionaries are considered
equal when they both contain the same mapppings (in any order).
</summary>
<param name="obj">The object to compare with the current object.</param>
<returns><c>true</c> if the specified object implements <see cref="T:System.Collections.Generic.IDictionary`2"/>
and it contains the same elements; otherwise, <c>false</c>.</returns>
<seealso cref="M:J2N.Collections.Generic.LinkedDictionary`2.Equals(System.Object,System.Collections.IEqualityComparer)"/>
</member>
<member name="M:J2N.Collections.Generic.LinkedDictionary`2.GetHashCode">
<summary>
Gets the hash code for the current list. The hash code is calculated
by taking each nested element's hash code into account.
</summary>
<returns>A hash code for the current object.</returns>
<seealso cref="M:J2N.Collections.Generic.LinkedDictionary`2.GetHashCode(System.Collections.IEqualityComparer)"/>
</member>
<member name="M:J2N.Collections.Generic.LinkedDictionary`2.ToString(System.String,System.IFormatProvider)">
<summary>
Returns a string that represents the current dictionary using the specified
<paramref name="format"/> and <paramref name="formatProvider"/>.
</summary>
<returns>A string that represents the current dictionary.</returns>
<exception cref="T:System.ArgumentNullException"><paramref name="format"/> is <c>null</c>.</exception>
<exception cref="T:System.FormatException">
<paramref name="format"/> is invalid.
<para/>
-or-
<para/>
The index of a format item is not zero.
</exception>
</member>
<member name="M:J2N.Collections.Generic.LinkedDictionary`2.ToString">
<summary>
Returns a string that represents the current dictionary using
<see cref="P:J2N.Text.StringFormatter.CurrentCulture"/>.
<para/>
The presentation has a specific format. It is enclosed by curly
brackets ("{}"). Keys and values are separated by '=',
KeyValuePairs are separated by ', ' (comma and space).
</summary>
<returns>A string that represents the current list.</returns>
</member>
<member name="M:J2N.Collections.Generic.LinkedDictionary`2.ToString(System.IFormatProvider)">
<summary>
Returns a string that represents the current dictionary using the specified
<paramref name="formatProvider"/>.
</summary>
<returns>A string that represents the current dictionary.</returns>
<exception cref="T:System.ArgumentNullException"><paramref name="formatProvider"/> is <c>null</c>.</exception>
</member>
<member name="M:J2N.Collections.Generic.LinkedDictionary`2.ToString(System.String)">
<summary>
Returns a string that represents the current dictionary using the specified
<paramref name="format"/> and <see cref="P:J2N.Text.StringFormatter.CurrentCulture"/>.
<para/>
The presentation has a specific format. It is enclosed by curly
brackets ("{}"). Keys and values are separated by '=',
KeyValuePairs are separated by ', ' (comma and space).
</summary>
<returns>A string that represents the current dictionary.</returns>
<exception cref="T:System.ArgumentNullException"><paramref name="format"/> is <c>null</c>.</exception>
<exception cref="T:System.FormatException">
<paramref name="format"/> is invalid.
<para/>
-or-
<para/>
The index of a format item is not zero.
</exception>
</member>
<member name="T:J2N.Collections.Generic.LinkedDictionary`2.Enumerator">
<summary>
Enumerates the elements of a <see cref="T:J2N.Collections.Generic.LinkedDictionary`2"/>.
</summary>
<remarks>
The <c>foreach</c> statement of the C# language (<c>for each</c> in C++, <c>For Each</c> in Visual Basic)
hides the complexity of enumerators. Therefore, using <c>foreach</c> is recommended instead of directly manipulating the enumerator.
<para/>
Enumerators can be used to read the data in the collection, but they cannot be used to modify the underlying collection.
<para/>
Initially, the enumerator is positioned before the first element in the collection. At this position, the
<see cref="P:J2N.Collections.Generic.LinkedDictionary`2.Enumerator.Current"/> property is undefined. Therefore, you must call the
<see cref="M:J2N.Collections.Generic.LinkedDictionary`2.Enumerator.MoveNext"/> method to advance the enumerator to the first element
of the collection before reading the value of <see cref="P:J2N.Collections.Generic.LinkedDictionary`2.Enumerator.Current"/>.
<para/>
The <see cref="P:J2N.Collections.Generic.LinkedDictionary`2.Enumerator.Current"/> property returns the same object until
<see cref="M:J2N.Collections.Generic.LinkedDictionary`2.Enumerator.MoveNext"/> is called. <see cref="M:J2N.Collections.Generic.LinkedDictionary`2.Enumerator.MoveNext"/>
sets <see cref="P:J2N.Collections.Generic.LinkedDictionary`2.Enumerator.Current"/> to the next element.
<para/>
If <see cref="M:J2N.Collections.Generic.LinkedDictionary`2.Enumerator.MoveNext"/> passes the end of the collection, the enumerator is
positioned after the last element in the collection and <see cref="M:J2N.Collections.Generic.LinkedDictionary`2.Enumerator.MoveNext"/>
returns <c>false</c>. When the enumerator is at this position, subsequent calls to <see cref="M:J2N.Collections.Generic.LinkedDictionary`2.Enumerator.MoveNext"/>
also return <c>false</c>. If the last call to <see cref="M:J2N.Collections.Generic.LinkedDictionary`2.Enumerator.MoveNext"/> returned <c>false</c>,
<see cref="P:J2N.Collections.Generic.LinkedDictionary`2.Enumerator.Current"/> is undefined. You cannot set <see cref="P:J2N.Collections.Generic.LinkedDictionary`2.Enumerator.Current"/>
to the first element of the collection again; you must create a new enumerator object instead.
<para/>
An enumerator remains valid as long as the collection remains unchanged. If changes are made to the collection,
such as adding, modifying, or deleting elements, the enumerator is irrecoverably invalidated and the next call
to <see cref="M:J2N.Collections.Generic.LinkedDictionary`2.Enumerator.MoveNext"/> or <see cref="M:System.Collections.IEnumerator.Reset"/> throws an
<see cref="T:System.InvalidOperationException"/>.
<para/>
The enumerator does not have exclusive access to the collection; therefore, enumerating through a collection is
intrinsically not a thread-safe procedure. To guarantee thread safety during enumeration, you can lock the
collection during the entire enumeration. To allow the collection to be accessed by multiple threads for
reading and writing, you must implement your own synchronization.
<para/>
Default implementations of collections in the <see cref="N:J2N.Collections.Generic"/> namespace are not synchronized.
</remarks>
</member>
<member name="M:J2N.Collections.Generic.LinkedDictionary`2.Enumerator.MoveNext">
<summary>
Advances the enumerator to the next element of the <see cref="T:J2N.Collections.Generic.SortedDictionary`2"/>.
</summary>
<returns><c>true</c> if the enumerator was successfully advanced to the next element;
<c>false</c> if the enumerator has passed the end of the collection.</returns>
<exception cref="T:System.InvalidOperationException">The collection was modified after the enumerator was created.</exception>
<remarks>
After an enumerator is created, the enumerator is positioned before the first element in the collection,
and the first call to the <see cref="M:J2N.Collections.Generic.LinkedDictionary`2.Enumerator.MoveNext"/> method advances the enumerator to the first element
of the collection.
<para/>
If MoveNext passes the end of the collection, the enumerator is positioned after the last element in the
collection and <see cref="M:J2N.Collections.Generic.LinkedDictionary`2.Enumerator.MoveNext"/> returns <c>false</c>. When the enumerator is at this position,
subsequent calls to <see cref="M:J2N.Collections.Generic.LinkedDictionary`2.Enumerator.MoveNext"/> also return <c>false</c>.
<para/>
An enumerator remains valid as long as the collection remains unchanged. If changes are made to the
collection, such as adding, modifying, or deleting elements, the enumerator is irrecoverably invalidated
and the next call to <see cref="M:J2N.Collections.Generic.LinkedDictionary`2.Enumerator.MoveNext"/> or <see cref="M:System.Collections.IEnumerator.Reset"/> throws an
<see cref="T:System.InvalidOperationException"/>.
</remarks>
</member>
<member name="M:J2N.Collections.Generic.LinkedDictionary`2.Enumerator.Dispose">
<summary>
Releases all resources used by the <see cref="T:J2N.Collections.Generic.LinkedDictionary`2.Enumerator"/>.
</summary>
</member>
<member name="P:J2N.Collections.Generic.LinkedDictionary`2.Enumerator.Current">
<summary>
Gets the element at the current position of the enumerator.
</summary>
<remarks>
<see cref="P:J2N.Collections.Generic.LinkedDictionary`2.Enumerator.Current"/> is undefined under any of the following conditions:
<list type="bullet">
<item><description>
The enumerator is positioned before the first element of the collection. That happens after an
enumerator is created or after the <see cref="M:System.Collections.IEnumerator.Reset"/> method is called. The <see cref="M:J2N.Collections.Generic.LinkedDictionary`2.Enumerator.MoveNext"/>
method must be called to advance the enumerator to the first element of the collection before reading the value of
the <see cref="P:J2N.Collections.Generic.LinkedDictionary`2.Enumerator.Current"/> property.
</description></item>
<item><description>
The last call to <see cref="M:J2N.Collections.Generic.LinkedDictionary`2.Enumerator.MoveNext"/> returned <c>false</c>, which indicates the end of the collection and that the
enumerator is positioned after the last element of the collection.
</description></item>
<item><description>
The enumerator is invalidated due to changes made in the collection, such as adding, modifying, or deleting elements.
</description></item>
</list>
<para/>
<see cref="P:J2N.Collections.Generic.LinkedDictionary`2.Enumerator.Current"/> does not move the position of the enumerator, and consecutive calls to <see cref="P:J2N.Collections.Generic.LinkedDictionary`2.Enumerator.Current"/> return
the same object until either <see cref="M:J2N.Collections.Generic.LinkedDictionary`2.Enumerator.MoveNext"/> or <see cref="M:System.Collections.IEnumerator.Reset"/> is called.
</remarks>
</member>
<member name="M:J2N.Collections.Generic.LinkedDictionary`2.ValueCollection.CopyTo(`1[],System.Int32)">
<summary>
Copies the <see cref="T:J2N.Collections.Generic.LinkedDictionary`2.ValueCollection"/> elements to an existing one-dimensional
array, starting at the specified array index.
</summary>
<param name="array">The one-dimensional array that is the destination of the elements copied from
the <see cref="T:J2N.Collections.Generic.LinkedDictionary`2.ValueCollection"/>. The array must have zero-based indexing.</param>
<param name="index">The zero-based index in <paramref name="array"/> at which copying begins.</param>
<exception cref="T:System.ArgumentNullException"><paramref name="array"/> is <c>null</c>.</exception>
<exception cref="T:System.ArgumentOutOfRangeException"><paramref name="index"/> is less than 0.</exception>
<exception cref="T:System.ArgumentException">The number of elements in the source <see cref="T:J2N.Collections.Generic.LinkedDictionary`2.ValueCollection"/>
is greater than the available space from <paramref name="index"/> to the end of the destination
<paramref name="array"/>.</exception>
<remarks>
The elements are copied to the array in the same order in which the enumerator iterates through the
<see cref="T:J2N.Collections.Generic.LinkedDictionary`2.ValueCollection"/>.
<para/>
This method is an O(<c>n</c>) operation, where <c>n</c> is <see cref="P:J2N.Collections.Generic.LinkedDictionary`2.ValueCollection.Count"/>.
</remarks>
</member>
<member name="T:J2N.Collections.Generic.LinkedHashSet`1">
<summary>
<see cref="T:J2N.Collections.Generic.LinkedHashSet`1"/> is a variant of <see cref="T:J2N.Collections.Generic.HashSet`1"/>. Its entries are kept in a
doubly-linked list. The iteration order is the order in which entries were inserted.
<para/>
Like <see cref="T:J2N.Collections.Generic.HashSet`1"/>, <see cref="T:J2N.Collections.Generic.LinkedHashSet`1"/> is not thread safe, so access by multiple threads
must be synchronized by an external mechanism.
</summary>
<remarks>
This implementation uses <see cref="T:System.Collections.Generic.HashSet`1"/> as a backing set. It calls
<see cref="M:System.Collections.Generic.HashSet`1.TrimExcess"/> when needed to ensure insertion order.
This is done by tracking whether an operation has removed items from <see cref="T:J2N.Collections.Generic.LinkedHashSet`1"/>. If so,
the next operation that adds items to the <see cref="T:J2N.Collections.Generic.LinkedHashSet`1"/> will call <see cref="M:J2N.Collections.Generic.LinkedHashSet`1.TrimExcess"/>
automatically, which also toggles off the tracking flag. This ensures the performance impact is negligible
when calling methods that add or remove items multiple times in succession, however, there will be an impact
when alternating between the remove and add operations in rapid succession or when calling
<see cref="M:J2N.Collections.Generic.LinkedHashSet`1.SymmetricExceptWith(System.Collections.Generic.IEnumerable{`0})"/>, which does both a remove and an add operation.
</remarks>
<typeparam name="T">The type of elements in the set.</typeparam>
</member>
<member name="M:J2N.Collections.Generic.LinkedHashSet`1.#ctor">
<summary>
Initializes a new instance of the <see cref="T:J2N.Collections.Generic.LinkedHashSet`1"/> class that is empty
and uses <see cref="P:J2N.Collections.Generic.EqualityComparer`1.Default"/> for the set type.
</summary>
<remarks>
The capacity of a <see cref="T:J2N.Collections.Generic.LinkedHashSet`1"/> object is the number of elements that the object can hold.
A <see cref="T:J2N.Collections.Generic.LinkedHashSet`1"/> object's capacity automatically increases as elements are added to the object.
<para/>
This constructor is an O(1) operation.
</remarks>
</member>
<member name="M:J2N.Collections.Generic.LinkedHashSet`1.#ctor(System.Int32)">
<summary>
Initializes a new instance of the <see cref="T:J2N.Collections.Generic.LinkedHashSet`1"/> class that is empty, but has reserved
space for <paramref name="capacity"/> items and uses <see cref="P:J2N.Collections.Generic.EqualityComparer`1.Default"/> for the set type.
</summary>
<param name="capacity">The initial size of the <see cref="T:J2N.Collections.Generic.LinkedHashSet`1"/>.</param>
<remarks>
Since resizes are relatively expensive (require rehashing), this attempts to minimize the need
to resize by setting the initial capacity based on the value of the <paramref name="capacity"/>.
</remarks>
</member>
<member name="M:J2N.Collections.Generic.LinkedHashSet`1.#ctor(System.Collections.Generic.IEnumerable{`0})">
<summary>
Initializes a new instance of the <see cref="T:J2N.Collections.Generic.LinkedHashSet`1"/> class that uses <see cref="P:J2N.Collections.Generic.EqualityComparer`1.Default"/>
for the set type, contains elements copied from the specified collection, and has sufficient capacity
to accommodate the number of elements copied.
</summary>
<param name="collection">The collection whose elements are copied to the new set.</param>
<exception cref="T:System.ArgumentNullException"><paramref name="collection"/> is <c>null</c>.</exception>
<remarks>
The capacity of a <see cref="T:J2N.Collections.Generic.LinkedHashSet`1"/> object is the number of elements that the object can hold.
A <see cref="T:J2N.Collections.Generic.LinkedHashSet`1"/> object's capacity automatically increases as elements are added to the object.
<para/>
If <paramref name="collection"/> contains duplicates, the set will contain one of each unique element.No exception will
be thrown. Therefore, the size of the resulting set is not identical to the size of <paramref name="collection"/>.
<para/>
This constructor is an O(n) operation, where n is the number of elements in the <paramref name="collection"/> parameter.
</remarks>
</member>
<member name="M:J2N.Collections.Generic.LinkedHashSet`1.#ctor(System.Collections.Generic.IEqualityComparer{`0})">
<summary>
Initializes a new instance of the <see cref="T:J2N.Collections.Generic.LinkedHashSet`1"/> class that is empty and uses the
specified equality comparer for the set type.
</summary>
<param name="comparer">The <see cref="T:System.Collections.Generic.IEqualityComparer`1"/> implementation to use when comparing values in the
set, or <c>null</c> to use <see cref="P:J2N.Collections.Generic.EqualityComparer`1.Default"/> for the set type.</param>
<remarks>
The capacity of a <see cref="T:J2N.Collections.Generic.LinkedHashSet`1"/> object is the number of elements that the object can hold.
A <see cref="T:J2N.Collections.Generic.LinkedHashSet`1"/> object's capacity automatically increases as elements are added to the object.
<para/>
This constructor is an O(1) operation.
</remarks>
</member>
<member name="M:J2N.Collections.Generic.LinkedHashSet`1.#ctor(System.Int32,System.Collections.Generic.IEqualityComparer{`0})">
<summary>
Initializes a new instance of the <see cref="T:J2N.Collections.Generic.LinkedHashSet`1"/> class that uses the specified equality comparer
for the set type, and has sufficient capacity to accommodate <paramref name="capacity"/> elements.
</summary>
<param name="capacity">The initial size of the <see cref="T:J2N.Collections.Generic.HashSet`1"/>.</param>
<param name="comparer">The <see cref="T:System.Collections.Generic.IEqualityComparer`1"/> implementation to use when comparing values in the
set, or <c>null</c> to use <see cref="P:J2N.Collections.Generic.EqualityComparer`1.Default"/> for the set type.</param>
<remarks>Since resizes are relatively expensive (require rehashing), this attempts to minimize the need to resize
by setting the initial capacity based on the value of the <paramref name="capacity"/>.</remarks>
</member>
<member name="M:J2N.Collections.Generic.LinkedHashSet`1.#ctor(System.Collections.Generic.IEnumerable{`0},System.Collections.Generic.IEqualityComparer{`0})">
<summary>
Initializes a new instance of the <see cref="T:J2N.Collections.Generic.LinkedHashSet`1"/> class that uses the specified equality comparer for the set type,
contains elements copied from the specified collection, and has sufficient capacity to accommodate the number of elements copied.
</summary>
<param name="collection">The collection whose elements are copied to the new set.</param>
<param name="comparer">The <see cref="T:System.Collections.Generic.IEqualityComparer`1"/> implementation to use when comparing values in the
set, or <c>null</c> to use <see cref="P:J2N.Collections.Generic.EqualityComparer`1.Default"/> for the set type.</param>
<exception cref="T:System.ArgumentNullException"><paramref name="collection"/> is <c>null</c>.</exception>
<remarks>
The capacity of a <see cref="T:J2N.Collections.Generic.LinkedHashSet`1"/> object is the number of elements that the object can hold. A <see cref="T:J2N.Collections.Generic.LinkedHashSet`1"/>
object's capacity automatically increases as elements are added to the object.
<para/>
If <paramref name="collection"/> contains duplicates, the set will contain one of each unique element. No exception will be thrown. Therefore,
the size of the resulting set is not identical to the size of <paramref name="collection"/>.
<para/>
This constructor is an O(n) operation, where n is the number of elements in the <paramref name="collection"/> parameter.
</remarks>
</member>
<member name="M:J2N.Collections.Generic.LinkedHashSet`1.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
<summary>
Initializes a new instance of the <see cref="T:J2N.Collections.Generic.HashSet`1"/> class with serialized data.
</summary>
<param name="info">A <see cref="T:System.Runtime.Serialization.SerializationInfo"/> object that contains
the information required to serialize the <see cref="T:J2N.Collections.Generic.HashSet`1"/> object.</param>
<param name="context">A <see cref="T:System.Runtime.Serialization.StreamingContext"/> structure that contains
the source and destination of the serialized stream associated with the <see cref="T:J2N.Collections.Generic.HashSet`1"/> object.</param>
</member>
<member name="M:J2N.Collections.Generic.LinkedHashSet`1.AsReadOnly">
<summary>
Returns a read-only <see cref="T:J2N.Collections.ObjectModel.ReadOnlySet`1"/> wrapper for the current collection.
</summary>
<returns>An object that acts as a read-only wrapper around the current <see cref="T:J2N.Collections.Generic.LinkedHashSet`1"/>.</returns>
<remarks>
To prevent any modifications to the <see cref="T:J2N.Collections.Generic.LinkedHashSet`1"/> object, expose it only through this wrapper.
A <see cref="T:J2N.Collections.ObjectModel.ReadOnlySet`1"/> object does not expose methods that modify the collection. However,
if changes are made to the underlying <see cref="T:J2N.Collections.Generic.LinkedHashSet`1"/> object, the read-only collection reflects those changes.
<para/>
This method is an O(1) operation.
</remarks>
</member>
<member name="P:J2N.Collections.Generic.LinkedHashSet`1.EqualityComparer">
<summary>
Gets the <see cref="T:System.Collections.Generic.IEqualityComparer`1"/> object that is used
to determine equality for the values in the set.
</summary>
<remarks>
Retrieving the value of this property is an O(1) operation.
</remarks>
</member>
<member name="M:J2N.Collections.Generic.LinkedHashSet`1.CopyTo(`0[])">
<summary>
Copies the elements of a <see cref="T:J2N.Collections.Generic.LinkedHashSet`1"/> object to an array.
</summary>
<param name="array">The one-dimensional array that is the destination of
the elements copied from the <see cref="T:J2N.Collections.Generic.LinkedHashSet`1"/> object.
The array must have zero-based indexing.</param>
<exception cref="T:System.ArgumentNullException"><paramref name="array"/> is <c>null</c>.</exception>
<remarks>
This method is an O(<c>n</c>) operation, where <c>n</c> is <see cref="P:J2N.Collections.Generic.LinkedHashSet`1.Count"/>.
</remarks>
</member>
<member name="M:J2N.Collections.Generic.LinkedHashSet`1.CopyTo(`0[],System.Int32,System.Int32)">
<summary>
Copies the specified number of elements of a <see cref="T:J2N.Collections.Generic.LinkedHashSet`1"/>
object to an array, starting at the specified array index.
</summary>
<param name="array">The one-dimensional array that is the destination of
the elements copied from the <see cref="T:J2N.Collections.Generic.LinkedHashSet`1"/> object.
The array must have zero-based indexing.</param>
<param name="arrayIndex">The zero-based index in <paramref name="array"/> at which copying begins.</param>
<param name="count">The number of elements to copy to <paramref name="array"/>.</param>
<exception cref="T:System.ArgumentNullException"><paramref name="array"/> is <c>null</c>.</exception>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="arrayIndex"/> is less than 0.
<para/>
-or-
<para/>
<paramref name="count"/> is less than 0.
</exception>
<exception cref="T:System.ArgumentException">
<paramref name="arrayIndex"/> is greater than the length of the destination <paramref name="array"/>.
<para/>
-or-
<para/>
<paramref name="count"/> is greater than the available space from the <paramref name="arrayIndex"/>
to the end of the destination <paramref name="array"/>.
</exception>
<remarks>
Calling this method is an O(<c>n</c>) operation, where <c>n</c> is <paramref name="count"/>.
</remarks>
</member>
<member name="M:J2N.Collections.Generic.LinkedHashSet`1.CreateSetComparer">
<summary>
Returns an <see cref="T:System.Collections.IEqualityComparer"/> object that can be used
for equality testing of a <see cref="T:J2N.Collections.Generic.LinkedHashSet`1"/> object
as well as any nested objects that implement <see cref="T:System.Collections.IStructuralEquatable"/>.
<para/>
Usage Note: This is exactly the same as <see cref="P:J2N.Collections.Generic.SetEqualityComparer`1.Default"/>.
It is included here to cover the <see cref="T:System.Collections.Generic.HashSet`1"/> API.
</summary>
<returns>An <see cref="T:System.Collections.IEqualityComparer"/> object that can be used for deep
equality testing of the <see cref="T:J2N.Collections.Generic.LinkedHashSet`1"/> object.</returns>
<remarks>
The <see cref="T:System.Collections.IEqualityComparer"/> object checks for equality for multiple levels.
Nested reference types that implement <see cref="T:System.Collections.IStructuralEquatable"/> are also compared.
</remarks>
</member>
<member name="M:J2N.Collections.Generic.LinkedHashSet`1.EnsureCapacity(System.Int32)">
<summary>
Ensures that this hash set can hold the specified number of elements without growing.
</summary>
<param name="capacity">The minimum capacity to ensure.</param>
<returns>The new capacity of this instance.</returns>
<exception cref="T:System.ArgumentOutOfRangeException"><paramref name="capacity"/> is less than zero.</exception>
</member>
<member name="M:J2N.Collections.Generic.LinkedHashSet`1.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
<summary>
Implements the <see cref="T:System.Runtime.Serialization.ISerializable"/> interface and returns the data
needed to serialize a <see cref="T:J2N.Collections.Generic.LinkedHashSet`1"/> object.
</summary>
<param name="info">A <see cref="T:System.Runtime.Serialization.SerializationInfo"/> object that contains
the information required to serialize the <see cref="T:J2N.Collections.Generic.LinkedHashSet`1"/> object.</param>
<param name="context">A <see cref="T:System.Runtime.Serialization.StreamingContext"/> structure that
contains the source and destination of the serialized stream associated with the <see cref="T:J2N.Collections.Generic.LinkedHashSet`1"/> object.</param>
<exception cref="T:System.ArgumentNullException"><paramref name="info"/> is <c>null</c>.</exception>
<remarks>
Calling this method is an O(<c>n</c>) operation, where <c>n</c> is <see cref="P:J2N.Collections.Generic.LinkedHashSet`1.Count"/>.
</remarks>
<permission cref="T:System.Security.Permissions.SecurityPermissionAttribute">
for providing serialization services. Security action: <see cref="F:System.Security.Permissions.SecurityAction.LinkDemand"/>.
Associated enumeration: <see cref="F:System.Security.Permissions.SecurityPermissionFlag.SerializationFormatter"/>
</permission>
</member>
<member name="M:J2N.Collections.Generic.LinkedHashSet`1.OnDeserialization(System.Object)">
<summary>
Implements the <see cref="T:System.Runtime.Serialization.ISerializable"/> interface and raises the
deserialization event when the deserialization is complete.
</summary>
<param name="sender">The source of the deserialization event.</param>
<exception cref="T:System.Runtime.Serialization.SerializationException">
The <see cref="T:System.Runtime.Serialization.SerializationInfo"/> object associated with the
current <see cref="T:J2N.Collections.Generic.LinkedHashSet`1"/> object is invalid.
</exception>
<remarks>
Calling this method is an O(<c>n</c>) operation, where <c>n</c> is <see cref="P:J2N.Collections.Generic.LinkedHashSet`1.Count"/>.
</remarks>
</member>
<member name="M:J2N.Collections.Generic.LinkedHashSet`1.RemoveWhere(System.Predicate{`0})">
<summary>
Removes all elements that match the conditions defined by the specified
predicate from a <see cref="T:J2N.Collections.Generic.LinkedHashSet`1"/> collection.
</summary>
<param name="match">The <see cref="T:System.Predicate`1"/> delegate that defines
the conditions of the elements to remove.</param>
<returns>The number of elements that were removed from the
<see cref="T:J2N.Collections.Generic.LinkedHashSet`1"/> collection.</returns>
</member>
<member name="M:J2N.Collections.Generic.LinkedHashSet`1.TrimExcess">
<summary>
Sets the capacity of a <see cref="T:J2N.Collections.Generic.LinkedHashSet`1"/> object to the actual
number of elements it contains, rounded up to a nearby, implementation-specific value.
</summary>
<remarks>
You can use the <see cref="M:J2N.Collections.Generic.LinkedHashSet`1.TrimExcess"/> method to minimize a <see cref="T:J2N.Collections.Generic.LinkedHashSet`1"/>
object's memory overhead once it is known that no new elements will be added. To completely
clear a <see cref="T:J2N.Collections.Generic.LinkedHashSet`1"/> object and release all memory referenced by it,
call this method after calling the <see cref="M:J2N.Collections.Generic.LinkedHashSet`1.Clear"/> method.
<para/>
This method is an O(<c>n</c>) operation, where <c>n</c> is <see cref="P:J2N.Collections.Generic.LinkedHashSet`1.Count"/>.
</remarks>
</member>
<member name="M:J2N.Collections.Generic.LinkedHashSet`1.TryGetValue(`0,`0@)">
<summary>
Searches the set for a given value and returns the equal value it finds, if any.
</summary>
<param name="equalValue">The value to search for.</param>
<param name="actualValue">The value from the set that the search found, or the
default value of <typeparamref name="T"/> when the search yielded no match.</param>
<returns>A value indicating whether the search was successful.</returns>
<remarks>
This can be useful when you want to reuse a previously stored reference instead
of a newly constructed one (so that more sharing of references can occur) or to
look up a value that has more complete data than the value you currently have,
although their comparer functions indicate they are equal.
</remarks>
</member>
<member name="P:J2N.Collections.Generic.LinkedHashSet`1.Count">
<summary>
Gets the number of elements that are contained in a set.
</summary>
<remarks>
The capacity of a <see cref="T:J2N.Collections.Generic.LinkedHashSet`1"/> object is the number of elements that the object can hold.
A <see cref="T:J2N.Collections.Generic.LinkedHashSet`1"/> object's capacity automatically increases as elements are added to the object.
<para/>
The capacity is always greater than or equal to <see cref="P:J2N.Collections.Generic.LinkedHashSet`1.Count"/>. If <see cref="P:J2N.Collections.Generic.LinkedHashSet`1.Count"/> exceeds the
capacity while adding elements, the capacity is set to the first prime number that is greater than
double the previous capacity.
<para/>
Retrieving the value of this property is an O(1) operation.
</remarks>
</member>
<member name="P:J2N.Collections.Generic.LinkedHashSet`1.IsReadOnly">
<summary>
Gets a value indicating whether a collection is read-only.
</summary>
<remarks>
Retrieving the value of this property is an O(1) operation.
</remarks>
</member>
<member name="M:J2N.Collections.Generic.LinkedHashSet`1.Add(`0)">
<summary>
Adds the specified element to a set.
</summary>
<param name="item">The element to add to the set.</param>
<returns><c>true</c> if the element is added to the <see cref="T:J2N.Collections.Generic.LinkedHashSet`1"/> object;
<c>false</c> if the element is already present.</returns>
<remarks>
If <see cref="P:J2N.Collections.Generic.LinkedHashSet`1.Count"/> already equals the capacity of the <see cref="T:J2N.Collections.Generic.LinkedHashSet`1"/> object,
the capacity is automatically adjusted to accommodate the new item.
<para/>
If <see cref="P:J2N.Collections.Generic.LinkedHashSet`1.Count"/> is less than the capacity of the internal array, this method is an
O(1) operation. If the <see cref="T:J2N.Collections.Generic.LinkedHashSet`1"/> object must be resized, this method
becomes an O(<c>n</c>) operation, where <c>n</c> is <see cref="P:J2N.Collections.Generic.LinkedHashSet`1.Count"/>.
</remarks>
</member>
<member name="M:J2N.Collections.Generic.LinkedHashSet`1.Clear">
<summary>
Removes all elements from a <see cref="T:J2N.Collections.Generic.LinkedHashSet`1"/> object.
</summary>
<remarks>
<see cref="P:J2N.Collections.Generic.LinkedHashSet`1.Count"/> is set to zero and references to other objects from elements of the
collection are also released. The capacity is set to 0 to ensure insertion order is preserved.
<para/>
This method is an O(<c>n</c>) operation, where <c>n</c> is <see cref="P:J2N.Collections.Generic.LinkedHashSet`1.Count"/>.
</remarks>
</member>
<member name="M:J2N.Collections.Generic.LinkedHashSet`1.Contains(`0)">
<summary>
Determines whether a <see cref="T:J2N.Collections.Generic.LinkedHashSet`1"/> object contains the specified element.
</summary>
<param name="item">The element to locate in the <see cref="T:J2N.Collections.Generic.LinkedHashSet`1"/> object.</param>
<returns><c>true</c> if the <see cref="T:J2N.Collections.Generic.LinkedHashSet`1"/> object contains the specified element;
otherwise, <c>false</c>.</returns>
<remarks>
This method is an O(1) operation.
</remarks>
</member>
<member name="M:J2N.Collections.Generic.LinkedHashSet`1.CopyTo(`0[],System.Int32)">
<summary>
Copies the elements of a <see cref="T:J2N.Collections.Generic.LinkedHashSet`1"/> collection to an array.
</summary>
<param name="array">The one-dimensional array that is the destination of
the elements copied from the <see cref="T:J2N.Collections.Generic.LinkedHashSet`1"/> object.
The array must have zero-based indexing.</param>
<param name="arrayIndex">The zero-based index in <paramref name="array"/> at which copying begins.</param>
<exception cref="T:System.ArgumentNullException"><paramref name="array"/> is <c>null</c>.</exception>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="arrayIndex"/> is less than 0.
</exception>
<exception cref="T:System.ArgumentException">
<paramref name="arrayIndex"/> is greater than the length of the destination <paramref name="array"/>.
</exception>
<remarks>
Calling this method is an O(<c>n</c>) operation, where <c>n</c> is <see cref="P:J2N.Collections.Generic.LinkedHashSet`1.Count"/>.
</remarks>
</member>
<member name="M:J2N.Collections.Generic.LinkedHashSet`1.ExceptWith(System.Collections.Generic.IEnumerable{`0})">
<summary>
Removes all elements in the specified collection from the current <see cref="T:J2N.Collections.Generic.LinkedHashSet`1"/> object.
</summary>
<param name="other">The collection of items to remove from the <see cref="T:J2N.Collections.Generic.LinkedHashSet`1"/> object.</param>
<exception cref="T:System.ArgumentNullException"><paramref name="other"/> is <c>null</c>.</exception>
<remarks>
The <see cref="M:J2N.Collections.Generic.LinkedHashSet`1.ExceptWith(System.Collections.Generic.IEnumerable{`0})"/> method is the equivalent of mathematical set subtraction.
<para/>
This method is an O(<c>n</c>) operation, where <c>n</c> is the number of elements in the <paramref name="other"/> parameter.
</remarks>
</member>
<member name="M:J2N.Collections.Generic.LinkedHashSet`1.GetEnumerator">
<summary>
Returns an enumerator that iterates through a <see cref="T:J2N.Collections.Generic.LinkedHashSet`1"/> object.
</summary>
<returns>An <see cref="T:System.Collections.Generic.IEnumerator`1"/> object for the <see cref="T:J2N.Collections.Generic.LinkedHashSet`1"/> object.</returns>
<remarks>
The <c>foreach</c> statement of the C# language (<c>for each</c> in C++, <c>For Each</c> in Visual Basic)
hides the complexity of enumerators. Therefore, using <c>foreach</c> is recommended instead of directly manipulating the enumerator.
<para/>
Enumerators can be used to read the data in the collection, but they cannot be used to modify the underlying collection.
<para/>
Initially, the enumerator is positioned before the first element in the collection. At this position, the
<see cref="P:System.Collections.Generic.IEnumerator`1.Current"/> property is undefined. Therefore, you must call the
<see cref="M:System.Collections.IEnumerator.MoveNext"/> method to advance the enumerator to the first element
of the collection before reading the value of <see cref="P:System.Collections.Generic.IEnumerator`1.Current"/>.
<para/>
The <see cref="P:System.Collections.Generic.IEnumerator`1.Current"/> property returns the same object until
<see cref="M:System.Collections.IEnumerator.MoveNext"/> is called. <see cref="M:System.Collections.IEnumerator.MoveNext"/>
sets <see cref="P:System.Collections.Generic.IEnumerator`1.Current"/> to the next element.
<para/>
If <see cref="M:System.Collections.IEnumerator.MoveNext"/> passes the end of the collection, the enumerator is
positioned after the last element in the collection and <see cref="M:System.Collections.IEnumerator.MoveNext"/>
returns <c>false</c>. When the enumerator is at this position, subsequent calls to <see cref="M:System.Collections.IEnumerator.MoveNext"/>
also return <c>false</c>. If the last call to <see cref="M:System.Collections.IEnumerator.MoveNext"/> returned <c>false</c>,
<see cref="P:System.Collections.Generic.IEnumerator`1.Current"/> is undefined. You cannot set <see cref="P:System.Collections.Generic.IEnumerator`1.Current"/>
to the first element of the collection again; you must create a new enumerator object instead.
<para/>
An enumerator remains valid as long as the collection remains unchanged. If changes are made to the collection,
such as adding, modifying, or deleting elements, the enumerator is irrecoverably invalidated and the next call
to <see cref="M:System.Collections.IEnumerator.MoveNext"/> or <see cref="M:System.Collections.IEnumerator.Reset"/> throws an
<see cref="T:System.InvalidOperationException"/>.
<para/>
The enumerator does not have exclusive access to the collection; therefore, enumerating through a collection is
intrinsically not a thread-safe procedure. To guarantee thread safety during enumeration, you can lock the
collection during the entire enumeration. To allow the collection to be accessed by multiple threads for
reading and writing, you must implement your own synchronization.
<para/>
Default implementations of collections in the <see cref="N:J2N.Collections.Generic"/> namespace are not synchronized.
<para/>
This method is an O(1) operation.
</remarks>
</member>
<member name="M:J2N.Collections.Generic.LinkedHashSet`1.IntersectWith(System.Collections.Generic.IEnumerable{`0})">
<summary>
Modifies the current <see cref="T:J2N.Collections.Generic.LinkedHashSet`1"/> object to contain only elements that are
present in that object and in the specified collection.
</summary>
<param name="other">The collection to compare to the current <see cref="T:J2N.Collections.Generic.LinkedHashSet`1"/> object.</param>
<exception cref="T:System.ArgumentNullException"><paramref name="other"/> is <c>null</c>.</exception>
<remarks>
If the collection represented by the other parameter is a <see cref="T:J2N.Collections.Generic.LinkedHashSet`1"/> collection with
the same equality comparer as the current <see cref="T:J2N.Collections.Generic.LinkedHashSet`1"/> object, this method is an O(<c>n</c>) operation.
Otherwise, this method is an O(<c>n</c> + <c>m</c>) operation, where <c>n</c> is <see cref="P:J2N.Collections.Generic.LinkedHashSet`1.Count"/> and <c>m</c>
is the number of elements in <paramref name="other"/>.
</remarks>
</member>
<member name="M:J2N.Collections.Generic.LinkedHashSet`1.IsProperSubsetOf(System.Collections.Generic.IEnumerable{`0})">
<summary>
Determines whether a <see cref="T:J2N.Collections.Generic.LinkedHashSet`1"/> object is a proper subset of the specified collection.
</summary>
<param name="other">The collection to compare to the current <see cref="T:J2N.Collections.Generic.LinkedHashSet`1"/> object.</param>
<returns><c>true</c> if the <see cref="T:J2N.Collections.Generic.LinkedHashSet`1"/> object is a proper subset of <paramref name="other"/>;
otherwise, <c>false</c>.</returns>
<exception cref="T:System.ArgumentNullException"><paramref name="other"/> is <c>null</c>.</exception>
<remarks>
An empty set is a proper subset of any other collection. Therefore, this method returns <c>true</c> if the
collection represented by the current <see cref="T:J2N.Collections.Generic.LinkedHashSet`1"/> object is empty unless the other
parameter is also an empty set.
<para/>
This method always returns <c>false</c> if <see cref="P:J2N.Collections.Generic.LinkedHashSet`1.Count"/> is greater than or equal to the number of
elements in <paramref name="other"/>.
<para/>
If the collection represented by other is a <see cref="T:J2N.Collections.Generic.LinkedHashSet`1"/> collection with the same equality
comparer as the current <see cref="T:J2N.Collections.Generic.LinkedHashSet`1"/> object, then this method is an O(n) operation. Otherwise,
this method is an O(<c>n</c> + <c>m</c>) operation, where <c>n</c> is <see cref="P:J2N.Collections.Generic.LinkedHashSet`1.Count"/> and <c>m</c> is the
number of elements in other.
</remarks>
</member>
<member name="M:J2N.Collections.Generic.LinkedHashSet`1.IsProperSupersetOf(System.Collections.Generic.IEnumerable{`0})">
<summary>
Determines whether a <see cref="T:J2N.Collections.Generic.LinkedHashSet`1"/> object is a proper superset of the specified collection.
</summary>
<param name="other">The collection to compare to the current <see cref="T:J2N.Collections.Generic.LinkedHashSet`1"/> object.</param>
<returns><c>true</c> if the <see cref="T:J2N.Collections.Generic.LinkedHashSet`1"/> object is a proper superset of other; otherwise, <c>false</c>.</returns>
<exception cref="T:System.ArgumentNullException"><paramref name="other"/> is <c>null</c>.</exception>
<remarks>
An empty set is a proper superset of any other collection. Therefore, this method returns <c>true</c> if the
collection represented by the other parameter is empty unless the current <see cref="T:J2N.Collections.Generic.LinkedHashSet`1"/> collection is also empty.
<para/>
This method always returns <c>false</c> if <see cref="P:J2N.Collections.Generic.LinkedHashSet`1.Count"/> is less than or equal to the number of elements in other.
<para/>
If the collection represented by other is a <see cref="T:J2N.Collections.Generic.LinkedHashSet`1"/> collection with the same equality
comparer as the current <see cref="T:J2N.Collections.Generic.LinkedHashSet`1"/> object, this method is an O(<c>n</c>) operation. Otherwise,
this method is an O(<c>n</c> + <c>m</c>) operation, where <c>n</c> is the number of elements in other and <c>m</c>
is <see cref="P:J2N.Collections.Generic.LinkedHashSet`1.Count"/>.
</remarks>
</member>
<member name="M:J2N.Collections.Generic.LinkedHashSet`1.IsSubsetOf(System.Collections.Generic.IEnumerable{`0})">
<summary>
Determines whether a <see cref="T:J2N.Collections.Generic.LinkedHashSet`1"/> object is a subset of the specified collection.
</summary>
<param name="other">The collection to compare to the current <see cref="T:J2N.Collections.Generic.LinkedHashSet`1"/> object.</param>
<returns><c>true</c> if the <see cref="T:J2N.Collections.Generic.LinkedHashSet`1"/> object is a subset of <paramref name="other"/>;
otherwise, <c>false</c>.</returns>
<exception cref="T:System.ArgumentNullException"><paramref name="other"/> is <c>null</c>.</exception>
<remarks>
An empty set is a subset of any other collection, including an empty set; therefore, this method returns
<c>true</c> if the collection represented by the current <see cref="T:J2N.Collections.Generic.LinkedHashSet`1"/> object is empty,
even if the <paramref name="other"/> parameter is an empty set.
<para/>
This method always returns <c>false</c> if <see cref="P:J2N.Collections.Generic.LinkedHashSet`1.Count"/> is greater than the number of
elements in <paramref name="other"/>.
<para/>
If the collection represented by other is a <see cref="T:J2N.Collections.Generic.LinkedHashSet`1"/> collection with the same
equality comparer as the current <see cref="T:J2N.Collections.Generic.LinkedHashSet`1"/> object, this method is an O(<c>n</c>) operation.
Otherwise, this method is an O(<c>n</c> + <c>m</c>) operation, where <c>n</c> is <see cref="P:J2N.Collections.Generic.LinkedHashSet`1.Count"/> and <c>m</c>
is the number of elements in other.
</remarks>
</member>
<member name="M:J2N.Collections.Generic.LinkedHashSet`1.IsSupersetOf(System.Collections.Generic.IEnumerable{`0})">
<summary>
Determines whether a <see cref="T:J2N.Collections.Generic.LinkedHashSet`1"/> object is a superset of the specified collection.
</summary>
<param name="other">The collection to compare to the current <see cref="T:J2N.Collections.Generic.LinkedHashSet`1"/> object.</param>
<returns><c>true</c> if the <see cref="T:J2N.Collections.Generic.LinkedHashSet`1"/> object is a superset of <paramref name="other"/>;
otherwise, <c>false</c>.</returns>
<exception cref="T:System.ArgumentNullException"><paramref name="other"/> is <c>null</c>.</exception>
<remarks>
All collections, including the empty set, are supersets of the empty set. Therefore, this method returns
<c>true</c> if the collection represented by the other parameter is empty, even if the current
<see cref="T:J2N.Collections.Generic.LinkedHashSet`1"/> object is empty.
<para/>
This method always returns <c>false</c> if <see cref="P:J2N.Collections.Generic.LinkedHashSet`1.Count"/> is less than the number of elements
in <paramref name="other"/>.
<para/>
If the collection represented by other is a <see cref="T:J2N.Collections.Generic.LinkedHashSet`1"/> collection with the same
equality comparer as the current <see cref="T:J2N.Collections.Generic.LinkedHashSet`1"/> object, this method is an O(<c>n</c>) operation.
Otherwise, this method is an O(<c>n</c> + <c>m</c>) operation, where <c>n</c> is the number of elements in other
and <c>m</c> is <see cref="P:J2N.Collections.Generic.LinkedHashSet`1.Count"/>.
</remarks>
</member>
<member name="M:J2N.Collections.Generic.LinkedHashSet`1.Overlaps(System.Collections.Generic.IEnumerable{`0})">
<summary>
Determines whether the current <see cref="T:J2N.Collections.Generic.LinkedHashSet`1"/> object and a specified collection
share common elements.
</summary>
<param name="other">The collection to compare to the current <see cref="T:J2N.Collections.Generic.LinkedHashSet`1"/> object.</param>
<returns><c>true</c> if the <see cref="T:J2N.Collections.Generic.LinkedHashSet`1"/> object and <paramref name="other"/> share
at least one common element; otherwise, <c>false</c>.</returns>
<exception cref="T:System.ArgumentNullException"><paramref name="other"/> is <c>null</c>.</exception>
<remarks>
This method is an O(<c>n</c>) operation, where <c>n</c> is the number of elements in other.
</remarks>
</member>
<member name="M:J2N.Collections.Generic.LinkedHashSet`1.Remove(`0)">
<summary>
Removes the specified element from a <see cref="T:J2N.Collections.Generic.LinkedHashSet`1"/> object.
</summary>
<param name="item">The element to remove.</param>
<returns><c>true</c> if the element is successfully found and removed;
otherwise, <c>false</c>. This method returns <c>false</c> if item is not
found in the <see cref="T:J2N.Collections.Generic.LinkedHashSet`1"/> object.</returns>
<remarks>
If the <see cref="T:J2N.Collections.Generic.LinkedHashSet`1"/> object does not contain the specified
element, the object remains unchanged. No exception is thrown.
<para/>
This method is an O(1) operation.
</remarks>
</member>
<member name="M:J2N.Collections.Generic.LinkedHashSet`1.SetEquals(System.Collections.Generic.IEnumerable{`0})">
<summary>
Determines whether a <see cref="T:J2N.Collections.Generic.LinkedHashSet`1"/> object and the specified collection contain the same elements.
</summary>
<param name="other">The collection to compare to the current <see cref="T:J2N.Collections.Generic.LinkedHashSet`1"/> object.</param>
<returns><c>true</c> if the <see cref="T:J2N.Collections.Generic.LinkedHashSet`1"/> object is equal to <paramref name="other"/>;
otherwise, <c>false</c>.</returns>
<exception cref="T:System.ArgumentNullException"><paramref name="other"/> is <c>null</c>.</exception>
<remarks>
The <see cref="M:J2N.Collections.Generic.LinkedHashSet`1.SetEquals(System.Collections.Generic.IEnumerable{`0})"/> method ignores duplicate entries and the order of elements in the
<paramref name="other"/> parameter.
<para/>
If the collection represented by other is a <see cref="T:J2N.Collections.Generic.LinkedHashSet`1"/> collection with the same equality
comparer as the current <see cref="T:J2N.Collections.Generic.LinkedHashSet`1"/> object, this method is an O(<c>n</c>) operation. Otherwise,
this method is an O(<c>n</c> + <c>m</c>) operation, where <c>n</c> is the number of elements in other and
<c>m</c> is <see cref="P:J2N.Collections.Generic.LinkedHashSet`1.Count"/>.
</remarks>
</member>
<member name="M:J2N.Collections.Generic.LinkedHashSet`1.SymmetricExceptWith(System.Collections.Generic.IEnumerable{`0})">
<summary>
Modifies the current <see cref="T:J2N.Collections.Generic.LinkedHashSet`1"/> object to contain only elements that are present either
in that object or in the specified collection, but not both.
</summary>
<param name="other">The collection to compare to the current <see cref="T:J2N.Collections.Generic.LinkedHashSet`1"/> object.</param>
<exception cref="T:System.ArgumentNullException"><paramref name="other"/> is <c>null</c>.</exception>
</member>
<member name="M:J2N.Collections.Generic.LinkedHashSet`1.UnionWith(System.Collections.Generic.IEnumerable{`0})">
<summary>
Modifies the current <see cref="T:J2N.Collections.Generic.LinkedHashSet`1"/> object to contain all elements that are present
in itself, the specified collection, or both.
</summary>
<param name="other">The collection to compare to the current <see cref="T:J2N.Collections.Generic.LinkedHashSet`1"/> object.</param>
<exception cref="T:System.ArgumentNullException"><paramref name="other"/> is <c>null</c>.</exception>
<remarks>
This method is an O(<c>n</c>) operation, where <c>n</c> is the number of elements in the
<paramref name="other"/> parameter.
</remarks>
</member>
<member name="M:J2N.Collections.Generic.LinkedHashSet`1.Equals(System.Object,System.Collections.IEqualityComparer)">
<summary>
Determines whether the specified object is structurally equal to the current set
using rules provided by the specified <paramref name="comparer"/>.
</summary>
<param name="other">The object to compare with the current object.</param>
<param name="comparer">The <see cref="T:System.Collections.IEqualityComparer"/> implementation to use to determine
whether the current object and <paramref name="other"/> are structurally equal.</param>
<returns><c>true</c> if <paramref name="other"/> is structurally equal to the current set;
otherwise, <c>false</c>.</returns>
<exception cref="T:System.ArgumentNullException">If <paramref name="comparer"/> is <c>null</c>.</exception>
</member>
<member name="M:J2N.Collections.Generic.LinkedHashSet`1.GetHashCode(System.Collections.IEqualityComparer)">
<summary>
Gets the hash code representing the current set using rules specified by the
provided <paramref name="comparer"/>.
</summary>
<param name="comparer">The <see cref="T:System.Collections.IEqualityComparer"/> implementation to use to generate
the hash code.</param>
<returns>A hash code representing the current set.</returns>
</member>
<member name="M:J2N.Collections.Generic.LinkedHashSet`1.Equals(System.Object)">
<summary>
Determines whether the specified object is structurally equal to the current set
using rules similar to those in the JDK's AbstactSet class. Two sets are considered
equal when they both contain the same objects (in any order).
</summary>
<param name="obj">The object to compare with the current object.</param>
<returns><c>true</c> if the specified object implements <see cref="T:System.Collections.Generic.ISet`1"/>
and it contains the same elements; otherwise, <c>false</c>.</returns>
<seealso cref="M:J2N.Collections.Generic.LinkedHashSet`1.Equals(System.Object,System.Collections.IEqualityComparer)"/>
</member>
<member name="M:J2N.Collections.Generic.LinkedHashSet`1.GetHashCode">
<summary>
Gets the hash code for the current list. The hash code is calculated
by taking each nested element's hash code into account.
</summary>
<returns>A hash code for the current object.</returns>
<seealso cref="M:J2N.Collections.Generic.LinkedHashSet`1.GetHashCode(System.Collections.IEqualityComparer)"/>
</member>
<member name="M:J2N.Collections.Generic.LinkedHashSet`1.ToString(System.String,System.IFormatProvider)">
<summary>
Returns a string that represents the current set using the specified
<paramref name="format"/> and <paramref name="formatProvider"/>.
</summary>
<returns>A string that represents the current set.</returns>
<exception cref="T:System.ArgumentNullException"><paramref name="format"/> is <c>null</c>.</exception>
<exception cref="T:System.FormatException">
<paramref name="format"/> is invalid.
<para/>
-or-
<para/>
The index of a format item is not zero.
</exception>
</member>
<member name="M:J2N.Collections.Generic.LinkedHashSet`1.ToString">
<summary>
Returns a string that represents the current list using
<see cref="P:J2N.Text.StringFormatter.CurrentCulture"/>.
<para/>
The presentation has a specific format. It is enclosed by square
brackets ("[]"). Elements are separated by ', ' (comma and space).
</summary>
<returns>A string that represents the current list.</returns>
</member>
<member name="M:J2N.Collections.Generic.LinkedHashSet`1.ToString(System.IFormatProvider)">
<summary>
Returns a string that represents the current list using the specified
<paramref name="formatProvider"/>.
</summary>
<returns>A string that represents the current list.</returns>
<exception cref="T:System.ArgumentNullException"><paramref name="formatProvider"/> is <c>null</c>.</exception>
</member>
<member name="M:J2N.Collections.Generic.LinkedHashSet`1.ToString(System.String)">
<summary>
Returns a string that represents the current list using the specified
<paramref name="format"/> and <see cref="P:J2N.Text.StringFormatter.CurrentCulture"/>.
<para/>
The presentation has a specific format. It is enclosed by square
brackets ("[]"). Elements are separated by ', ' (comma and space).
</summary>
<returns>A string that represents the current list.</returns>
<exception cref="T:System.ArgumentNullException"><paramref name="format"/> is <c>null</c>.</exception>
<exception cref="T:System.FormatException">
<paramref name="format"/> is invalid.
<para/>
-or-
<para/>
The index of a format item is not zero.
</exception>
</member>
<member name="T:J2N.Collections.Generic.List`1">
<summary>
Represents a strongly typed list of objects that can be accessed by index. Provides methods to search, sort, and manipulate lists.
<para/>
<see cref="T:J2N.Collections.Generic.List`1"/> is similar to <see cref="T:System.Collections.Generic.List`1"/>, but adds the following features:
<list type="bullet">
<item><description>
Overrides the <see cref="M:J2N.Collections.Generic.List`1.Equals(System.Object)"/> and <see cref="M:J2N.Collections.Generic.List`1.GetHashCode"/> methods to compare lists
using structural equality by default. Also, <see cref="T:System.Collections.IStructuralEquatable"/> is implemented so the
default behavior can be overridden.
</description></item>
<item><description>
Overrides the <see cref="M:J2N.Collections.Generic.List`1.ToString"/> methods to list the contents of the list
by default. Also, <see cref="T:System.IFormatProvider"/> is implemented so the
default behavior can be overridden.
</description></item>
</list>
<para/>
Usage Note: This class is intended to be a direct replacement for <see cref="T:System.Collections.Generic.List`1"/> in order
to provide default structural equality and formatting behavior similar to Java. Note that the <see cref="M:J2N.Collections.Generic.List`1.ToString"/>
method uses the current culture by default to behave like other components in .NET. To exactly match Java's culture-neutral behavior,
call <c>ToString(StringFormatter.InvariantCulture)</c>.
</summary>
<typeparam name="T">The type of elements in the list.</typeparam>
</member>
<member name="M:J2N.Collections.Generic.List`1.#ctor">
<summary>
Initializes a new instance of the <see cref="T:J2N.Collections.Generic.List`1"/> class that is empty
and has the default initial capacity.
</summary>
</member>
<member name="M:J2N.Collections.Generic.List`1.#ctor(System.Collections.Generic.IEnumerable{`0})">
<summary>
Initializes a new instance of the <see cref="T:J2N.Collections.Generic.List`1"/> class that contains elements
copied from the specified collection and has sufficient capacity to accommodate the
number of elements copied.
</summary>
<param name="collection">The collection whose elements are copied to the new list.</param>
<exception cref="T:System.ArgumentNullException"><paramref name="collection"/> is <c>null</c>.</exception>
</member>
<member name="M:J2N.Collections.Generic.List`1.#ctor(System.Int32)">
<summary>
Initializes a new instance of the <see cref="T:J2N.Collections.Generic.List`1"/> class that is empty and has the
specified initial capacity.
</summary>
<param name="capacity">The number of elements that the new list can initially store.</param>
<exception cref="T:System.ArgumentOutOfRangeException"><paramref name="capacity"/> is less than 0.</exception>
</member>
<member name="M:J2N.Collections.Generic.List`1.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
<summary>
Initializes a new instance of the <see cref="T:J2N.Collections.Generic.List`1"/> class that contains serialized data.
</summary>
<param name="info">The object that contains the information that is required to serialize
the <see cref="T:J2N.Collections.Generic.List`1"/> object.</param>
<param name="context">The structure that contains the source and destination of the serialized
stream associated with the <see cref="T:J2N.Collections.Generic.List`1"/> object.</param>
<remarks>
This constructor is called during deserialization to reconstitute an object that is transmitted over a stream.
</remarks>
</member>
<member name="M:J2N.Collections.Generic.List`1.GetView(System.Int32,System.Int32)">
<summary>
Returns a view of a sublist in a <see cref="T:J2N.Collections.Generic.List`1"/>.
<para/>
IMPORTANT: This method uses .NET semantics. That is, the second parameter is a count rather than an exclusive end
index as would be the case in Java's subList() method. To translate from Java, use <c>toIndex - fromIndex</c> to
obtain the value of <paramref name="count"/>.
</summary>
<param name="index">The first index in the view (inclusive).</param>
<param name="count">The number of elements to include in the view.</param>
<returns>A sublist view that contains only the values in the specified range.</returns>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="index"/> or <paramref name="count"/> is less than zero.
</exception>
<exception cref="T:System.ArgumentException">
<paramref name="index"/> and <paramref name="count"/> refer to a location outside of the list.
</exception>
<remarks>This method returns a view of the range of elements that are specified by <paramref name="index"/>
and <paramref name="count"/>. Unlike <see cref="M:J2N.Collections.Generic.List`1.GetRange(System.Int32,System.Int32)"/>, this method does not copy elements from
the <see cref="T:J2N.Collections.Generic.List`1"/>, but provides a window into the underlying <see cref="T:J2N.Collections.Generic.List`1"/> itself.
You can make changes to the view and create child views of the view. However, any structural change to a parent view
or the original <see cref="T:J2N.Collections.Generic.List`1"/> will cause all methods of the view or any enumerator based on the view
to throw an <see cref="T:System.InvalidOperationException"/>. Structural modifications are any edit that will change the <see cref="P:J2N.Collections.Generic.List`1.Count"/>
or otherwise perturb it in such a way that enumerations in progress will be invalid. A view is only valid until one of its ancestors
is structurally modified, at which point you will need to create a new view.
<para/>
This method is an O(1) operation.
</remarks>
</member>
<member name="P:J2N.Collections.Generic.List`1.Capacity">
<summary>
Gets or sets the total number of elements the internal data structure can hold without resizing.
</summary>
<exception cref="T:System.OutOfMemoryException">There is not enough memory available on the system.</exception>
<remarks>
<see cref="P:J2N.Collections.Generic.List`1.Capacity"/> is the number of elements that the <see cref="T:J2N.Collections.Generic.List`1"/> can store
before resizing is required. <see cref="P:J2N.Collections.Generic.List`1.Count"/> is the number of elements that are actually
in the <see cref="T:J2N.Collections.Generic.List`1"/>.
<para/>
<see cref="P:J2N.Collections.Generic.List`1.Capacity"/> is always greater than or equal to <see cref="P:J2N.Collections.Generic.List`1.Count"/>. If <see cref="P:J2N.Collections.Generic.List`1.Count"/>
exceeds <see cref="P:J2N.Collections.Generic.List`1.Capacity"/> while adding elements, the capacity is increased by automatically
reallocating the internal array before copying the old elements and adding the new elements.
<para/>
If the capacity is significantly larger than the count and you want to reduce the memory used by the
<see cref="T:J2N.Collections.Generic.List`1"/>, you can decrease capacity by calling the <see cref="M:J2N.Collections.Generic.List`1.TrimExcess"/> method or by setting the
<see cref="P:J2N.Collections.Generic.List`1.Capacity"/> property explicitly to a lower value. When the value of <see cref="P:J2N.Collections.Generic.List`1.Capacity"/>
is set explicitly, the internal array is also reallocated to accommodate the specified capacity,
and all the elements are copied.
<para/>
Retrieving the value of this property is an O(1) operation; setting the property is an O(<c>n</c>)
operation, where <c>n</c> is the new capacity.
</remarks>
</member>
<member name="P:J2N.Collections.Generic.List`1.Count">
<summary>
Gets the number of elements contained in the <see cref="T:J2N.Collections.Generic.List`1"/>.
</summary>
<remarks>
<see cref="P:J2N.Collections.Generic.List`1.Capacity"/> is the number of elements that the <see cref="T:J2N.Collections.Generic.List`1"/> can store
before resizing is required. <see cref="P:J2N.Collections.Generic.List`1.Count"/> is the number of elements that are actually
in the <see cref="T:J2N.Collections.Generic.List`1"/>.
<para/>
<see cref="P:J2N.Collections.Generic.List`1.Capacity"/> is always greater than or equal to <see cref="P:J2N.Collections.Generic.List`1.Count"/>. If <see cref="P:J2N.Collections.Generic.List`1.Count"/>
exceeds <see cref="P:J2N.Collections.Generic.List`1.Capacity"/> while adding elements, the capacity is increased by automatically
reallocating the internal array before copying the old elements and adding the new elements.
<para/>
Retrieving the value of this property is an O(1) operation.
</remarks>
</member>
<member name="P:J2N.Collections.Generic.List`1.Item(System.Int32)">
<summary>
Gets or sets the element at the specified index.
</summary>
<param name="index">The zero-based index of the element to get or set.</param>
<returns>The element at the specified index.</returns>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="index"/> is less than 0.
<para/>
-or-
<para/>
<paramref name="index"/> is equal to or greater than <see cref="P:J2N.Collections.Generic.List`1.Count"/>.
</exception>
<remarks>
<see cref="T:J2N.Collections.Generic.List`1"/> accepts null as a valid value for reference types and
allows duplicate elements.
<para/>
This property provides the ability to access a specific element in the collection
by using the following syntax: <c>myCollection[index]</c>.
<para/>
Retrieving the value of this property is an O(1) operation; setting the property
is also an O(1) operation.
</remarks>
</member>
<member name="M:J2N.Collections.Generic.List`1.Add(`0)">
<summary>
Adds an object to the end of the <see cref="T:J2N.Collections.Generic.List`1"/>.
</summary>
<param name="item">The object to be added to the end of the <see cref="T:J2N.Collections.Generic.List`1"/>.
The value can be <c>null</c> for reference types.</param>
<remarks>
<see cref="T:J2N.Collections.Generic.List`1"/> accepts <c>null</c> as a valid value for reference types and allows duplicate elements.
<para/>
If <see cref="P:J2N.Collections.Generic.List`1.Count"/> already equals <see cref="P:J2N.Collections.Generic.List`1.Capacity"/>, the capacity of the <see cref="T:J2N.Collections.Generic.List`1"/>
is increased by automatically reallocating the internal array, and the existing elements are copied
to the new array before the new element is added.
<para/>
If <see cref="P:J2N.Collections.Generic.List`1.Count"/> is less than <see cref="P:J2N.Collections.Generic.List`1.Capacity"/>, this method is an O(1) operation. If the
capacity needs to be increased to accommodate the new element, this method becomes an O(<c>n</c>)
operation, where <c>n</c> is <see cref="P:J2N.Collections.Generic.List`1.Count"/>.
</remarks>
</member>
<member name="M:J2N.Collections.Generic.List`1.AddRange(System.Collections.Generic.IEnumerable{`0})">
<summary>
Adds the elements of the specified collection to the end of the <see cref="T:J2N.Collections.Generic.List`1"/>.
</summary>
<param name="collection">The collection whose elements should be added to the end of the
<see cref="T:J2N.Collections.Generic.List`1"/>. The collection itself cannot be <c>null</c>, but it can contain elements
that are <c>null</c>, if type <typeparamref name="T"/> is a reference type.</param>
<exception cref="T:System.ArgumentNullException"><paramref name="collection"/> is <c>null</c>.</exception>
<remarks>
The order of the elements in the collection is preserved in the <see cref="T:J2N.Collections.Generic.List`1"/>.
<para/>
If the new <see cref="P:J2N.Collections.Generic.List`1.Count"/> (the current <see cref="P:J2N.Collections.Generic.List`1.Count"/> plus the size of the collection)
will be greater than <see cref="P:J2N.Collections.Generic.List`1.Capacity"/>, the capacity of the <see cref="T:J2N.Collections.Generic.List`1"/> is increased
by automatically reallocating the internal array to accommodate the new elements, and the existing
elements are copied to the new array before the new elements are added.
<para/>
If the <see cref="T:J2N.Collections.Generic.List`1"/> can accommodate the new elements without increasing the <see cref="P:J2N.Collections.Generic.List`1.Capacity"/>,
this method is an O(<c>n</c>) operation, where <c>n</c> is the number of elements to be added. If the capacity
needs to be increased to accommodate the new elements, this method becomes an O(<c>n</c> + <c>m</c>) operation,
where <c>n</c> is the number of elements to be added and <c>m</c> is <see cref="P:J2N.Collections.Generic.List`1.Count"/>.
</remarks>
</member>
<member name="M:J2N.Collections.Generic.List`1.AsReadOnly">
<summary>
Returns a read-only <see cref="T:J2N.Collections.ObjectModel.ReadOnlyList`1"/> wrapper for the current collection.
</summary>
<returns>An object that acts as a read-only wrapper around the current <see cref="T:J2N.Collections.Generic.List`1"/>.</returns>
<remarks>
To prevent any modifications to the <see cref="T:J2N.Collections.Generic.List`1"/> object, expose it only through this wrapper.
A <see cref="T:J2N.Collections.ObjectModel.ReadOnlyList`1"/> object does not expose methods that modify the collection. However,
if changes are made to the underlying <see cref="T:J2N.Collections.Generic.List`1"/> object, the read-only collection reflects those changes.
<para/>
This method is an O(1) operation.
</remarks>
</member>
<member name="M:J2N.Collections.Generic.List`1.BinarySearch(System.Int32,System.Int32,`0,System.Collections.Generic.IComparer{`0})">
<summary>
Searches a range of elements in the sorted <see cref="T:J2N.Collections.Generic.List`1"/> for an element using
the specified comparer and returns the zero-based index of the element.
</summary>
<param name="index">The zero-based starting index of the range to search.</param>
<param name="count">The length of the range to search.</param>
<param name="item">The object to locate. The value can be <c>null</c> for reference types.</param>
<param name="comparer">The <see cref="T:System.Collections.Generic.IComparer`1"/> implementation to use when comparing
elements, or <c>null</c> to use J2N's default comparer <see cref="P:J2N.Collections.Generic.Comparer`1.Default"/>.</param>
<returns>The zero-based index of item in the sorted <see cref="T:J2N.Collections.Generic.List`1"/>, if item is found;
otherwise, a negative number that is the bitwise complement of the index of the next element
that is larger than item or, if there is no larger element, the bitwise complement of <see cref="P:J2N.Collections.Generic.List`1.Count"/>.</returns>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="index"/> is less than 0.
<para/>
-or-
<para/>
<paramref name="count"/> is less than 0.
</exception>
<exception cref="T:System.ArgumentException"><paramref name="index"/> and <paramref name="count"/> do not denote a valid
range in the <see cref="T:J2N.Collections.Generic.List`1"/>.</exception>
<exception cref="T:System.InvalidOperationException"><paramref name="comparer"/> is <c>null</c>, and J2N's default comparer
<see cref="P:J2N.Collections.Generic.Comparer`1.Default"/> cannot find an implementation of the <see cref="T:System.IComparable`1"/> generic interface
or the <see cref="T:System.IComparable"/> interface for type <typeparamref name="T"/>.</exception>
<remarks>
The comparer customizes how the elements are compared. For example, you can use a <see cref="T:System.Collections.CaseInsensitiveComparer"/>
instance as the comparer to perform case-insensitive string searches.
<para/>
If <paramref name="comparer"/> is provided, the elements of the <see cref="T:J2N.Collections.Generic.List`1"/> are compared to the specified value using the
specified <see cref="T:System.Collections.Generic.IComparer`1"/> implementation.
<para/>
If <paramref name="comparer"/> is <c>null</c>, J2N's default comparer <see cref="P:J2N.Collections.Generic.Comparer`1.Default"/> checks whether type <typeparamref name="T"/>
implements the <see cref="T:System.IComparable`1"/> generic interface and uses that implementation, if available. If not,
<see cref="P:J2N.Collections.Generic.Comparer`1.Default"/> checks whether type <typeparamref name="T"/> implements the <see cref="T:System.IComparable"/> interface.
If type <typeparamref name="T"/> does not implement either interface, <see cref="P:J2N.Collections.Generic.Comparer`1.Default"/> throws <see cref="T:System.InvalidOperationException"/>.
<para/>
The <see cref="T:J2N.Collections.Generic.List`1"/> must already be sorted according to the comparer implementation; otherwise, the result is incorrect.
<para/>
Comparing <c>null</c> with any reference type is allowed and does not generate an exception when using the <see cref="T:System.IComparable`1"/>
generic interface. When sorting, <c>null</c> is considered to be less than any other object.
<para/>
If the <see cref="T:J2N.Collections.Generic.List`1"/> contains more than one element with the same value, the method returns only one of the occurrences,
and it might return any one of the occurrences, not necessarily the first one.
<para/>
If the <see cref="T:J2N.Collections.Generic.List`1"/> does not contain the specified value, the method returns a negative integer. You can apply
the bitwise complement operation (~) to this negative integer to get the index of the first element that is larger than
the search value. When inserting the value into the <see cref="T:J2N.Collections.Generic.List`1"/>, this index should be used as the insertion
point to maintain the sort order.
<para/>
This method is an O(log <c>n</c>) operation, where <c>n</c> is the number of elements in the range.
</remarks>
</member>
<member name="M:J2N.Collections.Generic.List`1.BinarySearch(`0)">
<summary>
Searches the entire sorted <see cref="T:J2N.Collections.Generic.List`1"/> for an element using the default comparer and returns the
zero-based index of the element.
</summary>
<param name="item">The object to locate. The value can be <c>null</c> for reference types.</param>
<returns>The zero-based index of item in the sorted <see cref="T:J2N.Collections.Generic.List`1"/>, if item is found; otherwise,
a negative number that is the bitwise complement of the index of the next element that is larger than
item or, if there is no larger element, the bitwise complement of <see cref="P:J2N.Collections.Generic.List`1.Count"/>.</returns>
<exception cref="T:System.InvalidOperationException">The default comparer <see cref="P:J2N.Collections.Generic.Comparer`1.Default"/>
cannot find an implementation of the <see cref="T:System.IComparable`1"/> generic interface or the <see cref="T:System.IComparable"/>
interface for type <typeparamref name="T"/>.</exception>
<remarks>
This method uses J2N's default comparer <see cref="P:J2N.Collections.Generic.Comparer`1.Default"/> for type <typeparamref name="T"/> to determine
the order of list elements. The <see cref="P:J2N.Collections.Generic.Comparer`1.Default"/> property checks whether type T implements the <see cref="T:System.IComparable`1"/>
generic interface and uses that implementation, if available. If not, <see cref="P:J2N.Collections.Generic.Comparer`1.Default"/> checks whether type
<typeparamref name="T"/> implements the <see cref="T:System.IComparable"/> interface. If type <typeparamref name="T"/> does not implement
either interface, <see cref="P:J2N.Collections.Generic.Comparer`1.Default"/> throws an <see cref="T:System.InvalidOperationException"/>.
<para/>
The <see cref="T:J2N.Collections.Generic.List`1"/> must already be sorted according to the comparer implementation; otherwise, the result is incorrect.
<para/>
Comparing <c>null</c> with any reference type is allowed and does not generate an exception when using the <see cref="T:System.IComparable`1"/>
generic interface. When sorting, <c>null</c> is considered to be less than any other object.
<para/>
If the <see cref="T:J2N.Collections.Generic.List`1"/> contains more than one element with the same value, the method returns only one of the occurrences,
and it might return any one of the occurrences, not necessarily the first one.
<para/>
If the <see cref="T:J2N.Collections.Generic.List`1"/> does not contain the specified value, the method returns a negative integer. You can apply the
bitwise complement operation (~) to this negative integer to get the index of the first element that is larger than the
search value. When inserting the value into the <see cref="T:J2N.Collections.Generic.List`1"/>, this index should be used as the insertion point
to maintain the sort order.
<para/>
This method is an O(log <c>n</c>) operation, where <c>n</c> is the number of elements in the range.
</remarks>
</member>
<member name="M:J2N.Collections.Generic.List`1.BinarySearch(`0,System.Collections.Generic.IComparer{`0})">
<summary>
Searches the entire sorted <see cref="T:J2N.Collections.Generic.List`1"/> for an element using the specified comparer and
returns the zero-based index of the element.
</summary>
<param name="item">The object to locate. The value can be <c>null</c> for reference types.</param>
<param name="comparer">
The <see cref="T:System.Collections.Generic.IComparer`1"/> implementation to use when comparing elements.
<para/>
-or-
<para/>
<c>null</c> to use the default comparer <see cref="P:J2N.Collections.Generic.Comparer`1.Default"/>.
</param>
<returns>The zero-based index of item in the sorted <see cref="T:J2N.Collections.Generic.List`1"/>, if item is found; otherwise,
a negative number that is the bitwise complement of the index of the next element that is larger than
item or, if there is no larger element, the bitwise complement of <see cref="P:J2N.Collections.Generic.List`1.Count"/>.</returns>
<exception cref="T:System.InvalidOperationException"><paramref name="comparer"/> is <c>null</c>, and the default
comparer <see cref="P:J2N.Collections.Generic.Comparer`1.Default"/> cannot find an implementation of the <see cref="T:System.IComparable`1"/>
generic interface or the <see cref="T:System.IComparable"/> interface for type <typeparamref name="T"/>.</exception>
<remarks>
The comparer customizes how the elements are compared. For example, you can use a <see cref="T:System.Collections.CaseInsensitiveComparer"/>
instance as the comparer to perform case-insensitive string searches.
<para/>
If <paramref name="comparer"/> is provided, the elements of the <see cref="T:J2N.Collections.Generic.List`1"/> are compared to the specified value using the
specified <see cref="T:System.Collections.Generic.IComparer`1"/> implementation.
<para/>
If <paramref name="comparer"/> is <c>null</c>, J2N's default comparer <see cref="P:J2N.Collections.Generic.Comparer`1.Default"/> checks whether type <typeparamref name="T"/>
implements the <see cref="T:System.IComparable`1"/> generic interface and uses that implementation, if available. If not,
<see cref="P:J2N.Collections.Generic.Comparer`1.Default"/> checks whether type <typeparamref name="T"/> implements the <see cref="T:System.IComparable"/> interface.
If type <typeparamref name="T"/> does not implement either interface, <see cref="P:J2N.Collections.Generic.Comparer`1.Default"/> throws <see cref="T:System.InvalidOperationException"/>.
<para/>
The <see cref="T:J2N.Collections.Generic.List`1"/> must already be sorted according to the comparer implementation; otherwise, the result is incorrect.
<para/>
Comparing <c>null</c> with any reference type is allowed and does not generate an exception when using the <see cref="T:System.IComparable`1"/>
generic interface. When sorting, <c>null</c> is considered to be less than any other object.
<para/>
If the <see cref="T:J2N.Collections.Generic.List`1"/> contains more than one element with the same value, the method returns only one of the occurrences,
and it might return any one of the occurrences, not necessarily the first one.
<para/>
If the <see cref="T:J2N.Collections.Generic.List`1"/> does not contain the specified value, the method returns a negative integer. You can apply
the bitwise complement operation (~) to this negative integer to get the index of the first element that is larger than
the search value. When inserting the value into the <see cref="T:J2N.Collections.Generic.List`1"/>, this index should be used as the insertion
point to maintain the sort order.
<para/>
This method is an O(log <c>n</c>) operation, where <c>n</c> is the number of elements in the range.
</remarks>
</member>
<member name="M:J2N.Collections.Generic.List`1.Clear">
<summary>
Removes all elements from the <see cref="T:J2N.Collections.Generic.List`1"/>.
</summary>
<remarks>
<see cref="P:J2N.Collections.Generic.List`1.Count"/> is set to 0, and references to other objects from elements
of the collection are also released.
<para/>
<see cref="P:J2N.Collections.Generic.List`1.Capacity"/> remains unchanged. To reset the capacity of the <see cref="T:J2N.Collections.Generic.List`1"/>, call
the <see cref="M:J2N.Collections.Generic.List`1.TrimExcess"/> method or set the <see cref="P:J2N.Collections.Generic.List`1.Capacity"/> property directly. Decreasing
the capacity reallocates memory and copies all the elements in the <see cref="T:J2N.Collections.Generic.List`1"/>. Trimming an
empty <see cref="T:J2N.Collections.Generic.List`1"/> sets the capacity of the <see cref="T:J2N.Collections.Generic.List`1"/> to the default capacity.
<para/>
This method is an O(<c>n</c>) operation, where <c>n</c> is <see cref="P:J2N.Collections.Generic.List`1.Count"/>.
</remarks>
</member>
<member name="M:J2N.Collections.Generic.List`1.Contains(`0)">
<summary>
Determines whether an element is in the <see cref="T:J2N.Collections.Generic.List`1"/>.
</summary>
<param name="item">The object to locate in the <see cref="T:J2N.Collections.Generic.List`1"/>. The value can be <c>null</c> for reference types.</param>
<returns><c>true</c> if item is found in the <see cref="T:J2N.Collections.Generic.List`1"/>; otherwise, <c>false</c>.</returns>
<remarks>
This method determines equality by using the default equality comparer, as defined by the object's implementation of
the <see cref="M:System.IEquatable`1.Equals(`0)"/> method for <typeparamref name="T"/> (the type of values in the list).
<para/>
This method performs a linear search; therefore, this method is an O(<c>n</c>) operation, where <c>n</c> is <see cref="P:J2N.Collections.Generic.List`1.Count"/>.
</remarks>
</member>
<member name="M:J2N.Collections.Generic.List`1.ConvertAll``1(System.Converter{`0,``0})">
<summary>
Converts the elements in the current <see cref="T:J2N.Collections.Generic.List`1"/> to another type, and
returns a list containing the converted elements.
</summary>
<typeparam name="TOutput">The type of the elements of the target array.</typeparam>
<param name="converter">A <see cref="T:System.Converter`2"/> delegate that
converts each element from one type to another type.</param>
<returns>A <see cref="T:J2N.Collections.Generic.List`1"/> of the target type containing the converted
elements from the current <see cref="T:J2N.Collections.Generic.List`1"/>.</returns>
<exception cref="T:System.ArgumentNullException"><paramref name="converter"/> is <c>null</c>.</exception>
<remarks>
The <see cref="T:System.Converter`2"/> is a delegate to a method that converts an object
to the target type. The elements of the current <see cref="T:J2N.Collections.Generic.List`1"/> are individually passed
to the <see cref="T:System.Converter`2"/> delegate, and the converted elements are saved
in the new <see cref="T:J2N.Collections.Generic.List`1"/>.
<para/>
The current <see cref="T:J2N.Collections.Generic.List`1"/> remains unchanged.
<para/>
This method is an O(<c>n</c>) operation, where <c>n</c> is <see cref="P:J2N.Collections.Generic.List`1.Count"/>.
</remarks>
</member>
<member name="M:J2N.Collections.Generic.List`1.CopyTo(`0[])">
<summary>
Copies the entire <see cref="T:J2N.Collections.Generic.List`1"/> to a compatible one-dimensional array, starting
at the beginning of the target array.
</summary>
<param name="array">The one-dimensional <see cref="T:System.Array"/> that is the destination of the
elements copied from <see cref="T:J2N.Collections.Generic.List`1"/>. The <see cref="T:System.Array"/> must have zero-based indexing.</param>
<exception cref="T:System.ArgumentNullException"><paramref name="array"/> is <c>null</c>.</exception>
<exception cref="T:System.ArgumentException">The number of elements in the source <see cref="T:J2N.Collections.Generic.List`1"/> is greater
than the number of elements that the destination <paramref name="array"/> can contain.</exception>
<remarks>
This method uses <see cref="M:System.Array.Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)"/> to copy the elements.
<para/>
The elements are copied to the <see cref="T:System.Array"/> in the same order in which the enumerator iterates
through the <see cref="T:J2N.Collections.Generic.List`1"/>.
<para/>
This method is an O(<c>n</c>) operation, where <c>n</c> is <see cref="P:J2N.Collections.Generic.List`1.Count"/>.
</remarks>
</member>
<member name="M:J2N.Collections.Generic.List`1.CopyTo(System.Int32,`0[],System.Int32,System.Int32)">
<summary>
Copies a range of elements from the <see cref="T:J2N.Collections.Generic.List`1"/> to a compatible
one-dimensional array, starting at the specified index of the target array.
</summary>
<param name="index">The zero-based index in the source <see cref="T:J2N.Collections.Generic.List`1"/>
at which copying begins.</param>
<param name="array">The one-dimensional <see cref="T:System.Array"/> that is the destination of the
elements copied from <see cref="T:J2N.Collections.Generic.List`1"/>. The <see cref="T:System.Array"/> must have zero-based indexing.</param>
<param name="arrayIndex">The zero-based index in <paramref name="array"/> at which copying begins.</param>
<param name="count">The number of elements to copy.</param>
<exception cref="T:System.ArgumentNullException"><paramref name="array"/> is <c>null</c>.</exception>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="index"/> is less than 0.
<para/>
-or-
<para/>
<paramref name="arrayIndex"/> is less than 0.
<para/>
-or-
<para/>
<paramref name="count"/> is less than 0.
</exception>
<exception cref="T:System.ArgumentException">
<paramref name="index"/> is equal to or greater than the <see cref="P:J2N.Collections.Generic.List`1.Count"/> of the
source <see cref="T:J2N.Collections.Generic.List`1"/>.
<para/>
-or-
<para/>
The number of elements in the source <see cref="T:J2N.Collections.Generic.List`1"/> is greater
than the available space from <paramref name="arrayIndex"/> to the end of the destination <paramref name="array"/>.
</exception>
<remarks>
This method uses <see cref="M:System.Array.Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)"/> to copy the elements.
<para/>
The elements are copied to the <see cref="T:System.Array"/> in the same order in which the enumerator iterates
through the <see cref="T:J2N.Collections.Generic.List`1"/>.
<para/>
This method is an O(<c>n</c>) operation, where <c>n</c> is <paramref name="count"/>.
</remarks>
</member>
<member name="M:J2N.Collections.Generic.List`1.CopyTo(`0[],System.Int32)">
<summary>
Copies the entire <see cref="T:J2N.Collections.Generic.List`1"/> to a compatible one-dimensional array, starting at the
specified index of the target array.
</summary>
<param name="array">The one-dimensional <see cref="T:System.Array"/> that is the destination of the
elements copied from <see cref="T:J2N.Collections.Generic.List`1"/>. The <see cref="T:System.Array"/> must have zero-based indexing.</param>
<param name="arrayIndex">The zero-based index in <paramref name="array"/> at which copying begins.</param>
<exception cref="T:System.ArgumentNullException"><paramref name="array"/> is <c>null</c>.</exception>
<exception cref="T:System.ArgumentOutOfRangeException"><paramref name="arrayIndex"/> is less than 0.</exception>
<exception cref="T:System.ArgumentException">The number of elements in the source <see cref="T:J2N.Collections.Generic.List`1"/> is greater
than the available space from <paramref name="arrayIndex"/> to the end of the destination <paramref name="array"/>.</exception>
<remarks>
This method uses <see cref="M:System.Array.Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)"/> to copy the elements.
<para/>
The elements are copied to the <see cref="T:System.Array"/> in the same order in which the enumerator iterates
through the <see cref="T:J2N.Collections.Generic.List`1"/>.
<para/>
This method is an O(<c>n</c>) operation, where <c>n</c> is <see cref="P:J2N.Collections.Generic.List`1.Count"/>.
</remarks>
</member>
<member name="M:J2N.Collections.Generic.List`1.EnsureCapacity(System.Int32)">
<summary>
Ensures that the capacity of this list is at least the specified <paramref name="capacity"/>.
If the current capacity of the list is less than specified <paramref name="capacity"/>,
the capacity is increased by continuously twice current capacity until it is at least the specified <paramref name="capacity"/>.
</summary>
<param name="capacity">The minimum capacity to ensure.</param>
<returns>The new capacity of this list.</returns>
</member>
<member name="M:J2N.Collections.Generic.List`1.Grow(System.Int32)">
<summary>
Increase the capacity of this list to at least the specified <paramref name="capacity"/>.
</summary>
<param name="capacity">The minimum capacity to ensure.</param>
</member>
<member name="M:J2N.Collections.Generic.List`1.Exists(System.Predicate{`0})">
<summary>
Determines whether the <see cref="T:J2N.Collections.Generic.List`1"/> contains elements that match the conditions
defined by the specified predicate.
</summary>
<param name="match">The <see cref="T:System.Predicate`1"/> delegate that defines the conditions
of the element to search for.</param>
<returns><c>true</c> if the <see cref="T:J2N.Collections.Generic.List`1"/> contains one or more elements that match
the conditions defined by the specified predicate; otherwise, <c>false</c>.</returns>
<exception cref="T:System.ArgumentNullException"><paramref name="match"/> is <c>null</c>.</exception>
<remarks>
The <see cref="T:System.Predicate`1"/> is a delegate to a method that returns <c>true</c> if the object passed to it matches the
conditions defined in the delegate. The elements of the current <see cref="T:J2N.Collections.Generic.List`1"/> are individually
passed to the <see cref="T:System.Predicate`1"/> delegate, moving backward in the <see cref="T:J2N.Collections.Generic.List`1"/>, starting with the
last element and ending with the first element. Processing is stopped when a match is found.
<para/>
This method performs a linear search; therefore, this method is an O(<c>n</c>) operation, where <c>n</c> is
<see cref="P:J2N.Collections.Generic.List`1.Count"/>.
</remarks>
</member>
<member name="M:J2N.Collections.Generic.List`1.Find(System.Predicate{`0})">
<summary>
Searches for an element that matches the conditions defined by the specified predicate,
and returns the first occurrence within the entire <see cref="T:J2N.Collections.Generic.List`1"/>.
</summary>
<param name="match">The <see cref="T:System.Predicate`1"/> delegate that defines the conditions
of the element to search for.</param>
<returns>The first element that matches the conditions defined by the specified predicate,
if found; otherwise, the default value for type <typeparamref name="T"/>.</returns>
<exception cref="T:System.ArgumentNullException"><paramref name="match"/> is <c>null</c>.</exception>
<remarks>
The <see cref="T:System.Predicate`1"/> is a delegate to a method that returns <c>true</c> if the object passed to it matches the
conditions defined in the delegate. The elements of the current <see cref="T:J2N.Collections.Generic.List`1"/> are individually
passed to the <see cref="T:System.Predicate`1"/> delegate, moving backward in the <see cref="T:J2N.Collections.Generic.List`1"/>, starting with the
last element and ending with the first element. Processing is stopped when a match is found.
<para/>
IMPORTANT: When searching a list containing value types, make sure the default value for the type
does not satisfy the search predicate. Otherwise, there is no way to distinguish between a default
value indicating that no match was found and a list element that happens to have the default value
for the type. If the default value satisfies the search predicate, use the
<see cref="M:J2N.Collections.Generic.List`1.FindIndex(System.Predicate{`0})"/> method instead.
<para/>
This method performs a linear search; therefore, this method is an O(<c>n</c>) operation, where <c>n</c> is
<see cref="P:J2N.Collections.Generic.List`1.Count"/>.
</remarks>
</member>
<member name="M:J2N.Collections.Generic.List`1.FindAll(System.Predicate{`0})">
<summary>
Retrieves all the elements that match the conditions defined by the specified predicate.
</summary>
<param name="match">The <see cref="T:System.Predicate`1"/> delegate that defines the conditions
of the elements to search for.</param>
<returns>A <see cref="T:J2N.Collections.Generic.List`1"/> containing all the elements that match the conditions
defined by the specified predicate, if found; otherwise, an empty <see cref="T:J2N.Collections.Generic.List`1"/>.</returns>
<exception cref="T:System.ArgumentNullException"><paramref name="match"/> is <c>null</c>.</exception>
<remarks>
The <see cref="T:System.Predicate`1"/> is a delegate to a method that returns <c>true</c> if the object passed
to it matches the conditions defined in the delegate. The elements of the current <see cref="T:J2N.Collections.Generic.List`1"/>
are individually passed to the <see cref="T:System.Predicate`1"/> delegate, and the elements that match
the conditions are saved in the returned <see cref="T:J2N.Collections.Generic.List`1"/>.
<para/>
This method performs a linear search; therefore, this method is an O(<c>n</c>) operation, where
<c>n</c> is <see cref="P:J2N.Collections.Generic.List`1.Count"/>.
</remarks>
</member>
<member name="M:J2N.Collections.Generic.List`1.FindIndex(System.Predicate{`0})">
<summary>
Searches for an element that matches the conditions defined by the specified predicate,
and returns the zero-based index of the first occurrence within the entire <see cref="T:J2N.Collections.Generic.List`1"/>.
</summary>
<param name="match">The <see cref="T:System.Predicate`1"/> delegate that defines the conditions
of the element to search for.</param>
<returns>The zero-based index of the first occurrence of an element that matches the
conditions defined by <paramref name="match"/>, if found; otherwise, -1.</returns>
<exception cref="T:System.ArgumentNullException"><paramref name="match"/> is <c>null</c>.</exception>
<remarks>
The <see cref="T:J2N.Collections.Generic.List`1"/> is searched forward starting at the first element and ending at
the last element.
<para/>
The <see cref="T:System.Predicate`1"/> is a delegate to a method that returns <c>true</c> if the object passed to it matches the
conditions defined in the delegate. The elements of the current <see cref="T:J2N.Collections.Generic.List`1"/> are individually
passed to the <see cref="T:System.Predicate`1"/> delegate. The delegate has the signature:
<code>
public bool methodName(T obj)
</code>
<para/>
This method performs a linear search; therefore, this method is an O(<c>n</c>) operation, where <c>n</c> is
<see cref="P:J2N.Collections.Generic.List`1.Count"/>.
</remarks>
</member>
<member name="M:J2N.Collections.Generic.List`1.FindIndex(System.Int32,System.Predicate{`0})">
<summary>
Searches for an element that matches the conditions defined by the specified predicate,
and returns the zero-based index of the first occurrence within the range of elements in
the <see cref="T:J2N.Collections.Generic.List`1"/> that extends from the specified index to the last element.
</summary>
<param name="startIndex">The zero-based starting index of the search.</param>
<param name="match">The <see cref="T:System.Predicate`1"/> delegate that defines the conditions
of the element to search for.</param>
<returns>The zero-based index of the first occurrence of an element that matches the
conditions defined by <paramref name="match"/>, if found; otherwise, -1.</returns>
<exception cref="T:System.ArgumentNullException"><paramref name="match"/> is <c>null</c>.</exception>
<exception cref="T:System.ArgumentOutOfRangeException"><paramref name="startIndex"/> is outside the
range of valid indexes for the <see cref="T:J2N.Collections.Generic.List`1"/>.</exception>
<remarks>
The <see cref="T:J2N.Collections.Generic.List`1"/> is searched forward starting at <paramref name="startIndex"/> and ending at
the last element.
<para/>
The <see cref="T:System.Predicate`1"/> is a delegate to a method that returns <c>true</c> if the object passed to it matches the
conditions defined in the delegate. The elements of the current <see cref="T:J2N.Collections.Generic.List`1"/> are individually
passed to the <see cref="T:System.Predicate`1"/> delegate. The delegate has the signature:
<code>
public bool methodName(T obj)
</code>
<para/>
This method performs a linear search; therefore, this method is an O(<c>n</c>) operation, where <c>n</c> is
the number of elements from <paramref name="startIndex"/> to the end of the <see cref="T:J2N.Collections.Generic.List`1"/>.
</remarks>
</member>
<member name="M:J2N.Collections.Generic.List`1.FindIndex(System.Int32,System.Int32,System.Predicate{`0})">
<summary>
Searches for an element that matches the conditions defined by the specified predicate,
and returns the zero-based index of the first occurrence within the range of elements
in the <see cref="T:J2N.Collections.Generic.List`1"/> that starts at the specified index and contains the specified
number of elements.
</summary>
<param name="startIndex">The zero-based starting index of the search.</param>
<param name="count">The number of elements in the section to search.</param>
<param name="match">The <see cref="T:System.Predicate`1"/> delegate that defines the conditions
of the element to search for.</param>
<returns>The zero-based index of the first occurrence of an element that matches the
conditions defined by <paramref name="match"/>, if found; otherwise, -1.</returns>
<exception cref="T:System.ArgumentNullException"><paramref name="match"/> is <c>null</c>.</exception>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="startIndex"/> is outside the range of valid indexes for the <see cref="T:J2N.Collections.Generic.List`1"/>.
<para/>
-or-
<para/>
<paramref name="count"/> is less than 0.
<para/>
-or-
<para/>
<paramref name="startIndex"/> and <paramref name="count"/> do not specify a valid section in the <see cref="T:J2N.Collections.Generic.List`1"/>.
</exception>
<remarks>
The <see cref="T:J2N.Collections.Generic.List`1"/> is searched forward starting at <paramref name="startIndex"/> and ending at
<paramref name="startIndex"/> plus <paramref name="count"/> minus 1, if <paramref name="count"/> is greater
than 0.
<para/>
The <see cref="T:System.Predicate`1"/> is a delegate to a method that returns <c>true</c> if the object passed to it matches the
conditions defined in the delegate. The elements of the current <see cref="T:J2N.Collections.Generic.List`1"/> are individually
passed to the <see cref="T:System.Predicate`1"/> delegate. The delegate has the signature:
<code>
public bool methodName(T obj)
</code>
<para/>
This method performs a linear search; therefore, this method is an O(<c>n</c>) operation, where <c>n</c> is
<paramref name="count"/>.
</remarks>
</member>
<member name="M:J2N.Collections.Generic.List`1.FindLast(System.Predicate{`0})">
<summary>
Searches for an element that matches the conditions defined by the specified predicate,
and returns the last occurrence within the entire <see cref="T:J2N.Collections.Generic.List`1"/>.
</summary>
<param name="match">The <see cref="T:System.Predicate`1"/> delegate that defines the conditions
of the element to search for.</param>
<returns>The last element that matches the conditions defined by the specified predicate,
if found; otherwise, the default value for type <typeparamref name="T"/>.</returns>
<exception cref="T:System.ArgumentNullException"><paramref name="match"/> is <c>null</c>.</exception>
<remarks>
The <see cref="T:System.Predicate`1"/> is a delegate to a method that returns <c>true</c> if the object passed to it matches the
conditions defined in the delegate. The elements of the current <see cref="T:J2N.Collections.Generic.List`1"/> are individually
passed to the <see cref="T:System.Predicate`1"/> delegate, moving backward in the <see cref="T:J2N.Collections.Generic.List`1"/>, starting with the
last element and ending with the first element. Processing is stopped when a match is found.
<para/>
IMPORTANT: When searching a list containing value types, make sure the default value for the type
does not satisfy the search predicate. Otherwise, there is no way to distinguish between a default
value indicating that no match was found and a list element that happens to have the default value
for the type. If the default value satisfies the search predicate, use the
<see cref="M:J2N.Collections.Generic.List`1.FindLastIndex(System.Predicate{`0})"/> method instead.
<para/>
This method performs a linear search; therefore, this method is an O(<c>n</c>) operation, where <c>n</c> is
<see cref="P:J2N.Collections.Generic.List`1.Count"/>.
</remarks>
</member>
<member name="M:J2N.Collections.Generic.List`1.FindLastIndex(System.Predicate{`0})">
<summary>
Searches for an element that matches the conditions defined by the specified predicate,
and returns the zero-based index of the last occurrence within the entire <see cref="T:J2N.Collections.Generic.List`1"/>.
</summary>
<param name="match">The <see cref="T:System.Predicate`1"/> delegate that defines the conditions
of the element to search for.</param>
<returns>The zero-based index of the last occurrence of an element that matches the
conditions defined by <paramref name="match"/>, if found; otherwise, -1.</returns>
<exception cref="T:System.ArgumentNullException"><paramref name="match"/> is <c>null</c>.</exception>
<remarks>
The <see cref="T:J2N.Collections.Generic.List`1"/> is searched backward starting at the last element and ending at
the first element.
<para/>
The <see cref="T:System.Predicate`1"/> is a delegate to a method that returns <c>true</c> if the object passed to it matches the
conditions defined in the delegate. The elements of the current <see cref="T:J2N.Collections.Generic.List`1"/> are individually
passed to the <see cref="T:System.Predicate`1"/> delegate.
<para/>
This method performs a linear search; therefore, this method is an O(<c>n</c>) operation, where <c>n</c> is
<see cref="P:J2N.Collections.Generic.List`1.Count"/>.
</remarks>
</member>
<member name="M:J2N.Collections.Generic.List`1.FindLastIndex(System.Int32,System.Predicate{`0})">
<summary>
Searches for an element that matches the conditions defined by the specified predicate,
and returns the zero-based index of the last occurrence within the range of elements in
the <see cref="T:J2N.Collections.Generic.List`1"/> that extends from the first element to the specified index.
</summary>
<param name="startIndex">The zero-based starting index of the backward search.</param>
<param name="match">The <see cref="T:System.Predicate`1"/> delegate that defines the conditions
of the element to search for.</param>
<returns>The zero-based index of the last occurrence of an element that matches the
conditions defined by <paramref name="match"/>, if found; otherwise, -1.</returns>
<exception cref="T:System.ArgumentNullException"><paramref name="match"/> is <c>null</c>.</exception>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="startIndex"/> is outside the range of valid indexes for the <see cref="T:J2N.Collections.Generic.List`1"/>.
</exception>
<remarks>
The <see cref="T:J2N.Collections.Generic.List`1"/> is searched backward starting at <paramref name="startIndex"/> and ending at the first element.
<para/>
The <see cref="T:System.Predicate`1"/> is a delegate to a method that returns <c>true</c> if the object passed to it matches the
conditions defined in the delegate. The elements of the current <see cref="T:J2N.Collections.Generic.List`1"/> are individually
passed to the <see cref="T:System.Predicate`1"/> delegate.
<para/>
This method performs a linear search; therefore, this method is an O(<c>n</c>) operation, where <c>n</c> is
the number of elements from the beginning of the <see cref="T:J2N.Collections.Generic.List`1"/> to <paramref name="startIndex"/>.
</remarks>
</member>
<member name="M:J2N.Collections.Generic.List`1.FindLastIndex(System.Int32,System.Int32,System.Predicate{`0})">
<summary>
Searches for an element that matches the conditions defined by the specified predicate,
and returns the zero-based index of the last occurrence within the range of elements in
the <see cref="T:J2N.Collections.Generic.List`1"/> that contains the specified number of elements and ends at the
specified index.
</summary>
<param name="startIndex">The zero-based starting index of the backward search.</param>
<param name="count">The number of elements in the section to search.</param>
<param name="match">The <see cref="T:System.Predicate`1"/> delegate that defines the conditions
of the element to search for.</param>
<returns>The zero-based index of the last occurrence of an element that matches the
conditions defined by <paramref name="match"/>, if found; otherwise, -1.</returns>
<exception cref="T:System.ArgumentNullException"><paramref name="match"/> is <c>null</c>.</exception>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="startIndex"/> is outside the range of valid indexes for the <see cref="T:J2N.Collections.Generic.List`1"/>.
<para/>
-or-
<para/>
<paramref name="count"/> is less than 0.
<para/>
-or-
<para/>
<paramref name="startIndex"/> and <paramref name="count"/> do not specify a valid section in the <see cref="T:J2N.Collections.Generic.List`1"/>.
</exception>
<remarks>
The <see cref="T:J2N.Collections.Generic.List`1"/> is searched backward starting at <paramref name="startIndex"/> and ending at
<paramref name="startIndex"/> minus <paramref name="count"/> plus 1, if <paramref name="count"/> is greater
than 0.
<para/>
The <see cref="T:System.Predicate`1"/> is a delegate to a method that returns <c>true</c> if the object passed to it matches the
conditions defined in the delegate. The elements of the current <see cref="T:J2N.Collections.Generic.List`1"/> are individually
passed to the <see cref="T:System.Predicate`1"/> delegate.
<para/>
This method performs a linear search; therefore, this method is an O(<c>n</c>) operation, where <c>n</c> is
<paramref name="count"/>.
</remarks>
</member>
<member name="M:J2N.Collections.Generic.List`1.ForEach(System.Action{`0})">
<summary>
Performs the specified action on each element of the <see cref="T:J2N.Collections.Generic.List`1"/>.
</summary>
<param name="action">The <see cref="T:System.Action`1"/> delegate to perform on
each element of the <see cref="T:J2N.Collections.Generic.List`1"/>.</param>
<exception cref="T:System.ArgumentNullException"><paramref name="action"/> is <c>null</c>.</exception>
<exception cref="T:System.InvalidOperationException">An element in the collection has been modified.</exception>
<remarks>
The <see cref="T:System.Action`1"/> is a delegate to a method that performs an action on the object passed to it.
The elements of the current <see cref="T:J2N.Collections.Generic.List`1"/> are individually passed to the <see cref="T:System.Action`1"/> delegate.
<para/>
This method is an O(<c>n</c>) operation, where <c>n</c> is <see cref="P:J2N.Collections.Generic.List`1.Count"/>.
<para/>
Modifying the underlying collection in the body of the <see cref="T:System.Action`1"/> delegate is not supported
and causes undefined behavior.
</remarks>
</member>
<member name="M:J2N.Collections.Generic.List`1.GetEnumerator">
<summary>
Returns an enumerator that iterates through the <see cref="T:J2N.Collections.Generic.List`1"/>.
</summary>
<returns>A <see cref="T:System.Collections.Generic.IEnumerator`1"/> for the <see cref="T:J2N.Collections.Generic.List`1"/>.</returns>
<remarks>
The <c>foreach</c> statement of the C# language (<c>for each</c> in C++, <c>For Each</c> in Visual Basic)
hides the complexity of enumerators. Therefore, using <c>foreach</c> is recommended instead of directly manipulating the enumerator.
<para/>
Enumerators can be used to read the data in the collection, but they cannot be used to modify the underlying collection.
<para/>
Initially, the enumerator is positioned before the first element in the collection. At this position, the
<see cref="P:System.Collections.Generic.IEnumerator`1.Current"/> property is undefined. Therefore, you must call the
<see cref="M:System.Collections.IEnumerator.MoveNext"/> method to advance the enumerator to the first element
of the collection before reading the value of <see cref="P:System.Collections.Generic.IEnumerator`1.Current"/>.
<para/>
The <see cref="P:System.Collections.Generic.IEnumerator`1.Current"/> property returns the same object until
<see cref="M:System.Collections.IEnumerator.MoveNext"/> is called. <see cref="M:System.Collections.IEnumerator.MoveNext"/>
sets <see cref="P:System.Collections.Generic.IEnumerator`1.Current"/> to the next element.
<para/>
If <see cref="M:System.Collections.IEnumerator.MoveNext"/> passes the end of the collection, the enumerator is
positioned after the last element in the collection and <see cref="M:System.Collections.IEnumerator.MoveNext"/>
returns <c>false</c>. When the enumerator is at this position, subsequent calls to <see cref="M:System.Collections.IEnumerator.MoveNext"/>
also return <c>false</c>. If the last call to <see cref="M:System.Collections.IEnumerator.MoveNext"/> returned <c>false</c>,
<see cref="P:System.Collections.Generic.IEnumerator`1.Current"/> is undefined. You cannot set <see cref="P:System.Collections.Generic.IEnumerator`1.Current"/>
to the first element of the collection again; you must create a new enumerator object instead.
<para/>
An enumerator remains valid as long as the collection remains unchanged. If changes are made to the collection,
such as adding, modifying, or deleting elements, the enumerator is irrecoverably invalidated and the next call
to <see cref="M:System.Collections.IEnumerator.MoveNext"/> or <see cref="M:System.Collections.IEnumerator.Reset"/> throws an
<see cref="T:System.InvalidOperationException"/>.
<para/>
The enumerator does not have exclusive access to the collection; therefore, enumerating through a collection is
intrinsically not a thread-safe procedure. To guarantee thread safety during enumeration, you can lock the
collection during the entire enumeration. To allow the collection to be accessed by multiple threads for
reading and writing, you must implement your own synchronization.
<para/>
Default implementations of collections in the <see cref="N:J2N.Collections.Generic"/> namespace are not synchronized.
<para/>
This method is an O(1) operation.
</remarks>
</member>
<member name="M:J2N.Collections.Generic.List`1.GetRange(System.Int32,System.Int32)">
<summary>
Creates a shallow copy of a range of elements in the source <see cref="T:J2N.Collections.Generic.List`1"/>.
</summary>
<param name="index">The zero-based <see cref="T:J2N.Collections.Generic.List`1"/> index at which the range starts.</param>
<param name="count">The number of elements in the range.</param>
<returns>A shallow copy of a range of elements in the source <see cref="T:J2N.Collections.Generic.List`1"/>.</returns>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="index"/> is less than 0.
<para/>
-or-
<para/>
<paramref name="count"/> is less than 0.
</exception>
<exception cref="T:System.ArgumentException"><paramref name="index"/> and <paramref name="count"/> do
not denote a valid range of elements in the <see cref="T:J2N.Collections.Generic.List`1"/>.</exception>
<remarks>
A shallow copy of a collection of reference types, or a subset of that collection, contains
only the references to the elements of the collection. The objects themselves are not copied.
The references in the new list point to the same objects as the references in the original list.
<para/>
A shallow copy of a collection of value types, or a subset of that collection, contains the
elements of the collection. However, if the elements of the collection contain references to
other objects, those objects are not copied. The references in the elements of the new collection
point to the same objects as the references in the elements of the original collection.
<para/>
In contrast, a deep copy of a collection copies the elements and everything directly or indirectly
referenced by the elements.
<para/>
This method is an O(<c>n</c>) operation, where <c>n</c> is count.
</remarks>
</member>
<member name="M:J2N.Collections.Generic.List`1.IndexOf(`0)">
<summary>
Searches for the specified object and returns the zero-based index of the first occurrence within
the entire <see cref="T:J2N.Collections.Generic.List`1"/>.
</summary>
<param name="item">The object to locate in the <see cref="T:J2N.Collections.Generic.List`1"/>. The value can be <c>null</c> for reference types.</param>
<returns>The zero-based index of the first occurrence of <paramref name="item"/> within the entire
<see cref="T:J2N.Collections.Generic.List`1"/>, if found; otherwise, -1.</returns>
<remarks>
The <see cref="T:J2N.Collections.Generic.List`1"/> is searched forward starting at the first element and ending at
the last element.
<para/>
This method determines equality using J2N's default equality comparer <see cref="P:J2N.Collections.Generic.EqualityComparer`1.Default"/>
for <typeparamref name="T"/>, the type of values in the list.
<para/>
This method performs a linear search; therefore, this method is an O(<c>n</c>) operation, where <c>n</c>
is <see cref="P:J2N.Collections.Generic.List`1.Count"/>.
</remarks>
</member>
<member name="M:J2N.Collections.Generic.List`1.IndexOf(`0,System.Int32)">
<summary>
Searches for the specified object and returns the zero-based index of the first occurrence within
the range of elements in the <see cref="T:J2N.Collections.Generic.List`1"/> that extends from the specified index to the last element.
</summary>
<param name="item">The object to locate in the <see cref="T:J2N.Collections.Generic.List`1"/>. The value can be <c>null</c> for reference types.</param>
<param name="index">The zero-based starting index of the search. 0 (zero) is valid in an empty list.</param>
<returns>The zero-based index of the first occurrence of <paramref name="item"/> within the range of elements in the <see cref="T:J2N.Collections.Generic.List`1"/>
that extends from <paramref name="index"/> to the last element, if found; otherwise, -1.</returns>
<exception cref="T:System.ArgumentOutOfRangeException"><paramref name="index"/> is outside the range of valid indexes
for the <see cref="T:J2N.Collections.Generic.List`1"/>.</exception>
<remarks>
The <see cref="T:J2N.Collections.Generic.List`1"/> is searched forward starting at <paramref name="index"/> and ending at
the last element.
<para/>
This method determines equality using J2N's default equality comparer <see cref="P:J2N.Collections.Generic.EqualityComparer`1.Default"/>
for <typeparamref name="T"/>, the type of values in the list.
<para/>
This method performs a linear search; therefore, this method is an O(<c>n</c>) operation, where <c>n</c>
is the number of elements from <paramref name="index"/> to the end of the <see cref="T:J2N.Collections.Generic.List`1"/>.
</remarks>
</member>
<member name="M:J2N.Collections.Generic.List`1.IndexOf(`0,System.Int32,System.Int32)">
<summary>
Searches for the specified object and returns the zero-based index of the first occurrence within
the range of elements in the <see cref="T:J2N.Collections.Generic.List`1"/> that starts at the specified index and contains
the specified number of elements.
</summary>
<param name="item">The object to locate in the <see cref="T:J2N.Collections.Generic.List`1"/>. The value can be <c>null</c> for reference types.</param>
<param name="index">The zero-based starting index of the search. 0 (zero) is valid in an empty list.</param>
<param name="count">The number of elements in the section to search.</param>
<returns>The zero-based index of the first occurrence of <paramref name="item"/> within the range of elements in the <see cref="T:J2N.Collections.Generic.List`1"/>
that starts at <paramref name="index"/> and contains <paramref name="count"/> number of elements, if found; otherwise, -1.</returns>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="index"/> is outside the range of valid indexes for the <see cref="T:J2N.Collections.Generic.List`1"/>.
<para/>
-or-
<para/>
<paramref name="count"/> is less than 0.
<para/>
-or-
<para/>
<paramref name="index"/> and <paramref name="count"/> do not specify a valid section in the <see cref="T:J2N.Collections.Generic.List`1"/>.
</exception>
<remarks>
The <see cref="T:J2N.Collections.Generic.List`1"/> is searched forward starting at <paramref name="index"/> and ending at
<paramref name="index"/> plus <paramref name="count"/> minus 1, if <paramref name="count"/> is greater than 0.
<para/>
This method determines equality using J2N's default equality comparer <see cref="P:J2N.Collections.Generic.EqualityComparer`1.Default"/>
for <typeparamref name="T"/>, the type of values in the list.
<para/>
This method performs a linear search; therefore, this method is an O(<c>n</c>) operation, where <c>n</c>
is <paramref name="count"/>.
</remarks>
</member>
<member name="M:J2N.Collections.Generic.List`1.Insert(System.Int32,`0)">
<summary>
Inserts an element into the <see cref="T:J2N.Collections.Generic.List`1"/> at the specified index.
</summary>
<param name="index">The zero-based index at which <paramref name="item"/> should be inserted.</param>
<param name="item">The object to insert. The value can be <c>null</c> for reference types.</param>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="index"/> is less than 0.
<para/>
-or-
<para/>
<paramref name="index"/> is greater than <see cref="P:J2N.Collections.Generic.List`1.Count"/>.
</exception>
<remarks>
<see cref="T:J2N.Collections.Generic.List`1"/> accepts <c>null</c> as a valid value for reference types and allows duplicate elements.
<para/>
If <see cref="P:J2N.Collections.Generic.List`1.Count"/> already equals <see cref="P:J2N.Collections.Generic.List`1.Capacity"/>, the capacity of the <see cref="T:J2N.Collections.Generic.List`1"/> is increased
by automatically reallocating the internal array, and the existing elements are copied to the new array before the
new element is added.
<para/>
If index is equal to <see cref="P:J2N.Collections.Generic.List`1.Count"/>, item is added to the end of <see cref="T:J2N.Collections.Generic.List`1"/>.
<para/>
This method is an O(<c>n</c>) operation, where <c>n</c> is <see cref="P:J2N.Collections.Generic.List`1.Count"/>.
</remarks>
</member>
<member name="M:J2N.Collections.Generic.List`1.InsertRange(System.Int32,System.Collections.Generic.IEnumerable{`0})">
<summary>
Inserts the elements of a collection into the <see cref="T:J2N.Collections.Generic.List`1"/> at the specified index.
</summary>
<param name="index">The zero-based index at which the new elements should be inserted.</param>
<param name="collection">The collection whose elements should be inserted into the <see cref="T:J2N.Collections.Generic.List`1"/>.
The collection itself cannot be <c>null</c>, but it can contain elements that are <c>null</c>, if type
<typeparamref name="T"/> is a reference type.</param>
<exception cref="T:System.ArgumentNullException"><paramref name="collection"/> is <c>null</c>.</exception>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="index"/> is less than 0.
<para/>
-or-
<para/>
<paramref name="index"/> is greater than <see cref="P:J2N.Collections.Generic.List`1.Count"/>.
</exception>
<remarks>
<see cref="T:J2N.Collections.Generic.List`1"/> accepts <c>null</c> as a valid value for reference types and allows duplicate elements.
<para/>
If the new <see cref="P:J2N.Collections.Generic.List`1.Count"/> (the current <see cref="P:J2N.Collections.Generic.List`1.Count"/> plus the size of the collection) will be
greater than <see cref="P:J2N.Collections.Generic.List`1.Capacity"/>, the capacity of the <see cref="T:J2N.Collections.Generic.List`1"/> is increased by automatically
reallocating the internal array to accommodate the new elements, and the existing elements are copied to the
new array before the new elements are added.
<para/>
If index is equal to <see cref="P:J2N.Collections.Generic.List`1.Count"/>, the elements are added to the end of <see cref="T:J2N.Collections.Generic.List`1"/>.
<para/>
The order of the elements in the collection is preserved in the <see cref="T:J2N.Collections.Generic.List`1"/>.
<para/>
This method is an O(<c>n</c> * <c>m</c>) operation, where <c>n</c> is the number of elements to be added and
<c>m</c> is <see cref="P:J2N.Collections.Generic.List`1.Count"/>.
</remarks>
</member>
<member name="M:J2N.Collections.Generic.List`1.LastIndexOf(`0)">
<summary>
Searches for the specified object and returns the zero-based index of the last occurrence within the
entire <see cref="T:J2N.Collections.Generic.List`1"/>.
</summary>
<param name="item">The object to locate in the <see cref="T:J2N.Collections.Generic.List`1"/>. The value can be <c>null</c> for reference types.</param>
<returns>The zero-based index of the last occurrence of <paramref name="item"/> within the entire
<see cref="T:J2N.Collections.Generic.List`1"/>, if found; otherwise, -1.</returns>
<remarks>
The <see cref="T:J2N.Collections.Generic.List`1"/> is searched backward starting at the last element and ending at
the first element.
<para/>
This method determines equality using J2N's default equality comparer <see cref="P:J2N.Collections.Generic.EqualityComparer`1.Default"/>
for <typeparamref name="T"/>, the type of values in the list.
<para/>
This method performs a linear search; therefore, this method is an O(<c>n</c>) operation, where <c>n</c>
is <see cref="P:J2N.Collections.Generic.List`1.Count"/>.
</remarks>
</member>
<member name="M:J2N.Collections.Generic.List`1.LastIndexOf(`0,System.Int32)">
<summary>
Searches for the specified object and returns the zero-based index of the last occurrence within the range
of elements in the <see cref="T:J2N.Collections.Generic.List`1"/> that extends from the first element to the specified index.
</summary>
<param name="item">The object to locate in the <see cref="T:J2N.Collections.Generic.List`1"/>. The value can be <c>null</c> for reference types.</param>
<param name="index">The zero-based starting index of the backward search.</param>
<returns>The zero-based index of the last occurrence of <paramref name="item"/> within the range of elements in
the <see cref="T:J2N.Collections.Generic.List`1"/> that extends from the first element to <paramref name="index"/>, if found; otherwise, -1.</returns>
<exception cref="T:System.ArgumentOutOfRangeException"><paramref name="index"/> is outside the range of valid indexes for the
<see cref="T:J2N.Collections.Generic.List`1"/>.</exception>
<remarks>
The <see cref="T:J2N.Collections.Generic.List`1"/> is searched backward starting at <paramref name="index"/> and ending at
the first element.
<para/>
This method determines equality using J2N's default equality comparer <see cref="P:J2N.Collections.Generic.EqualityComparer`1.Default"/>
for <typeparamref name="T"/>, the type of values in the list.
<para/>
This method performs a linear search; therefore, this method is an O(<c>n</c>) operation, where <c>n</c>
is the number of elements from the beginning of the <see cref="T:J2N.Collections.Generic.List`1"/> to <paramref name="index"/>.
</remarks>
</member>
<member name="M:J2N.Collections.Generic.List`1.LastIndexOf(`0,System.Int32,System.Int32)">
<summary>
Searches for the specified object and returns the zero-based index of the last occurrence within the range
of elements in the <see cref="T:J2N.Collections.Generic.List`1"/> that contains the specified number of elements and ends at the specified index.
</summary>
<param name="item">The object to locate in the <see cref="T:J2N.Collections.Generic.List`1"/>. The value can be <c>null</c> for reference types.</param>
<param name="index">The zero-based starting index of the backward search.</param>
<param name="count">The number of elements in the section to search.</param>
<returns>The zero-based index of the last occurrence of <paramref name="item"/> within the range of elements in the <see cref="T:J2N.Collections.Generic.List`1"/>
that contains <paramref name="count"/> number of elements and ends at <paramref name="index"/>, if found; otherwise, -1.</returns>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="index"/> is outside the range of valid indexes for the <see cref="T:J2N.Collections.Generic.List`1"/>.
<para/>
-or-
<para/>
<paramref name="count"/> is less than 0.
<para/>
-or-
<para/>
<paramref name="index"/> and <paramref name="count"/> do not specify a valid section in the <see cref="T:J2N.Collections.Generic.List`1"/>.
</exception>
<remarks>
The <see cref="T:J2N.Collections.Generic.List`1"/> is searched backward starting at <paramref name="index"/> and ending at
<paramref name="index"/> minus <paramref name="count"/> plus 1, if <paramref name="count"/> is greater than 0.
<para/>
This method determines equality using J2N's default equality comparer <see cref="P:J2N.Collections.Generic.EqualityComparer`1.Default"/>
for <typeparamref name="T"/>, the type of values in the list.
<para/>
This method performs a linear search; therefore, this method is an O(<c>n</c>) operation, where <c>n</c>
is <paramref name="count"/>.
</remarks>
</member>
<member name="M:J2N.Collections.Generic.List`1.Remove(`0)">
<summary>
Removes the first occurrence of a specific object from the <see cref="T:J2N.Collections.Generic.List`1"/>.
</summary>
<param name="item">The object to remove from the <see cref="T:J2N.Collections.Generic.List`1"/>. The value can be
<c>null</c> for reference types.</param>
<returns><c>true</c> if item is successfully removed; otherwise, <c>false</c>. This method
also returns <c>false</c> if item was not found in the <see cref="T:J2N.Collections.Generic.List`1"/>.</returns>
<remarks>
If type <typeparamref name="T"/> implements the <see cref="T:System.IEquatable`1"/> generic interface,
the equality comparer is the <see cref="M:System.IEquatable`1.Equals(`0)"/> method of that interface;
otherwise, the default equality comparer is <see cref="M:System.Object.Equals(System.Object)"/>.
<para/>
This method performs a linear search; therefore, this method is an O(<c>n</c>) operation,
where <c>n</c> is <see cref="P:J2N.Collections.Generic.List`1.Count"/>.
</remarks>
</member>
<member name="M:J2N.Collections.Generic.List`1.RemoveAll(System.Predicate{`0})">
<summary>
Removes all the elements that match the conditions defined by the specified predicate.
</summary>
<param name="match">The <see cref="T:System.Predicate`1"/> delegate that defines the conditions
of the elements to remove.</param>
<returns>The number of elements removed from the <see cref="T:J2N.Collections.Generic.List`1"/>.</returns>
<exception cref="T:System.ArgumentNullException"><paramref name="match"/> is <c>null</c>.</exception>
<remarks>
The <see cref="T:System.Predicate`1"/> is a delegate to a method that returns <c>true</c> if the object passed
to it matches the conditions defined in the delegate. The elements of the current <see cref="T:J2N.Collections.Generic.List`1"/>
are individually passed to the <see cref="T:System.Predicate`1"/> delegate, and the elements that match
the conditions are renived from the <see cref="T:J2N.Collections.Generic.List`1"/>.
<para/>
This method performs a linear search; therefore, this method is an O(<c>n</c>) operation, where
<c>n</c> is <see cref="P:J2N.Collections.Generic.List`1.Count"/>.
</remarks>
</member>
<member name="M:J2N.Collections.Generic.List`1.RemoveAt(System.Int32)">
<summary>
Removes the element at the specified index of the <see cref="T:J2N.Collections.Generic.List`1"/>.
</summary>
<param name="index">The zero-based starting index of the range of elements to remove.</param>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="index"/> is less than 0.
<para/>
-or-
<para/>
<paramref name="index"/> is equal to or greater than <see cref="P:J2N.Collections.Generic.List`1.Count"/>.
</exception>
<remarks>
When you call <see cref="M:J2N.Collections.Generic.List`1.RemoveAt(System.Int32)"/> to remove an item, the remaining items in the list
are renumbered to replace the removed item. For example, if you remove the item at index 3,
the item at index 4 is moved to the 3 position. In addition, the number of items in the list
(as represented by the <see cref="P:J2N.Collections.Generic.List`1.Count"/> property) is reduced by 1.
<para/>
This method is an O(<c>n</c>) operation, where <c>n</c> is (<see cref="P:J2N.Collections.Generic.List`1.Count"/> - <paramref name="index"/>).
</remarks>
</member>
<member name="M:J2N.Collections.Generic.List`1.RemoveRange(System.Int32,System.Int32)">
<summary>
Removes a range of elements from the <see cref="T:J2N.Collections.Generic.List`1"/>.
</summary>
<param name="index">The zero-based starting index of the range of elements to remove.</param>
<param name="count">The number of elements to remove.</param>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="index"/> is less than 0.
<para/>
-or-
<para/>
<paramref name="count"/> is less than 0.
</exception>
<exception cref="T:System.ArgumentException"><paramref name="index"/> and <paramref name="count"/>
do not denote a valid range of elements in the <see cref="T:J2N.Collections.Generic.List`1"/>.</exception>
<remarks>
The items are removed and all the elements following them in the <see cref="T:J2N.Collections.Generic.List`1"/> have
their indexes reduced by <paramref name="count"/>.
<para/>
This method is an O(<c>n</c>) operation, where <c>n</c> is <see cref="P:J2N.Collections.Generic.List`1.Count"/>.
</remarks>
</member>
<member name="M:J2N.Collections.Generic.List`1.Reverse">
<summary>
Reverses the order of the elements in the entire <see cref="T:J2N.Collections.Generic.List`1"/>.
</summary>
<remarks>
This method uses <see cref="M:Array.Reverse{T}(T[])"/> to reverse the order of the elements.
<para/>
This method is an O(<c>n</c>) operation, where <c>n</c> is <see cref="P:J2N.Collections.Generic.List`1.Count"/>.
</remarks>
</member>
<member name="M:J2N.Collections.Generic.List`1.Reverse(System.Int32,System.Int32)">
<summary>
Reverses the order of the elements in the specified range.
</summary>
<param name="index">The zero-based starting index of the range to reverse.</param>
<param name="count">The number of elements in the range to reverse.</param>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="index"/> is less than 0.
<para/>
-or-
<para/>
<paramref name="count"/> is less than 0.
</exception>
<exception cref="T:System.ArgumentException"><paramref name="index"/> and <paramref name="count"/>
do not denote a valid range of elements in the <see cref="T:J2N.Collections.Generic.List`1"/>.</exception>
<remarks>
This method uses <see cref="M:Array.Reverse{T}(T[], int, int)"/> to reverse the order of the elements.
<para/>
This method is an O(<c>n</c>) operation, where <c>n</c> is <see cref="P:J2N.Collections.Generic.List`1.Count"/>.
</remarks>
</member>
<member name="M:J2N.Collections.Generic.List`1.Sort">
<summary>
Sorts the elements in the entire <see cref="T:J2N.Collections.Generic.List`1"/> using J2N's default comparer.
</summary>
<exception cref="T:System.InvalidOperationException">The default comparer <see cref="P:J2N.Collections.Generic.Comparer`1.Default"/>
cannot find an implementation of the <see cref="T:System.IComparable`1"/> generic interface or the <see cref="T:System.IComparable"/>
interface for type <typeparamref name="T"/>.</exception>
<remarks>
This method uses J2N's default comparer <see cref="P:J2N.Collections.Generic.Comparer`1.Default"/> for type <typeparamref name="T"/> to determine
the order of list elements. The <see cref="P:J2N.Collections.Generic.Comparer`1.Default"/> comparer checks whether
type <typeparamref name="T"/> implements the <see cref="T:System.IComparable`1"/> generic interface and uses that implementation,
if available. If not, <see cref="P:J2N.Collections.Generic.Comparer`1.Default"/> checks whether type <typeparamref name="T"/> implements the
<see cref="T:System.IComparable"/> interface. If type <typeparamref name="T"/> does not implement either interface,
<see cref="P:J2N.Collections.Generic.Comparer`1.Default"/> throws an <see cref="T:System.InvalidOperationException"/>.
<para/>
This method uses <see cref="M:System.Array.Sort(System.Array,System.Int32,System.Int32,System.Collections.IComparer)"/>, which applies the introspective sort as follows:
<list type="bullet">
<item><description>
If the partition size is less than or equal to 16 elements, it uses an insertion sort algorithm
</description></item>
<item><description>
If the number of partitions exceeds 2 log <c>n</c>, where <c>n</c> is the range of the input array,
it uses a <a href="https://en.wikipedia.org/wiki/Heapsort">Heapsort</a> algorithm.
</description></item>
<item><description>
Otherwise, it uses a Quicksort algorithm.
</description></item>
</list>
<para/>
This implementation performs an unstable sort; that is, if two elements are equal, their order might not be preserved.
In contrast, a stable sort preserves the order of elements that are equal.
<para/>
On average, this method is an O(<c>n</c> log <c>n</c>) operation, where <c>n</c> is <see cref="P:J2N.Collections.Generic.List`1.Count"/>; in the worst
case it is an O(<c>n</c><sup>2</sup>) operation.
</remarks>
</member>
<member name="M:J2N.Collections.Generic.List`1.Sort(System.Collections.Generic.IComparer{`0})">
<summary>
Sorts the elements in the entire <see cref="T:J2N.Collections.Generic.List`1"/> using the specified comparer.
</summary>
<param name="comparer">The <see cref="T:System.Collections.Generic.IComparer`1"/> implementation to use when
comparing elements, or <c>null</c> to use J2N's default comparer <see cref="P:J2N.Collections.Generic.Comparer`1.Default"/>.</param>
<exception cref="T:System.InvalidOperationException"><paramref name="comparer"/> is <c>null</c>, and the default
comparer <see cref="P:J2N.Collections.Generic.Comparer`1.Default"/> cannot find implementation of the <see cref="T:System.IComparable`1"/>
generic interface or the <see cref="T:System.IComparable"/> interface for type <typeparamref name="T"/>.</exception>
<exception cref="T:System.ArgumentException">The implementation of <paramref name="comparer"/> caused an error during
the sort. For example, <paramref name="comparer"/> might not return 0 when comparing an item with itself.</exception>
<remarks>
If <paramref name="comparer"/> is provided, the elements of the <see cref="T:J2N.Collections.Generic.List`1"/> are sorted using the specified
<see cref="T:System.Collections.Generic.IComparer`1"/>.
<para/>
If <paramref name="comparer"/> is <c>null</c>, the default comparer <see cref="P:J2N.Collections.Generic.Comparer`1.Default"/> checks whether
type <typeparamref name="T"/> implements the <see cref="T:System.IComparable`1"/> generic interface and uses that implementation,
if available. If not, <see cref="P:J2N.Collections.Generic.Comparer`1.Default"/> checks whether type <typeparamref name="T"/> implements the
<see cref="T:System.IComparable"/> interface. If type <typeparamref name="T"/> does not implement either interface,
<see cref="P:J2N.Collections.Generic.Comparer`1.Default"/> throws an <see cref="T:System.InvalidOperationException"/>.
<para/>
This method uses <see cref="M:System.Array.Sort(System.Array,System.Int32,System.Int32,System.Collections.IComparer)"/>, which applies the introspective sort as follows:
<list type="bullet">
<item><description>
If the partition size is less than or equal to 16 elements, it uses an insertion sort algorithm
</description></item>
<item><description>
If the number of partitions exceeds 2 log <c>n</c>, where <c>n</c> is the range of the input array,
it uses a <a href="https://en.wikipedia.org/wiki/Heapsort">Heapsort</a> algorithm.
</description></item>
<item><description>
Otherwise, it uses a Quicksort algorithm.
</description></item>
</list>
<para/>
This implementation performs an unstable sort; that is, if two elements are equal, their order might not be preserved.
In contrast, a stable sort preserves the order of elements that are equal.
<para/>
On average, this method is an O(<c>n</c> log <c>n</c>) operation, where <c>n</c> is <see cref="P:J2N.Collections.Generic.List`1.Count"/>; in the worst
case it is an O(<c>n</c><sup>2</sup>) operation.
</remarks>
</member>
<member name="M:J2N.Collections.Generic.List`1.Sort(System.Int32,System.Int32,System.Collections.Generic.IComparer{`0})">
<summary>
Sorts the elements in a range of elements in <see cref="T:J2N.Collections.Generic.List`1"/> using the specified comparer.
</summary>
<param name="index">The zero-based starting index of the range to sort.</param>
<param name="count">The length of the range to sort.</param>
<param name="comparer">The <see cref="T:System.Collections.Generic.IComparer`1"/> implementation to use when comparing elements,
or <c>null</c> to use J2N's default comparer <see cref="P:J2N.Collections.Generic.Comparer`1.Default"/>.</param>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="index"/> is less than 0.
<para/>
-or-
<para/>
The implementation of <paramref name="comparer"/> caused an error during the sort. For example,
<paramref name="comparer"/> might not return 0 when comparing an item with itself.
</exception>
<exception cref="T:System.InvalidOperationException"><paramref name="comparer"/> is <c>null</c>, and J2N's
default comparer <see cref="P:J2N.Collections.Generic.Comparer`1.Default"/> cannot find implementation of the <see cref="T:System.IComparable`1"/>
generic interface or the <see cref="T:System.IComparable"/> interface for type <typeparamref name="T"/>.</exception>
<remarks>
If <paramref name="comparer"/> is provided, the elements of the <see cref="T:J2N.Collections.Generic.List`1"/> are sorted using the specified
<see cref="T:System.Collections.Generic.IComparer`1"/> implementation.
<para/>
If <paramref name="comparer"/> is <c>null</c>, the default comparer <see cref="P:J2N.Collections.Generic.Comparer`1.Default"/> checks whether
type <typeparamref name="T"/> implements the <see cref="T:System.IComparable`1"/> generic interface and uses that implementation,
if available. If not, <see cref="P:J2N.Collections.Generic.Comparer`1.Default"/> checks whether type <typeparamref name="T"/> implements the
<see cref="T:System.IComparable"/> interface. If type <typeparamref name="T"/> does not implement either interface,
<see cref="P:J2N.Collections.Generic.Comparer`1.Default"/> throws an <see cref="T:System.InvalidOperationException"/>.
<para/>
This method uses <see cref="M:System.Array.Sort(System.Array,System.Int32,System.Int32,System.Collections.IComparer)"/>, which applies the introspective sort as follows:
<list type="bullet">
<item><description>
If the partition size is less than or equal to 16 elements, it uses an insertion sort algorithm
</description></item>
<item><description>
If the number of partitions exceeds 2 log <c>n</c>, where <c>n</c> is the range of the input array,
it uses a <a href="https://en.wikipedia.org/wiki/Heapsort">Heapsort</a> algorithm.
</description></item>
<item><description>
Otherwise, it uses a Quicksort algorithm.
</description></item>
</list>
<para/>
This implementation performs an unstable sort; that is, if two elements are equal, their order might not be preserved.
In contrast, a stable sort preserves the order of elements that are equal.
<para/>
On average, this method is an O(<c>n</c> log <c>n</c>) operation, where <c>n</c> is <see cref="P:J2N.Collections.Generic.List`1.Count"/>; in the worst
case it is an O(<c>n</c><sup>2</sup>) operation.
</remarks>
</member>
<member name="M:J2N.Collections.Generic.List`1.Sort(System.Comparison{`0})">
<summary>
Sorts the elements in the entire <see cref="T:J2N.Collections.Generic.List`1"/> using the specified <see cref="T:System.Comparison`1"/>.
</summary>
<param name="comparison">The <see cref="T:System.Comparison`1"/> to use when comparing elements.</param>
<exception cref="T:System.ArgumentNullException"><paramref name="comparison"/> is <c>null</c>.</exception>
<exception cref="T:System.ArgumentException">The implementation of <paramref name="comparison"/> caused an error during the sort.
For example, <paramref name="comparison"/> might not return 0 when comparing an item with itself.</exception>
<remarks>
If comparison is provided, the elements of the <see cref="T:J2N.Collections.Generic.List`1"/> are sorted using the method represented by the delegate.
<para/>
If comparison is <c>null</c>, an <see cref="T:System.ArgumentNullException"/> is thrown.
<para/>
This method uses <see cref="M:System.Array.Sort(System.Array,System.Int32,System.Int32)"/>, which applies the introspective sort as follows:
<list type="bullet">
<item><description>
If the partition size is less than or equal to 16 elements, it uses an insertion sort algorithm
</description></item>
<item><description>
If the number of partitions exceeds 2 log <c>n</c>, where <c>n</c> is the range of the input array,
it uses a <a href="https://en.wikipedia.org/wiki/Heapsort">Heapsort</a> algorithm.
</description></item>
<item><description>
Otherwise, it uses a Quicksort algorithm.
</description></item>
</list>
<para/>
This implementation performs an unstable sort; that is, if two elements are equal, their order might not be preserved.
In contrast, a stable sort preserves the order of elements that are equal.
<para/>
On average, this method is an O(<c>n</c> log <c>n</c>) operation, where <c>n</c> is <see cref="P:J2N.Collections.Generic.List`1.Count"/>; in the worst
case it is an O(<c>n</c><sup>2</sup>) operation.
</remarks>
<seealso cref="T:System.Comparison`1"/>
</member>
<member name="M:J2N.Collections.Generic.List`1.ToArray">
<summary>
Copies the elements of the <see cref="T:J2N.Collections.Generic.List`1"/> to a new array.
</summary>
<returns>An array containing copies of the elements of the <see cref="T:J2N.Collections.Generic.List`1"/>.</returns>
<remarks>
The elements are copied using <see cref="M:System.Array.Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)"/>, which
is an O(<c>n</c>) operation, where <c>n</c> is <see cref="P:J2N.Collections.Generic.List`1.Count"/>.
<para/>
This method is an O(<c>n</c>) operation, where <c>n</c> is <see cref="P:J2N.Collections.Generic.List`1.Count"/>.
</remarks>
</member>
<member name="M:J2N.Collections.Generic.List`1.TrimExcess">
<summary>
Sets the capacity to the actual number of elements in the <see cref="T:J2N.Collections.Generic.List`1"/>, if that
number is less than a threshold value.
</summary>
<remarks>
This method can be used to minimize a collection's memory overhead if no new elements will
be added to the collection. The cost of reallocating and copying a large <see cref="T:J2N.Collections.Generic.List`1"/>
can be considerable, however, so the <see cref="M:J2N.Collections.Generic.List`1.TrimExcess"/> method does nothing if the
list is at more than 90 percent of capacity. This avoids incurring a large reallocation
cost for a relatively small gain.
<para/>
NOTE: The current threshold of 90 percent might change in future releases.
<para/>
This method is an O(<c>n</c>) operation, where <c>n</c> is <see cref="P:J2N.Collections.Generic.List`1.Count"/>.
<para/>
To reset a <see cref="T:J2N.Collections.Generic.List`1"/> to its initial state, call the <see cref="M:J2N.Collections.Generic.List`1.Clear"/> method
before calling the <see cref="M:J2N.Collections.Generic.List`1.TrimExcess"/> method. Trimming an empty <see cref="T:J2N.Collections.Generic.List`1"/> sets the
capacity of the <see cref="T:J2N.Collections.Generic.List`1"/> to the default capacity.
<para/>
The capacity can also be set using the <see cref="P:J2N.Collections.Generic.List`1.Capacity"/> property.
</remarks>
</member>
<member name="M:J2N.Collections.Generic.List`1.TrueForAll(System.Predicate{`0})">
<summary>
Determines whether every element in the <see cref="T:J2N.Collections.Generic.List`1"/> matches the
conditions defined by the specified predicate.
</summary>
<param name="match">The <see cref="T:System.Predicate`1"/> delegate that defines
the conditions to check against the elements.</param>
<returns><c>true</c> if every element in the <see cref="T:J2N.Collections.Generic.List`1"/> matches
the conditions defined by the specified predicate; otherwise, <c>false</c>.
If the list has no elements, the return value is <c>true</c>.</returns>
<exception cref="T:System.ArgumentNullException"><paramref name="match"/> is <c>null</c>.</exception>
<remarks>
The <see cref="T:System.Predicate`1"/> is a delegate to a method that returns <c>true</c> if the object passed
to it matches the conditions defined in the delegate. The elements of the current <see cref="T:J2N.Collections.Generic.List`1"/>
are individually passed to the <see cref="T:System.Predicate`1"/> delegate, and processing is stopped when the
delegate returns <c>false</c> for any element. The elements are processed in order, and all calls are
made on a single thread.
<para/>
This method is an O(<c>n</c>) operation, where <c>n</c> is <see cref="P:J2N.Collections.Generic.List`1.Count"/>.
</remarks>
</member>
<member name="M:J2N.Collections.Generic.List`1.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
<summary>
Implements the <see cref="T:System.Runtime.Serialization.ISerializable"/> interface and returns the data that you must have to serialize a
<see cref="T:J2N.Collections.Generic.List`1"/> object.
</summary>
<param name="info">A <see cref="T:System.Runtime.Serialization.SerializationInfo"/> object that contains the information that is required
to serialize the <see cref="T:J2N.Collections.Generic.List`1"/> object.</param>
<param name="context">A <see cref="T:System.Runtime.Serialization.StreamingContext"/> structure that contains the source and destination
of the serialized stream associated with the <see cref="T:J2N.Collections.Generic.List`1"/> object.</param>
<exception cref="T:System.ArgumentNullException"><paramref name="info"/> is <c>null</c>.</exception>
<remarks>Calling this method is an <c>O(n)</c> operation, where <c>n</c> is <see cref="P:J2N.Collections.Generic.List`1.Count"/>.</remarks>
</member>
<member name="M:J2N.Collections.Generic.List`1.OnDeserialization(System.Object)">
<summary>
Implements the <see cref="T:System.Runtime.Serialization.ISerializable"/> interface, and raises the deserialization
event when the deserialization is completed.
</summary>
<param name="sender">The source of the deserialization event.</param>
<exception cref="T:System.Runtime.Serialization.SerializationException">The <see cref="T:System.Runtime.Serialization.SerializationInfo"/> object associated
with the current <see cref="T:J2N.Collections.Generic.SortedSet`1"/> object is invalid.</exception>
<remarks>Calling this method is an <c>O(n)</c> operation, where <c>n</c> is <see cref="P:J2N.Collections.Generic.List`1.Count"/>.</remarks>
</member>
<member name="M:J2N.Collections.Generic.List`1.Equals(System.Object,System.Collections.IEqualityComparer)">
<summary>
Determines whether the specified object is structurally equal to the current list
using rules provided by the specified <paramref name="comparer"/>.
</summary>
<param name="other">The object to compare with the current object.</param>
<param name="comparer">The <see cref="T:System.Collections.IEqualityComparer"/> implementation to use to determine
whether the current object and <paramref name="other"/> are structurally equal.</param>
<returns><c>true</c> if <paramref name="other"/> is structurally equal to the current list;
otherwise, <c>false</c>.</returns>
<exception cref="T:System.ArgumentNullException">If <paramref name="comparer"/> is <c>null</c>.</exception>
</member>
<member name="M:J2N.Collections.Generic.List`1.GetHashCode(System.Collections.IEqualityComparer)">
<summary>
Gets the hash code representing the current list using rules specified by the
provided <paramref name="comparer"/>.
</summary>
<param name="comparer">The <see cref="T:System.Collections.IEqualityComparer"/> implementation to use to generate
the hash code.</param>
<returns>A hash code representing the current list.</returns>
</member>
<member name="M:J2N.Collections.Generic.List`1.Equals(System.Object)">
<summary>
Determines whether the specified object is structurally equal to the current list
using rules similar to those in the JDK's AbstactList class. Two lists are considered
equal when they both contain the same objects in the same order.
</summary>
<param name="obj">The object to compare with the current object.</param>
<returns><c>true</c> if the specified object implements <see cref="T:System.Collections.Generic.IList`1"/>
and it contains the same elements in the same order; otherwise, <c>false</c>.</returns>
<seealso cref="M:J2N.Collections.Generic.List`1.Equals(System.Object,System.Collections.IEqualityComparer)"/>
</member>
<member name="M:J2N.Collections.Generic.List`1.GetHashCode">
<summary>
Gets the hash code for the current list. The hash code is calculated
by taking each nested element's hash code into account.
</summary>
<returns>A hash code for the current object.</returns>
</member>
<member name="M:J2N.Collections.Generic.List`1.ToString(System.String,System.IFormatProvider)">
<summary>
Returns a string that represents the current list using the specified
<paramref name="format"/> and <paramref name="formatProvider"/>.
</summary>
<returns>A string that represents the current list.</returns>
<exception cref="T:System.ArgumentNullException"><paramref name="format"/> is <c>null</c>.</exception>
<exception cref="T:System.FormatException">
<paramref name="format"/> is invalid.
<para/>
-or-
<para/>
The index of a format item is not zero.
</exception>
</member>
<member name="M:J2N.Collections.Generic.List`1.ToString">
<summary>
Returns a string that represents the current list using
<see cref="P:J2N.Text.StringFormatter.CurrentCulture"/>.
<para/>
The presentation has a specific format. It is enclosed by square
brackets ("[]"). Elements are separated by ', ' (comma and space).
</summary>
<returns>A string that represents the current list.</returns>
</member>
<member name="M:J2N.Collections.Generic.List`1.ToString(System.IFormatProvider)">
<summary>
Returns a string that represents the current list using the specified
<paramref name="formatProvider"/>.
</summary>
<returns>A string that represents the current list.</returns>
<exception cref="T:System.ArgumentNullException"><paramref name="formatProvider"/> is <c>null</c>.</exception>
</member>
<member name="M:J2N.Collections.Generic.List`1.ToString(System.String)">
<summary>
Returns a string that represents the current list using the specified
<paramref name="format"/> and <see cref="P:J2N.Text.StringFormatter.CurrentCulture"/>.
<para/>
The presentation has a specific format. It is enclosed by square
brackets ("[]"). Elements are separated by ', ' (comma and space).
</summary>
<returns>A string that represents the current list.</returns>
<exception cref="T:System.ArgumentNullException"><paramref name="format"/> is <c>null</c>.</exception>
<exception cref="T:System.FormatException">
<paramref name="format"/> is invalid.
<para/>
-or-
<para/>
The index of a format item is not zero.
</exception>
</member>
<member name="T:J2N.Collections.Generic.List`1.SubList">
<summary>
This class represents a subset view into the list. Any changes to this view
are reflected in the actual list. It uses the comparer of the underlying list.
</summary>
</member>
<member name="T:J2N.Collections.Generic.ListEqualityComparer`1">
<summary>
Provides comparers that can be used to compare <see cref="T:System.Collections.Generic.IList`1"/>
implementations for structural equality using rules similar to those
in the JDK's AbstractList class.
</summary>
<typeparam name="T">The element type.</typeparam>
</member>
<member name="P:J2N.Collections.Generic.ListEqualityComparer`1.Default">
<summary>
Gets a <see cref="T:J2N.Collections.Generic.ListEqualityComparer`1"/> object that compares
<see cref="T:System.Collections.Generic.IList`1"/> implementations for structural equality
using rules similar to those in Java. Nested elemements that implement
<see cref="T:System.Collections.IStructuralEquatable"/> are also compared.
</summary>
</member>
<member name="P:J2N.Collections.Generic.ListEqualityComparer`1.Aggressive">
<summary>
Gets a <see cref="T:J2N.Collections.Generic.ListEqualityComparer`1"/> object that compares
<see cref="T:System.Collections.Generic.IList`1"/> implementations for structural equality
using rules similar to those in Java. Nested elemements are also compared.
<para/>
If a nested object implements <see cref="T:System.Collections.IStructuralEquatable"/>, it will be used
to compare structural equality. If not, a reflection call is made to determine
if the object can be converted to <see cref="T:System.Collections.Generic.IList`1"/>, <see cref="T:System.Collections.Generic.ISet`1"/>, or
<see cref="T:System.Collections.Generic.IDictionary`2"/> and then the object is converted to a <c>dynamic</c>
using <see cref="M:System.Convert.ChangeType(System.Object,System.Type)"/>. The compiler then uses the converted type
to decide which comparison rules to use using method overloading.
<para/>
Usage Note: This comparer can be used to patch standard built-in .NET collections for structural equality,
but it is slower to use built-in .NET collections than ensuring all nested types
implement <see cref="T:System.Collections.IStructuralEquatable"/>. This mode only supports types that
implement <see cref="T:System.Collections.IStructuralEquatable"/>, <see cref="T:System.Collections.Generic.IList`1"/>,
<see cref="T:System.Collections.Generic.ISet`1"/>, or <see cref="T:System.Collections.Generic.IDictionary`2"/>. All other types will
be compared using <see cref="P:J2N.Collections.Generic.EqualityComparer`1.Default"/>.
</summary>
</member>
<member name="M:J2N.Collections.Generic.ListEqualityComparer`1.Equals(System.Collections.Generic.IList{`0},System.Collections.Generic.IList{`0})">
<summary>
Compares two lists for structural equality using rules similar to those in
the JDK's AbstactList class. Two lists are considered equal when they both contain
the same objects in the same order.
</summary>
<param name="listA">The first list to compare.</param>
<param name="listB">The second list to compare.</param>
<returns><c>true</c> if the specified lists are equal; otherwise, <c>false</c>.</returns>
</member>
<member name="M:J2N.Collections.Generic.ListEqualityComparer`1.GetHashCode(System.Collections.Generic.IList{`0})">
<summary>
Returns the hash code of the specified <paramref name="list"/>. The hash code is calculated by
taking each nested element's hash code into account.
</summary>
<param name="list">The list to calculate the hash code for.</param>
<returns>The hash code of <paramref name="list"/>.</returns>
</member>
<member name="M:J2N.Collections.Generic.ListEqualityComparer`1.Equals(System.Object,System.Object)">
<summary>
Compares two objects for structural equality using rules similar to those in
the JDK's AbstactList class. Two lists are considered equal when they both contain
the same objects in the same order.
</summary>
<param name="a">The first list to compare.</param>
<param name="b">The second list to compare.</param>
<returns><c>true</c> if both objects implement <see cref="T:System.Collections.Generic.IList`1"/>
and they contain the same elements in the same order; otherwise, <c>false</c>.</returns>
</member>
<member name="M:J2N.Collections.Generic.ListEqualityComparer`1.GetHashCode(System.Object)">
<summary>
Returns the hash code of the specified <paramref name="obj"/>. The hash code is calculated by
taking each nested element's hash code into account.
</summary>
<param name="obj">The list to calculate the hash code for.</param>
<returns>The hash code of <paramref name="obj"/>.</returns>
</member>
<member name="M:J2N.Collections.Generic.ListEqualityComparer`1.TryGetListEqualityComparer(System.Collections.IEqualityComparer,J2N.Collections.Generic.ListEqualityComparer{`0}@)">
<summary>
Tries to convert the specified <paramref name="comparer"/> to a strongly typed <see cref="T:J2N.Collections.Generic.ListEqualityComparer`1"/>.
</summary>
<param name="comparer">The comparer to convert to a <see cref="T:J2N.Collections.Generic.ListEqualityComparer`1"/>, if possible.</param>
<param name="equalityComparer">The result <see cref="T:J2N.Collections.Generic.ListEqualityComparer`1"/> of the conversion.</param>
<returns><c>true</c> if the conversion was successful; otherwise, <c>false</c>.</returns>
</member>
<member name="M:J2N.Collections.Generic.ListEqualityComparer`1.Equals(System.Collections.Generic.IList{`0},System.Object,System.Collections.IEqualityComparer)">
<summary>
Compares two objects for structural equality using rules similar to those in
the JDK's AbstactList class. Two lists are considered equal when they both contain
the same objects in the same order.
<para/>
Usage Note: This overload can be used in a collection of <see cref="T:System.Collections.Generic.IList`1"/> to
implement <see cref="M:System.Collections.IStructuralEquatable.Equals(System.Object,System.Collections.IEqualityComparer)"/> for the
list.
</summary>
<param name="list">The first object to compare for structural equality.</param>
<param name="other">The other object to compare for structural equality.</param>
<param name="comparer">The comparer that is passed to <see cref="M:System.Collections.IStructuralEquatable.Equals(System.Object,System.Collections.IEqualityComparer)"/>.</param>
<returns><c>true</c> if the specified lists are equal; otherwise, <c>false</c>.</returns>
<exception cref="T:System.ArgumentNullException">If <paramref name="comparer"/> is <c>null</c>.</exception>
</member>
<member name="M:J2N.Collections.Generic.ListEqualityComparer`1.GetHashCode(System.Collections.Generic.IList{`0},System.Collections.IEqualityComparer)">
<summary>
Returns the hash code of the specified <paramref name="list"/>. The hash code is calculated by
taking each nested element's hash code into account.
<para/>
Usage Note: This overload can be used in a collection of <see cref="T:System.Collections.Generic.IList`1"/> to
implement <see cref="M:System.Collections.IStructuralEquatable.GetHashCode(System.Collections.IEqualityComparer)"/> for the
list.
</summary>
<param name="list">The list to calculate the hash code for.</param>
<param name="comparer">The comparer that is passed to <see cref="M:System.Collections.IStructuralEquatable.GetHashCode(System.Collections.IEqualityComparer)"/>.</param>
<returns>The hash code of <paramref name="list"/>.</returns>
<exception cref="T:System.ArgumentNullException">If <paramref name="comparer"/> is <c>null</c>.</exception>
</member>
<member name="T:J2N.Collections.Generic.NonRandomizedStringEqualityComparer">
<summary>
NonRandomizedStringEqualityComparer is the comparer used by default with the Dictionary&lt;string,...&gt;
We use NonRandomizedStringEqualityComparer as default comparer as it doesnt use the randomized string hashing which
keeps the performance not affected till we hit collision threshold and then we switch to the comparer which is using
randomized string hashing.
</summary>
</member>
<member name="T:J2N.Collections.Generic.PriorityQueue`1">
<summary>
A <see cref="T:J2N.Collections.Generic.PriorityQueue`1"/> holds elements on a priority heap, which orders the elements
according to their natural order or according to the comparator specified at
construction time. If the queue uses natural ordering, only elements that are
comparable are permitted to be inserted into the queue.
<para/>
The least element of the specified ordering is stored at the head of the
queue and the greatest element is stored at the tail of the queue.
<para/>
A <see cref="T:J2N.Collections.Generic.PriorityQueue`1"/> is not synchronized.
</summary>
<typeparam name="T">Type of elements.</typeparam>
</member>
<member name="M:J2N.Collections.Generic.PriorityQueue`1.#ctor">
<summary>
Constructs a priority queue with an initial capacity of <c>11</c>. Ordering
is determined by J2N's default <see cref="P:J2N.Collections.Generic.Comparer`1.Default"/>.
</summary>
</member>
<member name="M:J2N.Collections.Generic.PriorityQueue`1.#ctor(System.Int32)">
<summary>
Constructs a priority queue with the specified capacity. Ordering
is determined by J2N's default <see cref="P:J2N.Collections.Generic.Comparer`1.Default"/>.
</summary>
<param name="capacity">Initial capacity.</param>
<exception cref="T:System.ArgumentOutOfRangeException"><paramref name="capacity"/> is less than 1.</exception>
</member>
<member name="M:J2N.Collections.Generic.PriorityQueue`1.#ctor(System.Int32,System.Collections.Generic.IComparer{`0})">
<summary>
Creates a <see cref="T:J2N.Collections.Generic.PriorityQueue`1"/> with the specified initial capacity
that orders its elements according to the specified comparer.
</summary>
<param name="capacity">The initial capacity for this priority queue.</param>
<param name="comparer">
The <see cref="T:System.Collections.Generic.IComparer`1"/> that will be used to order this
priority queue. If <c>null</c>, <typeparamref name="T"/> must implement <see cref="T:System.IComparable`1"/>
or an <see cref="T:System.InvalidOperationException"/> will be thrown when attempting to add an item.
</param>
<exception cref="T:System.ArgumentOutOfRangeException"><paramref name="capacity"/> is less than 1.</exception>
</member>
<member name="M:J2N.Collections.Generic.PriorityQueue`1.#ctor(System.Int32,System.Collections.Generic.IComparer{`0},System.Collections.Generic.IEqualityComparer{`0})">
<summary>
Creates a <see cref="T:J2N.Collections.Generic.PriorityQueue`1"/> with the specified initial capacity
that orders its elements according to the specified comparer.
</summary>
<param name="capacity">The initial capacity for this priority queue.</param>
<param name="comparer">
The <see cref="T:System.Collections.Generic.IComparer`1"/> that will be used to order this
priority queue. If <c>null</c>, <typeparamref name="T"/> must implement <see cref="T:System.IComparable`1"/>
or an <see cref="T:System.InvalidOperationException"/> will be thrown when attempting to add an item.
</param>
<param name="equalityComparer">The equality comparer used to locate items in the queue. If <c>null</c>,
J2N's default <see cref="P:J2N.Collections.Generic.EqualityComparer`1.Default"/> is used.</param>
<exception cref="T:System.ArgumentOutOfRangeException"><paramref name="capacity"/> is less than 1.</exception>
</member>
<member name="M:J2N.Collections.Generic.PriorityQueue`1.#ctor(System.Collections.Generic.IComparer{`0})">
<summary>
Constructs a priority queue with capacity of <c>11</c> and the specified comparer.
</summary>
<param name="comparer">
The <see cref="T:System.Collections.Generic.IComparer`1"/> that will be used to order this
priority queue. If <c>null</c>, <typeparamref name="T"/> must implement <see cref="T:System.IComparable`1"/>
or an <see cref="T:System.InvalidOperationException"/> will be thrown when attempting to add an item.
</param>
</member>
<member name="M:J2N.Collections.Generic.PriorityQueue`1.#ctor(System.Collections.Generic.IComparer{`0},System.Collections.Generic.IEqualityComparer{`0})">
<summary>
Constructs a priority queue with capacity of <c>11</c> and the specified comparer.
</summary>
<param name="comparer">
The <see cref="T:System.Collections.Generic.IComparer`1"/> that will be used to order this
priority queue. If <c>null</c>, <typeparamref name="T"/> must implement <see cref="T:System.IComparable`1"/>
or an <see cref="T:System.InvalidOperationException"/> will be thrown when attempting to add an item.
</param>
<param name="equalityComparer">The equality comparer used to locate items in the queue. If <c>null</c>,
J2N's default <see cref="P:J2N.Collections.Generic.EqualityComparer`1.Default"/> is used.</param>
</member>
<member name="M:J2N.Collections.Generic.PriorityQueue`1.#ctor(System.Collections.Generic.IEnumerable{`0})">
<summary>
Creates a <see cref="T:J2N.Collections.Generic.PriorityQueue`1"/> containing the elements in the
specified collection. If the specified collection is an instance of
a <see cref="T:J2N.Collections.Generic.SortedSet`1"/> or is another <see cref="T:J2N.Collections.Generic.PriorityQueue`1"/>, this
priority queue will be ordered using the same <see cref="T:System.Collections.Generic.IComparer`1"/>.
Otherwise, this priority queue will be ordered according to the
<see cref="T:System.IComparable`1"/> natural ordering of its elements.
</summary>
<param name="collection">Collection to be inserted into priority queue.</param>
<see cref="T:System.ArgumentNullException">If the specified collection or any
of its elements are <c>null</c>.</see>
<exception cref="T:System.InvalidOperationException">
The collection is a <see cref="T:J2N.Collections.Generic.SortedSet`1"/> or a <see cref="T:J2N.Collections.Generic.PriorityQueue`1"/> and does not provide an <see cref="T:System.Collections.Generic.IComparer`1"/> instance
and <typeparamref name="T"/> does not implement <see cref="T:System.IComparable`1"/>.
<para/>
-or-
<para/>
The collection is neither a <see cref="T:J2N.Collections.Generic.SortedSet`1"/> or a <see cref="T:J2N.Collections.Generic.PriorityQueue`1"/> instance
and <typeparamref name="T"/> does not implement <see cref="T:System.IComparable`1"/>.
</exception>
</member>
<member name="M:J2N.Collections.Generic.PriorityQueue`1.#ctor(System.Collections.Generic.IEnumerable{`0},System.Collections.Generic.IEqualityComparer{`0})">
<summary>
Creates a <see cref="T:J2N.Collections.Generic.PriorityQueue`1"/> containing the elements in the
specified collection, comparer and equality comparer.
If the specified collection is an instance of
a <see cref="T:J2N.Collections.Generic.SortedSet`1"/> or is another <see cref="T:J2N.Collections.Generic.PriorityQueue`1"/>, this
priority queue will be ordered using the same <see cref="T:System.Collections.Generic.IComparer`1"/>.
Otherwise, this priority queue will be ordered according to the
<see cref="T:System.IComparable`1"/> natural ordering of its elements.
</summary>
<param name="collection">Collection to be inserted into priority queue.</param>
<param name="equalityComparer">The equality comparer used to locate items in the queue. If <c>null</c>,
J2N's default <see cref="P:J2N.Collections.Generic.EqualityComparer`1.Default"/> is used.</param>
<exception cref="T:System.ArgumentNullException">If the specified collection or any
of its elements are <c>null</c>.</exception>
<exception cref="T:System.InvalidOperationException">
The collection is a <see cref="T:J2N.Collections.Generic.SortedSet`1"/> or a <see cref="T:J2N.Collections.Generic.PriorityQueue`1"/> and does not provide an <see cref="T:System.Collections.Generic.IComparer`1"/> instance
and <typeparamref name="T"/> does not implement <see cref="T:System.IComparable`1"/>.
<para/>
-or-
<para/>
The collection is neither a <see cref="T:J2N.Collections.Generic.SortedSet`1"/> or a <see cref="T:J2N.Collections.Generic.PriorityQueue`1"/> instance
and <typeparamref name="T"/> does not implement <see cref="T:System.IComparable`1"/>.
</exception>
</member>
<member name="M:J2N.Collections.Generic.PriorityQueue`1.#ctor(System.Collections.Generic.IEnumerable{`0},System.Collections.Generic.IComparer{`0},System.Collections.Generic.IEqualityComparer{`0})">
<summary>
Creates a <see cref="T:J2N.Collections.Generic.PriorityQueue`1"/> containing the elements in the
specified collection, comparer and equality comparer.
If <paramref name="comparer"/> is <c>null</c>, this priority queue will be ordered according to the
<see cref="T:System.IComparable`1"/> natural ordering of its elements.
</summary>
<param name="collection">Collection to be inserted into priority queue.</param>
<param name="comparer">
The <see cref="T:System.Collections.Generic.IComparer`1"/> that will be used to order this
priority queue. If <c>null</c>, <typeparamref name="T"/> must implement <see cref="T:System.IComparable`1"/>
or an <see cref="T:System.InvalidOperationException"/> will be thrown when attempting to add an item.
</param>
<param name="equalityComparer">The equality comparer used to locate items in the queue. If <c>null</c>,
J2N's default <see cref="P:J2N.Collections.Generic.EqualityComparer`1.Default"/> is used.</param>
<exception cref="T:System.ArgumentNullException">If the specified collection or any
of its elements are <c>null</c>.</exception>
<exception cref="T:System.InvalidOperationException">
The collection is a <see cref="T:J2N.Collections.Generic.SortedSet`1"/> or a <see cref="T:J2N.Collections.Generic.PriorityQueue`1"/> and does not provide an <see cref="T:System.Collections.Generic.IComparer`1"/> instance
and <typeparamref name="T"/> does not implement <see cref="T:System.IComparable`1"/>.
<para/>
-or-
<para/>
The collection is neither a <see cref="T:J2N.Collections.Generic.SortedSet`1"/> or a <see cref="T:J2N.Collections.Generic.PriorityQueue`1"/> instance
and <typeparamref name="T"/> does not implement <see cref="T:System.IComparable`1"/>.
</exception>
</member>
<member name="M:J2N.Collections.Generic.PriorityQueue`1.GetEnumerator">
<summary>
Gets the enumerator of the priority queue, which will not return elements
in any specified ordering.
</summary>
<returns>The enumerator of the priority queue.</returns>
<remarks>
Returned enumerator does not iterate elements in sorted order.</remarks>
</member>
<member name="P:J2N.Collections.Generic.PriorityQueue`1.Count">
<summary>
Gets the size of the priority queue. If the size of the queue is greater
than the <see cref="F:System.Int32.MaxValue"/>, then it returns <see cref="F:System.Int32.MaxValue"/>.
</summary>
</member>
<member name="M:J2N.Collections.Generic.PriorityQueue`1.Clear">
<summary>
Removes all of the elements from this priority queue.
</summary>
</member>
<member name="M:J2N.Collections.Generic.PriorityQueue`1.Enqueue(`0)">
<summary>
Inserts the specified element into this priority queue.
</summary>
<param name="item">The object to add to the <see cref="T:J2N.Collections.Generic.PriorityQueue`1"/>.
The value can be <c>null</c> for reference types.</param>
<returns>always <c>true</c></returns>
<exception cref="T:System.InvalidOperationException">The specified element cannot be
compared with elements currently in this priority queue
according to the priority queue's ordering.</exception>
<remarks>This is similar to the Offer() method in the JDK.</remarks>
</member>
<member name="M:J2N.Collections.Generic.PriorityQueue`1.Dequeue">
<summary>
Removes and returns the object at the beginning of the queue.
</summary>
<returns>The object that is removed from the beginning of the queue.</returns>
<exception cref="T:System.InvalidOperationException">The <see cref="T:J2N.Collections.Generic.PriorityQueue`1"/> is empty.</exception>
<remarks>This is similar to the Remove() method in the JDK.</remarks>
</member>
<member name="M:J2N.Collections.Generic.PriorityQueue`1.TryDequeue(`0@)">
<summary>
Removes and returns the object at the beginning of the queue.
</summary>
<param name="result">The output head of the queue, or <c>null</c> if <see cref="P:J2N.Collections.Generic.PriorityQueue`1.Count"/> is 0.</param>
<returns><c>true</c> if the operation was successful; otherwise, <c>false</c>.</returns>
<remarks>This is similar in behavior to the Poll() method in the JDK.</remarks>
</member>
<member name="M:J2N.Collections.Generic.PriorityQueue`1.Peek">
<summary>
Retrieves, but does not remove, the beginning of this queue.
<para/>
This implementation throws an <see cref="T:System.InvalidOperationException"/> if
the queue is empty.
</summary>
<returns>The beginning of this queue.</returns>
<exception cref="T:System.InvalidOperationException">The <see cref="T:J2N.Collections.Generic.PriorityQueue`1"/> is empty.</exception>
<remarks>This is similar to the Element() method in the JDK.</remarks>
</member>
<member name="M:J2N.Collections.Generic.PriorityQueue`1.TryPeek(`0@)">
<summary>
Tries to get but does not remove the beginning of the queue.
</summary>
<param name="result">The output beginning of the queue, or <c>null</c> if <see cref="P:J2N.Collections.Generic.PriorityQueue`1.Count"/> is 0.</param>
<returns><c>true</c> if the operation was successful; otherwise, <c>false</c>.</returns>
<remarks>This is similar in behavior to the Peek() method in the JDK.</remarks>
</member>
<member name="P:J2N.Collections.Generic.PriorityQueue`1.Comparer">
<summary>
Gets the <see cref="T:System.Collections.Generic.IComparer`1"/> used to order the elements in this
queue, or <c>null</c> if this queue is sorted according to
the <see cref="T:System.IComparable`1"/> natural ordering of its elements.
</summary>
</member>
<member name="P:J2N.Collections.Generic.PriorityQueue`1.EqualityComparer">
<summary>
Gets the <see cref="T:System.Collections.Generic.IEqualityComparer`1"/> used to test elements in this
queue for equality.
</summary>
</member>
<member name="M:J2N.Collections.Generic.PriorityQueue`1.Remove(`0)">
<summary>
Removes the specified object from the priority queue.
</summary>
<param name="item">the object to be removed.</param>
<returns><c>true</c> if the object was in the priority queue, <c>false</c> if the object</returns>
</member>
<member name="M:J2N.Collections.Generic.PriorityQueue`1.Add(`0)">
<summary>
Adds the specified object to the priority queue.
</summary>
<param name="item">the object to be added.</param>
<exception cref="T:System.InvalidCastException">The specified element cannot be
compared with elements currently in this priority queue
according to the priority queue's ordering.</exception>
<exception cref="T:System.ArgumentNullException"><paramref name="item"/> is <c>null</c>.</exception>
<exception cref="T:System.InvalidOperationException">The element is not allowed to be added to the queue.
This can only happen if <see cref="M:J2N.Collections.Generic.PriorityQueue`1.Enqueue(`0)"/> is overridden and returns <c>false</c>.</exception>
</member>
<member name="M:J2N.Collections.Generic.PriorityQueue`1.RemoveAt(System.Int32)">
<summary>
Removes the element at the specified <paramref name="index"/> from queue.
<para/>
Normally this method leaves the elements at up to <paramref name="index"/>-1,
inclusive, untouched. Under these circumstances, it returns
<c>null</c>. Occasionally, in order to maintain the heap invariant,
it must swap a later element of the list with one earlier than
<paramref name="index"/>. Under these circumstances, this method returns the element
that was previously at the end of the list and is now at some
position before <paramref name="index"/>.
</summary>
</member>
<member name="M:J2N.Collections.Generic.PriorityQueue`1.AddRange(System.Collections.Generic.IEnumerable{`0})">
<summary>
Adds the elements of the specified collection to the <see cref="T:J2N.Collections.Generic.PriorityQueue`1"/>.
</summary>
<param name="collection">The collection whose elements should be added to the <see cref="T:J2N.Collections.Generic.PriorityQueue`1"/>.
The collection itself cannot be <c>null</c>, but it can contain elements that are <c>null</c>, if type
<typeparamref name="T"/> is a reference type.</param>
<returns><c>true</c> if 1 or more items are added to the <see cref="T:J2N.Collections.Generic.PriorityQueue`1"/>; othewise, <c>false</c>.</returns>
<exception cref="T:System.ArgumentNullException"><paramref name="collection"/> is <c>null</c>.</exception>
<exception cref="T:System.ArgumentException"><paramref name="collection"/> is the same instance as this collection.</exception>
</member>
<member name="M:J2N.Collections.Generic.PriorityQueue`1.Contains(`0)">
<summary>
Returns <c>true</c> if this queue contains the specified element.
More formally, returns <c>true</c> if and only if this queue contains
at least one element <paramref name="item"/> such that <c>o.Equals(item)</c>.
</summary>
<param name="item">The object to locate in the priority queue</param>
<returns><c>true</c> if item is found in the priority queue; otherwise, <c>false</c>.</returns>
</member>
<member name="M:J2N.Collections.Generic.PriorityQueue`1.CopyTo(`0[],System.Int32)">
<summary>
Copies the elements of a <see cref="T:J2N.Collections.Generic.PriorityQueue`1"/> collection to an array.
</summary>
<param name="array">The one-dimensional array that is the destination of
the elements copied from the <see cref="T:J2N.Collections.Generic.PriorityQueue`1"/> object.
The array must have zero-based indexing.</param>
<param name="arrayIndex">The zero-based index in <paramref name="array"/> at which copying begins.</param>
<exception cref="T:System.ArgumentNullException"><paramref name="array"/> is <c>null</c>.</exception>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="arrayIndex"/> is less than 0.
</exception>
<exception cref="T:System.ArgumentException">
<paramref name="arrayIndex"/> is greater than the length of the destination <paramref name="array"/>.
</exception>
<remarks>
It is not guaranteed that items will be copied in the sorted order.
<para/>
Calling this method is an O(<c>n</c>) operation, where <c>n</c> is <see cref="P:J2N.Collections.Generic.PriorityQueue`1.Count"/>.
</remarks>
</member>
<member name="P:J2N.Collections.Generic.PriorityQueue`1.System#Collections#Generic#ICollection{T}#IsReadOnly">
<summary>
Gets a value indicating whether the collection is read-only.
</summary>
<remarks>
For priority queue this property returns <c>false</c>.
</remarks>
</member>
<member name="M:J2N.Collections.Generic.PriorityQueue`1.System#Collections#IEnumerable#GetEnumerator">
<summary>
Returns an enumerator that iterates through the collection.
</summary>
<returns>Enumerator</returns>
<remarks>
Returned enumerator does not iterate elements in sorted order.</remarks>
</member>
<member name="M:J2N.Collections.Generic.PriorityQueue`1.ToString(System.String,System.IFormatProvider)">
<summary>
Returns a string that represents the current set using the specified
<paramref name="format"/> and <paramref name="formatProvider"/>.
</summary>
<returns>A string that represents the current set.</returns>
<exception cref="T:System.ArgumentNullException"><paramref name="format"/> is <c>null</c>.</exception>
<exception cref="T:System.FormatException">
<paramref name="format"/> is invalid.
<para/>
-or-
<para/>
The index of a format item is not zero.
</exception>
</member>
<member name="M:J2N.Collections.Generic.PriorityQueue`1.ToString">
<summary>
Returns a string that represents the current list using
<see cref="P:J2N.Text.StringFormatter.CurrentCulture"/>.
<para/>
The presentation has a specific format. It is enclosed by square
brackets ("[]"). Elements are separated by ', ' (comma and space).
</summary>
<returns>A string that represents the current list.</returns>
</member>
<member name="M:J2N.Collections.Generic.PriorityQueue`1.ToString(System.IFormatProvider)">
<summary>
Returns a string that represents the current list using the specified
<paramref name="formatProvider"/>.
</summary>
<returns>A string that represents the current list.</returns>
<exception cref="T:System.ArgumentNullException"><paramref name="formatProvider"/> is <c>null</c>.</exception>
</member>
<member name="M:J2N.Collections.Generic.PriorityQueue`1.ToString(System.String)">
<summary>
Returns a string that represents the current list using the specified
<paramref name="format"/> and <see cref="P:J2N.Text.StringFormatter.CurrentCulture"/>.
<para/>
The presentation has a specific format. It is enclosed by square
brackets ("[]"). Elements are separated by ', ' (comma and space).
</summary>
<returns>A string that represents the current list.</returns>
<exception cref="T:System.ArgumentNullException"><paramref name="format"/> is <c>null</c>.</exception>
<exception cref="T:System.FormatException">
<paramref name="format"/> is invalid.
<para/>
-or-
<para/>
The index of a format item is not zero.
</exception>
</member>
<member name="T:J2N.Collections.Generic.RandomizedStringEqualityComparer">
<summary>
A randomized <see cref="T:J2N.Collections.Generic.EqualityComparer`1"/> which uses a different seed on each
construction as a general good hygiene + defense-in-depth mechanism. This implementation
*does not* need to stay in sync with string.GetHashCode, which for stability
is required to use an app-global seed.
</summary>
</member>
<member name="T:J2N.Collections.Generic.SetEqualityComparer`1">
<summary>
Provides comparers that can be used to compare <see cref="T:System.Collections.Generic.ISet`1"/>
implementations for structural equality using rules similar to those
in the JDK's AbstractSet class.
</summary>
<typeparam name="T"></typeparam>
</member>
<member name="P:J2N.Collections.Generic.SetEqualityComparer`1.Default">
<summary>
Gets a <see cref="T:J2N.Collections.Generic.SetEqualityComparer`1"/> object that compares
<see cref="T:System.Collections.Generic.ISet`1"/> implementations for structural equality
using rules similar to those in Java. Nested elemements that implement
<see cref="T:System.Collections.IStructuralEquatable"/> are also compared.
</summary>
</member>
<member name="P:J2N.Collections.Generic.SetEqualityComparer`1.Aggressive">
<summary>
Gets a <see cref="T:J2N.Collections.Generic.SetEqualityComparer`1"/> object that compares
<see cref="T:System.Collections.Generic.ISet`1"/> implementations for structural equality
using rules similar to those in Java. Nested elemements are also compared.
<para/>
If a nested object implements <see cref="T:System.Collections.IStructuralEquatable"/>, it will be used
to compare structural equality. If not, a reflection call is made to determine
if the object can be converted to <see cref="T:System.Collections.Generic.IList`1"/>, <see cref="T:System.Collections.Generic.ISet`1"/>, or
<see cref="T:System.Collections.Generic.IDictionary`2"/> and then the object is converted to a <c>dynamic</c>
using <see cref="M:System.Convert.ChangeType(System.Object,System.Type)"/>. The compiler then uses the converted type
to decide which comparison rules to use using method overloading.
<para/>
Usage Note: This comparer can be used to patch standard built-in .NET collections for structural equality,
but it is slower to use built-in .NET collections than ensuring all nested types
implement <see cref="T:System.Collections.IStructuralEquatable"/>. This mode only supports types that
implement <see cref="T:System.Collections.IStructuralEquatable"/>, <see cref="T:System.Collections.Generic.IList`1"/>,
<see cref="T:System.Collections.Generic.ISet`1"/>, or <see cref="T:System.Collections.Generic.IDictionary`2"/>. All other types will
be compared using <see cref="P:J2N.Collections.Generic.EqualityComparer`1.Default"/>.
</summary>
</member>
<member name="M:J2N.Collections.Generic.SetEqualityComparer`1.Equals(System.Collections.Generic.ISet{`0},System.Collections.Generic.ISet{`0})">
<summary>
Compares two sets for structural equality using rules similar to those in
the JDK's AbstactSet class. Two sets are considered equal if they contain
the same elements (in any order).
<para/>
This method is similar in behavior to <see cref="M:System.Collections.Generic.HashSet`1.SetEquals(System.Collections.Generic.IEnumerable{`0})"/>,
with the exception that both collections must implement <see cref="T:System.Collections.Generic.ISet`1"/> in order to be equal.
</summary>
<param name="setA">The first set to compare.</param>
<param name="setB">The second set to compare.</param>
<returns><c>true</c> if the specified sets are equal; otherwise, <c>false</c>.</returns>
</member>
<member name="M:J2N.Collections.Generic.SetEqualityComparer`1.GetHashCode(System.Collections.Generic.ISet{`0})">
<summary>
Returns the hash code for this set. Two sets which are equal must return
the same value. This implementation calculates the hash code by adding
each element's hash code as defined by <see cref="P:J2N.Collections.Generic.EqualityComparer`1.Default"/>.
</summary>
<param name="set">The set to calculate the hash code for.</param>
<returns>The hash code of <paramref name="set"/>.</returns>
</member>
<member name="M:J2N.Collections.Generic.SetEqualityComparer`1.Equals(System.Object,System.Object)">
<summary>
Compares two objects for structural equality using rules similar to those in
the JDK's AbstactSet class. Two sets are considered equal if they contain
the same elements (in any order).
<para/>
This method is similar in behavior to <see cref="M:System.Collections.Generic.HashSet`1.SetEquals(System.Collections.Generic.IEnumerable{`0})"/>,
with the exception that both collections must implement <see cref="T:System.Collections.Generic.ISet`1"/> in order to be equal.
</summary>
<param name="a">The first set to compare.</param>
<param name="b">The second set to compare.</param>
<returns><c>true</c> if the specified objects both implement <see cref="T:System.Collections.Generic.ISet`1"/> and contain the same elements; otherwise, <c>false</c>.</returns>
</member>
<member name="M:J2N.Collections.Generic.SetEqualityComparer`1.GetHashCode(System.Object)">
<summary>
Returns the hash code for this set. Two sets which are equal must return
the same value. This implementation calculates the hash code by adding
each element's hash code as defined by <see cref="P:J2N.Collections.Generic.EqualityComparer`1.Default"/>.
</summary>
<param name="obj">The set to calculate the hash code for.</param>
<returns>The hash code of <paramref name="obj"/>.</returns>
</member>
<member name="M:J2N.Collections.Generic.SetEqualityComparer`1.TryGetSetEqualityComparer(System.Collections.IEqualityComparer,J2N.Collections.Generic.SetEqualityComparer{`0}@)">
<summary>
Tries to convert the specified <paramref name="comparer"/> to a strongly typed <see cref="T:J2N.Collections.Generic.SetEqualityComparer`1"/>.
</summary>
<param name="comparer">The comparer to convert to a <see cref="T:J2N.Collections.Generic.SetEqualityComparer`1"/>, if possible.</param>
<param name="equalityComparer">The result <see cref="T:J2N.Collections.Generic.SetEqualityComparer`1"/> of the conversion.</param>
<returns><c>true</c> if the conversion was successful; otherwise, <c>false</c>.</returns>
</member>
<member name="M:J2N.Collections.Generic.SetEqualityComparer`1.Equals(System.Collections.Generic.ISet{`0},System.Object,System.Collections.IEqualityComparer)">
<summary>
Compares two objects for structural equality using rules similar to those in
the JDK's AbstactSet class. Two sets are considered equal when they both contain
the same objects (in any order).
<para/>
Usage Note: This overload can be used in a collection of <see cref="T:System.Collections.Generic.ISet`1"/> to
implement <see cref="M:System.Collections.IStructuralEquatable.Equals(System.Object,System.Collections.IEqualityComparer)"/> for the
set.
</summary>
<param name="set">The first object to compare for structural equality.</param>
<param name="other">The other object to compare for structural equality.</param>
<param name="comparer">The comparer that is passed to <see cref="M:System.Collections.IStructuralEquatable.Equals(System.Object,System.Collections.IEqualityComparer)"/>.</param>
<returns><c>true</c> if the specified sets are equal; otherwise, <c>false</c>.</returns>
<exception cref="T:System.ArgumentNullException">If <paramref name="comparer"/> is <c>null</c>.</exception>
</member>
<member name="M:J2N.Collections.Generic.SetEqualityComparer`1.GetHashCode(System.Collections.Generic.ISet{`0},System.Collections.IEqualityComparer)">
<summary>
Returns the hash code of the specified <paramref name="set"/>. The hash code is calculated by
taking each nested element's hash code into account.
<para/>
Usage Note: This overload can be used in a collection of <see cref="T:System.Collections.Generic.ISet`1"/> to
implement <see cref="M:System.Collections.IStructuralEquatable.GetHashCode(System.Collections.IEqualityComparer)"/> for the
set.
</summary>
<param name="set">The set to calculate the hash code for.</param>
<param name="comparer">The comparer that is passed to <see cref="M:System.Collections.IStructuralEquatable.GetHashCode(System.Collections.IEqualityComparer)"/>.</param>
<returns>The hash code of <paramref name="set"/>.</returns>
<exception cref="T:System.ArgumentNullException">If <paramref name="comparer"/> is <c>null</c>.</exception>
</member>
<member name="T:J2N.Collections.Generic.SortedDictionary`2">
<summary>
Represents a collection of key/value pairs that are sorted on the key.
<para/>
<see cref="T:J2N.Collections.Generic.SortedDictionary`2"/> differs from <see cref="T:System.Collections.Generic.SortedDictionary`2"/>
in the following ways:
<list type="bullet">
<item><description>
If <typeparamref name="TKey"/> is <see cref="T:System.Nullable`1"/> or a reference type, the key can be
<c>null</c> without throwing an exception.
</description></item>
<item><description>
The <see cref="M:J2N.Collections.Generic.SortedDictionary`2.Equals(System.Object)"/> and <see cref="M:J2N.Collections.Generic.SortedDictionary`2.GetHashCode"/> methods are implemented to compare dictionaries
using structural equality by default. Also, <see cref="T:System.Collections.IStructuralEquatable"/> is implemented so the
default behavior can be overridden.
</description></item>
<item><description>
The <see cref="M:J2N.Collections.Generic.SortedDictionary`2.ToString"/> method is overridden to list the contents of the dictionary
in the current culture by default. Also, <see cref="T:System.IFormattable"/> is implemented so the
default behavior can be overridden.
</description></item>
<item><description>
Uses <see cref="P:J2N.Collections.Generic.Comparer`1.Default"/> by default, which provides some specialized equality comparisons
for specific types to match the behavior of Java.
</description></item>
</list>
<para/>
Usage Note: This class is intended to be a direct replacement for <see cref="T:System.Collections.Generic.SortedDictionary`2"/> in order
to provide default structural equality and formatting behavior similar to Java. Note that the <see cref="M:J2N.Collections.Generic.SortedDictionary`2.ToString"/>
method uses the current culture by default to behave like other components in .NET. To exactly match Java's culture-neutral behavior,
call <c>ToString(StringFormatter.InvariantCulture)</c>.
</summary>
<typeparam name="TKey">The type of the keys in the dictionary.</typeparam>
<typeparam name="TValue">The type of the values in the dictionary.</typeparam>
</member>
<member name="M:J2N.Collections.Generic.SortedDictionary`2.#ctor">
<summary>
Initializes a new instance of the <see cref="T:J2N.Collections.Generic.SortedDictionary`2"/> class that is
empty and uses J2N's default <see cref="T:System.Collections.Generic.IComparer`1"/> implementation for the key type.
</summary>
<remarks>
Every key in a <see cref="T:J2N.Collections.Generic.SortedDictionary`2"/> must be unique according to the default comparer.
<para/>
<see cref="T:J2N.Collections.Generic.SortedDictionary`2"/> requires a comparer implementation to perform key comparisons.
This constructor uses J2N's default generic equality comparer <see cref="P:J2N.Collections.Generic.Comparer`1.Default"/>.
If type <typeparamref name="TKey"/> implements the <see cref="T:System.IComparable`1"/> generic interface, the
default comparer uses that implementation. Alternatively, you can specify an implementation of the
<see cref="T:System.Collections.Generic.IComparer`1"/> generic interface by using a constructor that accepts a comparer parameter.
<para/>
This constructor is an O(1) operation.
</remarks>
</member>
<member name="M:J2N.Collections.Generic.SortedDictionary`2.#ctor(System.Collections.Generic.IDictionary{`0,`1})">
<summary>
Initializes a new instance of the <see cref="T:J2N.Collections.Generic.SortedDictionary`2"/> class that contains
elements copied from the specified <see cref="T:System.Collections.Generic.IDictionary`2"/> and uses J2N's default
<see cref="T:System.Collections.Generic.IComparer`1"/> implementation for the key type.
</summary>
<param name="dictionary">The <see cref="T:System.Collections.Generic.IDictionary`2"/> whose elements are copied
to the new <see cref="T:J2N.Collections.Generic.SortedDictionary`2"/>.</param>
<exception cref="T:System.ArgumentNullException"><paramref name="dictionary"/> is <c>null</c>.</exception>
<exception cref="T:System.ArgumentException"><paramref name="dictionary"/> contains one or more duplicate keys.</exception>
<remarks>
Every key in a <see cref="T:J2N.Collections.Generic.SortedDictionary`2"/> must be unique according to the default
comparer; therefore, every key in the source dictionary must also be unique according to the default comparer.
<para/>
<see cref="T:J2N.Collections.Generic.SortedDictionary`2"/> requires a comparer implementation to perform key comparisons.
This constructor uses J2N's default generic equality comparer, <see cref="P:J2N.Collections.Generic.Comparer`1.Default"/>. If type <typeparamref name="TKey"/>
implements the <see cref="T:System.IComparable`1"/> generic interface, the default comparer uses that implementation
(except for some types that have been overridden to match Java's default behavior).
Alternatively, you can specify an implementation of the <see cref="T:System.Collections.Generic.IComparer`1"/> generic interface by using
a constructor that accepts a comparer parameter.
<para/>
This constructor is an O(<c>n</c> log <c>n</c>) operation, where <c>n</c> is the number of elements in <paramref name="dictionary"/>.
</remarks>
</member>
<member name="M:J2N.Collections.Generic.SortedDictionary`2.#ctor(System.Collections.Generic.IDictionary{`0,`1},System.Collections.Generic.IComparer{`0})">
<summary>
Initializes a new instance of the <see cref="T:J2N.Collections.Generic.SortedDictionary`2"/> class that contains
elements copied from the specified <see cref="T:System.Collections.Generic.IDictionary`2"/> and uses the specified
<see cref="T:System.Collections.Generic.IComparer`1"/> implementation to compare keys.
</summary>
<param name="dictionary">The <see cref="T:System.Collections.Generic.IDictionary`2"/> whose elements are copied
to the new <see cref="T:J2N.Collections.Generic.SortedDictionary`2"/>.</param>
<param name="comparer">The <see cref="T:System.Collections.Generic.IComparer`1"/> implementation to use when comparing
keys, or <c>null</c> to use J2N's default <see cref="T:J2N.Collections.Generic.Comparer`1"/> for the type of the key.</param>
<exception cref="T:System.ArgumentNullException"><paramref name="dictionary"/> is <c>null</c>.</exception>
<exception cref="T:System.ArgumentException"><paramref name="dictionary"/> contains one or more duplicate keys.</exception>
<remarks>
Every key in a <see cref="T:J2N.Collections.Generic.SortedDictionary`2"/> must be unique according to the specified comparer;
therefore, every key in the source dictionary must also be unique according to the specified comparer.
<para/>
<see cref="T:J2N.Collections.Generic.SortedDictionary`2"/> requires a comparer implementation to perform key comparisons.
If <paramref name="comparer"/> is <c>null</c>, this constructor uses J2N's default generic equality comparer,
<see cref="P:J2N.Collections.Generic.Comparer`1.Default"/>. If type <typeparamref name="TKey"/> implements the <see cref="T:System.IComparable`1"/>
generic interface, the default comparer uses that implementation (except for some types that have been
overridden to match Java's default behavior).
<para/>
This constructor is an O(<c>n</c> log <c>n</c>) operation, where <c>n</c> is the number of elements in dictionary.
</remarks>
</member>
<member name="M:J2N.Collections.Generic.SortedDictionary`2.#ctor(System.Collections.Generic.IComparer{`0})">
<summary>
Initializes a new instance of the <see cref="T:J2N.Collections.Generic.SortedDictionary`2"/> class that
is empty and uses the specified <see cref="T:System.Collections.Generic.IComparer`1"/> implementation to compare keys.
</summary>
<param name="comparer">The <see cref="T:System.Collections.Generic.IComparer`1"/> implementation to use when comparing
keys, or <c>null</c> to use J2N's default <see cref="T:J2N.Collections.Generic.Comparer`1"/> for the type of the key.</param>
<remarks>
Every key in a <see cref="T:J2N.Collections.Generic.SortedDictionary`2"/> must be unique according to the specified comparer.
<para/>
<see cref="T:J2N.Collections.Generic.SortedDictionary`2"/> requires a comparer implementation to perform key comparisons.
If comparer is null, this constructor uses J2N's default generic equality comparer, <see cref="P:J2N.Collections.Generic.Comparer`1.Default"/>.
If type <typeparamref name="TKey"/> implements the <see cref="T:System.IComparable`1"/> generic interface, the
default comparer uses that implementation (except for some types that have been overridden to match Java's
default behavior).
</remarks>
</member>
<member name="M:J2N.Collections.Generic.SortedDictionary`2.AsReadOnly">
<summary>
Returns a read-only <see cref="T:J2N.Collections.ObjectModel.ReadOnlyDictionary`2"/> wrapper for the current collection.
</summary>
<returns>An object that acts as a read-only wrapper around the current <see cref="T:J2N.Collections.Generic.SortedDictionary`2"/>.</returns>
<remarks>
To prevent any modifications to the <see cref="T:J2N.Collections.Generic.SortedDictionary`2"/> object, expose it only through this wrapper.
A <see cref="T:J2N.Collections.ObjectModel.ReadOnlyDictionary`2"/> object does not expose methods that modify the collection. However,
if changes are made to the underlying <see cref="T:J2N.Collections.Generic.SortedDictionary`2"/> object, the read-only collection reflects those changes.
<para/>
This method is an O(1) operation.
</remarks>
</member>
<member name="P:J2N.Collections.Generic.SortedDictionary`2.Item(`0)">
<summary>
Gets or sets the value associated with the specified key. The key may be <c>null</c>.
</summary>
<param name="key">The key of the value to get or set.</param>
<returns>The value associated with the specified key. If the specified key
is not found, a get operation throws a <see cref="T:System.Collections.Generic.KeyNotFoundException"/>, and
a set operation creates a new element with the specified key.</returns>
<exception cref="T:System.Collections.Generic.KeyNotFoundException">The property is retrieved and <paramref name="key"/>
does not exist in the collection.</exception>
<remarks>
This property provides the ability to access a specific element in the collection by using
the following C# syntax: <c>myCollection[key]</c> (<c>myCollection(key)</c> in Visual Basic).
<para/>
You can also use the <see cref="P:J2N.Collections.Generic.SortedDictionary`2.Item(`0)"/> property to add new elements by setting the value of a key
that does not exist in the <see cref="T:J2N.Collections.Generic.SortedDictionary`2"/>; for example,
<c>myCollection["myNonexistentKey"] = myValue</c>. However, if the specified key already exists in
the <see cref="T:J2N.Collections.Generic.SortedDictionary`2"/>, setting the <see cref="P:J2N.Collections.Generic.SortedDictionary`2.Item(`0)"/> property overwrites
the old value. In contrast, the <see cref="M:J2N.Collections.Generic.SortedDictionary`2.Add(`0,`1)"/> method does not modify existing elements.
<para/>
Unlike the <see cref="T:System.Collections.Generic.SortedDictionary`2"/>, both keys and values can
be <c>null</c> if either <see cref="T:System.Nullable`1"/> or a reference type.
<para/>
The C# language uses the <see cref="P:J2N.Collections.Generic.SortedDictionary`2.Item(`0)"/> keyword to define the indexers instead of implementing the
<c>Item[TKey]</c> property. Visual Basic implements <c>Item[TKey]</c> as a default property, which provides
the same indexing functionality.
<para/>
Getting the value of this property is an O(log <c>n</c>) operation; setting the property is also
an O(log <c>n</c>) operation.
</remarks>
</member>
<member name="P:J2N.Collections.Generic.SortedDictionary`2.Count">
<summary>
Gets the number of key/value pairs contained in the <see cref="T:J2N.Collections.Generic.SortedDictionary`2"/>.
</summary>
<remarks>
Getting the value of this property is an O(1) operation.
</remarks>
</member>
<member name="P:J2N.Collections.Generic.SortedDictionary`2.Comparer">
<summary>
Gets the <see cref="T:System.Collections.Generic.IComparer`1"/> used to order the elements of the <see cref="T:J2N.Collections.Generic.SortedDictionary`2"/>.
</summary>
<remarks>
<see cref="T:J2N.Collections.Generic.SortedDictionary`2"/> requires a comparer implementation to perform key comparisons.
You can specify an implementation of the <see cref="T:System.Collections.Generic.IComparer`1"/> generic interface by using a constructor
that accepts a comparer parameter. If you do not, J2N's default generic equality comparer, <see cref="P:J2N.Collections.Generic.Comparer`1.Default"/>,
is used. If type <typeparamref name="TKey"/> implements the <see cref="T:System.IComparable`1"/> generic interface,
the default comparer uses that implementation (except for some types that have been overridden to match Java's
default behavior).
<para/>
Getting the value of this property is an O(1) operation.
</remarks>
</member>
<member name="P:J2N.Collections.Generic.SortedDictionary`2.Keys">
<summary>
Gets a collection containing the keys in the <see cref="T:J2N.Collections.Generic.SortedDictionary`2"/>.
</summary>
<remarks>
The keys in the <see cref="T:J2N.Collections.Generic.SortedDictionary`2.KeyCollection"/> are sorted according
to the <see cref="P:J2N.Collections.Generic.SortedDictionary`2.Comparer"/> property and are in the same order as the associated values in
the <see cref="T:J2N.Collections.Generic.SortedDictionary`2.ValueCollection"/> returned by the <see cref="P:J2N.Collections.Generic.SortedDictionary`2.Values"/> property.
<para/>
The returned <see cref="T:J2N.Collections.Generic.SortedDictionary`2.KeyCollection"/> is not a static copy; instead,
the <see cref="T:J2N.Collections.Generic.SortedDictionary`2.KeyCollection"/> refers back to the keys in the original
<see cref="T:J2N.Collections.Generic.SortedDictionary`2"/>. Therefore, changes to the <see cref="T:J2N.Collections.Generic.SortedDictionary`2"/>
continue to be reflected in the <see cref="T:J2N.Collections.Generic.SortedDictionary`2.KeyCollection"/>.
<para/>
Getting the value of this property is an O(1) operation.
</remarks>
</member>
<member name="P:J2N.Collections.Generic.SortedDictionary`2.Values">
<summary>
Gets a collection containing the values in the <see cref="T:J2N.Collections.Generic.SortedDictionary`2"/>.
</summary>
<remarks>
The values in the <see cref="T:J2N.Collections.Generic.SortedDictionary`2.ValueCollection"/> are sorted according to
the <see cref="P:J2N.Collections.Generic.SortedDictionary`2.Comparer"/> property, and are in the same order as the associated keys in the
<see cref="T:J2N.Collections.Generic.SortedDictionary`2.KeyCollection"/> returned by the <see cref="P:J2N.Collections.Generic.SortedDictionary`2.Keys"/> property.
<para/>
The returned <see cref="T:J2N.Collections.Generic.SortedDictionary`2.ValueCollection"/> is not a static copy;
instead, the <see cref="T:J2N.Collections.Generic.SortedDictionary`2.ValueCollection"/> refers back to the
values in the original <see cref="T:J2N.Collections.Generic.SortedDictionary`2"/>. Therefore, changes to
the <see cref="T:J2N.Collections.Generic.SortedDictionary`2"/> continue to be reflected in the
<see cref="T:J2N.Collections.Generic.SortedDictionary`2.ValueCollection"/>.
<para/>
Getting the value of this property is an O(1) operation.
</remarks>
</member>
<member name="M:J2N.Collections.Generic.SortedDictionary`2.Add(`0,`1)">
<summary>
Adds an element with the specified key and value into the <see cref="T:J2N.Collections.Generic.SortedDictionary`2"/>.
</summary>
<param name="key">The key of the element to add.</param>
<param name="value">The value of the element to add. The value can be <c>null</c> for reference types.</param>
<exception cref="T:System.ArgumentException">An element with the same key already exists
in the <see cref="T:J2N.Collections.Generic.SortedDictionary`2"/>.</exception>
<remarks>
You can also use the <see cref="P:J2N.Collections.Generic.SortedDictionary`2.Item(`0)"/> property to add new elements by setting the value of
a key that does not exist in the <see cref="T:J2N.Collections.Generic.SortedDictionary`2"/>; for example,
<c>myCollection["myNonexistentKey"] = myValue</c> (in Visual Basic, <c>myCollection("myNonexistantKey") = myValue</c>).
However, if the specified key already exists in the <see cref="T:J2N.Collections.Generic.SortedDictionary`2"/>, setting
the <see cref="P:J2N.Collections.Generic.SortedDictionary`2.Item(`0)"/> property overwrites the old value. In contrast, the <see cref="M:J2N.Collections.Generic.SortedDictionary`2.Add(`0,`1)"/>
method throws an exception if an element with the specified key already exists.
<para/>
Both keys and values can be <c>null</c> if the corresponding <typeparamref name="TKey"/> or
<typeparamref name="TValue"/> is <see cref="T:System.Nullable`1"/> or a reference type.
<para/>
This method is an O(log <c>n</c>) operation, where <c>n</c> is <see cref="P:J2N.Collections.Generic.SortedDictionary`2.Count"/>.
</remarks>
</member>
<member name="M:J2N.Collections.Generic.SortedDictionary`2.Clear">
<summary>
Removes all elements from the <see cref="T:J2N.Collections.Generic.SortedDictionary`2"/>.
</summary>
<remarks>
The <see cref="P:J2N.Collections.Generic.SortedDictionary`2.Count"/> property is set to 0, and references to other objects
from elements of the collection are also released.
<para/>
This method is an O(1) operation, since the root of the internal data structures
is simply released for garbage collection.
</remarks>
</member>
<member name="M:J2N.Collections.Generic.SortedDictionary`2.ContainsKey(`0)">
<summary>
Determines whether the <see cref="T:J2N.Collections.Generic.SortedDictionary`2"/> contains an
element with the specified key.
</summary>
<param name="key">The key to locate in the <see cref="T:J2N.Collections.Generic.SortedDictionary`2"/>. The key can be <c>null</c></param>
<returns><c>true</c> if the <see cref="T:J2N.Collections.Generic.SortedDictionary`2"/> contains an element
with the specified key; otherwise, <c>false</c>.</returns>
<remarks>This method is an O(log <c>n</c>) operation.</remarks>
</member>
<member name="M:J2N.Collections.Generic.SortedDictionary`2.ContainsValue(`1)">
<summary>
Determines whether the <see cref="T:J2N.Collections.Generic.SortedDictionary`2"/> contains an element with
the specified value.
</summary>
<param name="value">The value to locate in the <see cref="T:J2N.Collections.Generic.SortedDictionary`2"/>. The value can be <c>null</c>.</param>
<returns><c>true</c> if the <see cref="T:J2N.Collections.Generic.SortedDictionary`2"/> contains an element
with the specified value; otherwise, <c>false</c>.</returns>
<remarks>
This method determines equality using J2N's default equality comparer <see cref="P:J2N.Collections.Generic.EqualityComparer`1.Default"/>
for the value type <typeparamref name="TValue"/>.
<para/>
This method performs a linear search; therefore, the average execution time is proportional to the <see cref="P:J2N.Collections.Generic.SortedDictionary`2.Count"/> property.
That is, this method is an O(<c>n</c>) operation, where <c>n</c> is <see cref="P:J2N.Collections.Generic.SortedDictionary`2.Count"/>.
</remarks>
</member>
<member name="M:J2N.Collections.Generic.SortedDictionary`2.ContainsValue(`1,System.Collections.Generic.IEqualityComparer{`1})">
<summary>
Determines whether the <see cref="T:J2N.Collections.Generic.SortedDictionary`2"/> contains a specific value
as determined by the provided <paramref name="valueComparer"/>.
</summary>
<param name="value">The value to locate in the <see cref="T:J2N.Collections.Generic.SortedDictionary`2"/>.
The value can be <c>null</c> for reference types.</param>
<param name="valueComparer">The <see cref="T:System.Collections.Generic.IEqualityComparer`1"/> to use
to test each value for equality.</param>
<returns><c>true</c> if the <see cref="T:J2N.Collections.Generic.SortedDictionary`2"/> contains an element
with the specified value; otherwise, <c>false</c>.</returns>
<remarks>
This method performs a linear search; therefore, the average execution time
is proportional to <see cref="P:J2N.Collections.Generic.SortedDictionary`2.Count"/>. That is, this method is an O(<c>n</c>) operation,
where <c>n</c> is <see cref="P:J2N.Collections.Generic.SortedDictionary`2.Count"/>.
</remarks>
</member>
<member name="M:J2N.Collections.Generic.SortedDictionary`2.CopyTo(System.Collections.Generic.KeyValuePair{`0,`1}[],System.Int32)">
<summary>
Copies the elements of the <see cref="T:J2N.Collections.Generic.SortedDictionary`2"/> to the specified array
of <see cref="T:System.Collections.Generic.KeyValuePair`2"/> structures, starting at the specified index.
</summary>
<param name="array">The one-dimensional array of <see cref="T:System.Collections.Generic.KeyValuePair`2"/> structures
that is the destination of the elements copied from the current <see cref="T:J2N.Collections.Generic.SortedDictionary`2"/>.
The array must have zero-based indexing.</param>
<param name="index">The zero-based index in <paramref name="array"/> at which copying begins.</param>
<exception cref="T:System.ArgumentException">The number of elements in the source array is greater
than the available space from <paramref name="index"/> to the end of the destination array.</exception>
<exception cref="T:System.ArgumentNullException"><paramref name="array"/> is <c>null</c>.</exception>
<exception cref="T:System.ArgumentOutOfRangeException"><paramref name="index"/> is less than zero.</exception>
<remarks>This method is an <c>O(n)</c> operation, where <c>n</c> is <see cref="P:J2N.Collections.Generic.SortedDictionary`2.Count"/>.</remarks>
</member>
<member name="M:J2N.Collections.Generic.SortedDictionary`2.GetEnumerator">
<summary>
Returns an enumerator that iterates through the <see cref="T:J2N.Collections.Generic.SortedDictionary`2"/>.
</summary>
<returns>A <see cref="T:J2N.Collections.Generic.SortedDictionary`2.Enumerator"/> for the
<see cref="T:J2N.Collections.Generic.SortedDictionary`2"/>.</returns>
<remarks>
For purposes of enumeration, each item is a <see cref="T:System.Collections.Generic.KeyValuePair`2"/> structure
representing a value and its key.
<para/>
The <c>foreach</c> statement of the C# language (<c>for each</c> in C++, <c>For Each</c> in Visual Basic)
hides the complexity of enumerators. Therefore, using <c>foreach</c> is recommended instead of directly manipulating the enumerator.
<para/>
Enumerators can be used to read the data in the collection, but they cannot be used to modify the underlying collection.
<para/>
The dictionary is maintained in a sorted order using an internal tree. Every new element is positioned at the correct sort position,
and the tree is adjusted to maintain the sort order whenever an element is removed. While enumerating, the sort order is maintained.
<para/>
Initially, the enumerator is positioned before the first element in the collection. At this position, the
<see cref="P:J2N.Collections.Generic.SortedDictionary`2.Enumerator.Current"/> property is undefined. Therefore, you must call the
<see cref="M:J2N.Collections.Generic.SortedDictionary`2.Enumerator.MoveNext"/> method to advance the enumerator to the first element
of the collection before reading the value of <see cref="P:J2N.Collections.Generic.SortedDictionary`2.Enumerator.Current"/>.
<para/>
The <see cref="P:J2N.Collections.Generic.SortedDictionary`2.Enumerator.Current"/> property returns the same object until
<see cref="M:J2N.Collections.Generic.SortedDictionary`2.Enumerator.MoveNext"/> is called. <see cref="M:J2N.Collections.Generic.SortedDictionary`2.Enumerator.MoveNext"/>
sets <see cref="P:J2N.Collections.Generic.SortedDictionary`2.Enumerator.Current"/> to the next element.
<para/>
If <see cref="M:J2N.Collections.Generic.SortedDictionary`2.Enumerator.MoveNext"/> passes the end of the collection, the enumerator is
positioned after the last element in the collection and <see cref="M:J2N.Collections.Generic.SortedDictionary`2.Enumerator.MoveNext"/>
returns <c>false</c>. When the enumerator is at this position, subsequent calls to <see cref="M:J2N.Collections.Generic.SortedDictionary`2.Enumerator.MoveNext"/>
also return <c>false</c>. If the last call to <see cref="M:J2N.Collections.Generic.SortedDictionary`2.Enumerator.MoveNext"/> returned <c>false</c>,
<see cref="P:J2N.Collections.Generic.SortedDictionary`2.Enumerator.Current"/> is undefined. You cannot set <see cref="P:J2N.Collections.Generic.SortedDictionary`2.Enumerator.Current"/>
to the first element of the collection again; you must create a new enumerator object instead.
<para/>
An enumerator remains valid as long as the collection remains unchanged. If changes are made to the collection,
such as adding, modifying, or deleting elements, the enumerator is irrecoverably invalidated and the next call
to <see cref="M:J2N.Collections.Generic.SortedDictionary`2.Enumerator.MoveNext"/> or <see cref="M:System.Collections.IEnumerator.Reset"/> throws an
<see cref="T:System.InvalidOperationException"/>.
<para/>
The enumerator does not have exclusive access to the collection; therefore, enumerating through a collection is
intrinsically not a thread-safe procedure. To guarantee thread safety during enumeration, you can lock the
collection during the entire enumeration. To allow the collection to be accessed by multiple threads for
reading and writing, you must implement your own synchronization.
<para/>
Default implementations of collections in the <see cref="N:J2N.Collections.Generic"/> namespace are not synchronized.
<para/>
This method is an O(1) operation.
</remarks>
</member>
<member name="M:J2N.Collections.Generic.SortedDictionary`2.Remove(`0)">
<summary>
Removes the element with the specified key from the <see cref="T:J2N.Collections.Generic.SortedDictionary`2"/>.
</summary>
<param name="key">The key of the element to remove.</param>
<returns><c>true</c> if the element is successfully removed; otherwise, <c>false</c>.
This method also returns <c>false</c> if key is not found in the <see cref="T:J2N.Collections.Generic.SortedDictionary`2"/>.</returns>
<remarks>
If the <see cref="T:J2N.Collections.Generic.SortedDictionary`2"/> does not contain an element with the specified key, the
<see cref="T:J2N.Collections.Generic.SortedDictionary`2"/> remains unchanged. No exception is thrown.
<para/>
This method is an O(log <c>n</c>) operation.
</remarks>
</member>
<member name="M:J2N.Collections.Generic.SortedDictionary`2.Remove(`0,`1@)">
<summary>
Removes the element with the specified key from the <see cref="T:J2N.Collections.Generic.SortedDictionary`2"/>.
If the element exists, the associated <paramref name="value"/> is output after it is removed.
</summary>
<param name="key">The key of the element to remove.</param>
<param name="value">The value of the element before it is removed.</param>
<returns><c>true</c> if the element is successfully removed; otherwise, <c>false</c>.
This method also returns <c>false</c> if key is not found in the <see cref="T:J2N.Collections.Generic.SortedDictionary`2"/>.</returns>
<remarks>
If the <see cref="T:J2N.Collections.Generic.SortedDictionary`2"/> does not contain an element with the specified key, the
<see cref="T:J2N.Collections.Generic.SortedDictionary`2"/> remains unchanged. No exception is thrown.
</remarks>
</member>
<member name="M:J2N.Collections.Generic.SortedDictionary`2.TryAdd(`0,`1)">
<summary>
Attempts to add the specified key and value to the dictionary.
</summary>
<param name="key">The key of the element to add. It can be <c>null</c>.</param>
<param name="value">The value of the element to add. It can be <c>null</c>.</param>
<returns><c>true</c> if the key/value pair was added to the dictionary successfully; otherwise, <c>false</c>.</returns>
<remarks>Unlike the <see cref="M:J2N.Collections.Generic.SortedDictionary`2.Add(`0,`1)"/> method, this method doesn't throw an exception
if the element with the given key exists in the dictionary. Unlike the Dictionary indexer, <see cref="M:J2N.Collections.Generic.SortedDictionary`2.TryAdd(`0,`1)"/>
doesn't override the element if the element with the given key exists in the dictionary. If the key already exists,
<see cref="M:J2N.Collections.Generic.SortedDictionary`2.TryAdd(`0,`1)"/> does nothing and returns <c>false</c>.</remarks>
</member>
<member name="M:J2N.Collections.Generic.SortedDictionary`2.TryGetValue(`0,`1@)">
<summary>
Gets the value associated with the specified key.
</summary>
<param name="key">The key of the value to get.</param>
<param name="value">When this method returns, the value associated with the specified key,
if the key is found; otherwise, the default value for the type of the <paramref name="value"/> parameter.</param>
<returns><c>true</c> if the <see cref="T:J2N.Collections.Generic.SortedDictionary`2"/> contains an element with the
specified key; otherwise, <c>false</c>.</returns>
<remarks>
This method combines the functionality of the <see cref="M:J2N.Collections.Generic.SortedDictionary`2.ContainsKey(`0)"/> method
and the <see cref="P:J2N.Collections.Generic.SortedDictionary`2.Item(`0)"/> property.
<para/>
If the key is not found, then the <paramref name="value"/> parameter gets the appropriate
default value for the type <typeparamref name="TValue"/>; for example, 0 (zero) for
integer types, <c>false</c> for Boolean types, and <c>null</c> for reference types.
<para/>
Use the <see cref="M:J2N.Collections.Generic.SortedDictionary`2.TryGetValue(`0,`1@)"/> method if your code frequently
attempts to access keys that are not in the dictionary. Using this method is more
efficient than catching the <see cref="T:System.Collections.Generic.KeyNotFoundException"/> thrown by the
<see cref="P:J2N.Collections.Generic.SortedDictionary`2.Item(`0)"/> property.
<para/>
This method approaches an O(1) operation.
</remarks>
</member>
<member name="M:J2N.Collections.Generic.SortedDictionary`2.TryGetPredecessor(`0,System.Collections.Generic.KeyValuePair{`0,`1}@)">
<summary>
Gets the entry in the <see cref="T:J2N.Collections.Generic.SortedDictionary`2"/> whose key
is the predecessor of the specified <paramref name="key"/>.
</summary>
<param name="key">The key of the entry to get the predecessor of.</param>
<param name="result">The <see cref="T:System.Collections.Generic.KeyValuePair`2"/> representing the predessor, if any.</param>
<returns><c>true</c> if a predecessor to <paramref name="key"/> exists; otherwise, <c>false</c>.</returns>
</member>
<member name="M:J2N.Collections.Generic.SortedDictionary`2.TryGetSuccessor(`0,System.Collections.Generic.KeyValuePair{`0,`1}@)">
<summary>
Gets the entry in the <see cref="T:J2N.Collections.Generic.SortedDictionary`2"/> whose key
is the successor of the specified <paramref name="key"/>.
</summary>
<param name="key">The key of the entry to get the successor of.</param>
<param name="result">The <see cref="T:System.Collections.Generic.KeyValuePair`2"/> representing the successor, if any.</param>
<returns><c>true</c> if a succesor to <paramref name="key"/> exists; otherwise, <c>false</c>.</returns>
</member>
<member name="M:J2N.Collections.Generic.SortedDictionary`2.Equals(System.Object,System.Collections.IEqualityComparer)">
<summary>
Determines whether the specified object is structurally equal to the current dictionary
using rules provided by the specified <paramref name="comparer"/>.
</summary>
<param name="other">The object to compare with the current object.</param>
<param name="comparer">The <see cref="T:System.Collections.IEqualityComparer"/> implementation to use to determine
whether the current object and <paramref name="other"/> are structurally equal.</param>
<returns><c>true</c> if <paramref name="other"/> is structurally equal to the current dictionary;
otherwise, <c>false</c>.</returns>
<exception cref="T:System.ArgumentNullException">If <paramref name="comparer"/> is <c>null</c>.</exception>
</member>
<member name="M:J2N.Collections.Generic.SortedDictionary`2.GetHashCode(System.Collections.IEqualityComparer)">
<summary>
Gets the hash code representing the current dictionary using rules specified by the
provided <paramref name="comparer"/>.
</summary>
<param name="comparer">The <see cref="T:System.Collections.IEqualityComparer"/> implementation to use to generate
the hash code.</param>
<returns>A hash code representing the current dictionary.</returns>
</member>
<member name="M:J2N.Collections.Generic.SortedDictionary`2.Equals(System.Object)">
<summary>
Determines whether the specified object is structurally equal to the current dictionary
using rules similar to those in the JDK's AbstactMap class. Two dictionaries are considered
equal when they both contain the same mapppings (in any order).
</summary>
<param name="obj">The object to compare with the current object.</param>
<returns><c>true</c> if the specified object implements <see cref="T:System.Collections.Generic.IDictionary`2"/>
and it contains the same elements; otherwise, <c>false</c>.</returns>
<seealso cref="M:J2N.Collections.Generic.SortedDictionary`2.Equals(System.Object,System.Collections.IEqualityComparer)"/>
</member>
<member name="M:J2N.Collections.Generic.SortedDictionary`2.GetHashCode">
<summary>
Gets the hash code for the current list. The hash code is calculated
by taking each nested element's hash code into account.
</summary>
<returns>A hash code for the current object.</returns>
<seealso cref="M:J2N.Collections.Generic.SortedDictionary`2.GetHashCode(System.Collections.IEqualityComparer)"/>
</member>
<member name="M:J2N.Collections.Generic.SortedDictionary`2.ToString(System.String,System.IFormatProvider)">
<summary>
Returns a string that represents the current dictionary using the specified
<paramref name="format"/> and <paramref name="formatProvider"/>.
</summary>
<returns>A string that represents the current dictionary.</returns>
<exception cref="T:System.ArgumentNullException"><paramref name="format"/> is <c>null</c>.</exception>
<exception cref="T:System.FormatException">
<paramref name="format"/> is invalid.
<para/>
-or-
<para/>
The index of a format item is not zero.
</exception>
</member>
<member name="M:J2N.Collections.Generic.SortedDictionary`2.ToString">
<summary>
Returns a string that represents the current dictionary using
<see cref="P:J2N.Text.StringFormatter.CurrentCulture"/>.
<para/>
The presentation has a specific format. It is enclosed by curly
brackets ("{}"). Keys and values are separated by '=',
KeyValuePairs are separated by ', ' (comma and space).
</summary>
<returns>A string that represents the current list.</returns>
</member>
<member name="M:J2N.Collections.Generic.SortedDictionary`2.ToString(System.IFormatProvider)">
<summary>
Returns a string that represents the current dictionary using the specified
<paramref name="formatProvider"/>.
</summary>
<returns>A string that represents the current dictionary.</returns>
<exception cref="T:System.ArgumentNullException"><paramref name="formatProvider"/> is <c>null</c>.</exception>
</member>
<member name="M:J2N.Collections.Generic.SortedDictionary`2.ToString(System.String)">
<summary>
Returns a string that represents the current dictionary using the specified
<paramref name="format"/> and <see cref="P:J2N.Text.StringFormatter.CurrentCulture"/>.
<para/>
The presentation has a specific format. It is enclosed by curly
brackets ("{}"). Keys and values are separated by '=',
KeyValuePairs are separated by ', ' (comma and space).
</summary>
<returns>A string that represents the current dictionary.</returns>
<exception cref="T:System.ArgumentNullException"><paramref name="format"/> is <c>null</c>.</exception>
<exception cref="T:System.FormatException">
<paramref name="format"/> is invalid.
<para/>
-or-
<para/>
The index of a format item is not zero.
</exception>
</member>
<member name="T:J2N.Collections.Generic.SortedDictionary`2.Enumerator">
<summary>
Enumerates the elements of a <see cref="T:J2N.Collections.Generic.SortedDictionary`2"/>.
</summary>
<remarks>
The <c>foreach</c> statement of the C# language (<c>for each</c> in C++, <c>For Each</c> in Visual Basic)
hides the complexity of enumerators. Therefore, using <c>foreach</c> is recommended instead of directly manipulating the enumerator.
<para/>
Enumerators can be used to read the data in the collection, but they cannot be used to modify the underlying collection.
<para/>
Initially, the enumerator is positioned before the first element in the collection. At this position, the
<see cref="P:J2N.Collections.Generic.SortedDictionary`2.Enumerator.Current"/> property is undefined. Therefore, you must call the
<see cref="M:J2N.Collections.Generic.SortedDictionary`2.Enumerator.MoveNext"/> method to advance the enumerator to the first element
of the collection before reading the value of <see cref="P:J2N.Collections.Generic.SortedDictionary`2.Enumerator.Current"/>.
<para/>
The <see cref="P:J2N.Collections.Generic.SortedDictionary`2.Enumerator.Current"/> property returns the same object until
<see cref="M:J2N.Collections.Generic.SortedDictionary`2.Enumerator.MoveNext"/> is called. <see cref="M:J2N.Collections.Generic.SortedDictionary`2.Enumerator.MoveNext"/>
sets <see cref="P:J2N.Collections.Generic.SortedDictionary`2.Enumerator.Current"/> to the next element.
<para/>
If <see cref="M:J2N.Collections.Generic.SortedDictionary`2.Enumerator.MoveNext"/> passes the end of the collection, the enumerator is
positioned after the last element in the collection and <see cref="M:J2N.Collections.Generic.SortedDictionary`2.Enumerator.MoveNext"/>
returns <c>false</c>. When the enumerator is at this position, subsequent calls to <see cref="M:J2N.Collections.Generic.SortedDictionary`2.Enumerator.MoveNext"/>
also return <c>false</c>. If the last call to <see cref="M:J2N.Collections.Generic.SortedDictionary`2.Enumerator.MoveNext"/> returned <c>false</c>,
<see cref="P:J2N.Collections.Generic.SortedDictionary`2.Enumerator.Current"/> is undefined. You cannot set <see cref="P:J2N.Collections.Generic.SortedDictionary`2.Enumerator.Current"/>
to the first element of the collection again; you must create a new enumerator object instead.
<para/>
An enumerator remains valid as long as the collection remains unchanged. If changes are made to the collection,
such as adding, modifying, or deleting elements, the enumerator is irrecoverably invalidated and the next call
to <see cref="M:J2N.Collections.Generic.SortedDictionary`2.Enumerator.MoveNext"/> or <see cref="M:System.Collections.IEnumerator.Reset"/> throws an
<see cref="T:System.InvalidOperationException"/>.
<para/>
The enumerator does not have exclusive access to the collection; therefore, enumerating through a collection is
intrinsically not a thread-safe procedure. To guarantee thread safety during enumeration, you can lock the
collection during the entire enumeration. To allow the collection to be accessed by multiple threads for
reading and writing, you must implement your own synchronization.
<para/>
Default implementations of collections in the <see cref="N:J2N.Collections.Generic"/> namespace are not synchronized.
</remarks>
</member>
<member name="M:J2N.Collections.Generic.SortedDictionary`2.Enumerator.MoveNext">
<summary>
Advances the enumerator to the next element of the <see cref="T:J2N.Collections.Generic.SortedDictionary`2"/>.
</summary>
<returns><c>true</c> if the enumerator was successfully advanced to the next element;
<c>false</c> if the enumerator has passed the end of the collection.</returns>
<exception cref="T:System.InvalidOperationException">The collection was modified after the enumerator was created.</exception>
<remarks>
After an enumerator is created, the enumerator is positioned before the first element in the collection,
and the first call to the <see cref="M:J2N.Collections.Generic.SortedDictionary`2.Enumerator.MoveNext"/> method advances the enumerator to the first element
of the collection.
<para/>
If MoveNext passes the end of the collection, the enumerator is positioned after the last element in the
collection and <see cref="M:J2N.Collections.Generic.SortedDictionary`2.Enumerator.MoveNext"/> returns <c>false</c>. When the enumerator is at this position,
subsequent calls to <see cref="M:J2N.Collections.Generic.SortedDictionary`2.Enumerator.MoveNext"/> also return <c>false</c>.
<para/>
An enumerator remains valid as long as the collection remains unchanged. If changes are made to the
collection, such as adding, modifying, or deleting elements, the enumerator is irrecoverably invalidated
and the next call to <see cref="M:J2N.Collections.Generic.SortedDictionary`2.Enumerator.MoveNext"/> or <see cref="M:System.Collections.IEnumerator.Reset"/> throws an
<see cref="T:System.InvalidOperationException"/>.
</remarks>
</member>
<member name="M:J2N.Collections.Generic.SortedDictionary`2.Enumerator.Dispose">
<summary>
Releases all resources used by the <see cref="T:J2N.Collections.Generic.SortedDictionary`2.Enumerator"/>.
</summary>
</member>
<member name="P:J2N.Collections.Generic.SortedDictionary`2.Enumerator.Current">
<summary>
Gets the element at the current position of the enumerator.
</summary>
<remarks>
<see cref="P:J2N.Collections.Generic.SortedDictionary`2.Enumerator.Current"/> is undefined under any of the following conditions:
<list type="bullet">
<item><description>
The enumerator is positioned before the first element of the collection. That happens after an
enumerator is created or after the <see cref="M:System.Collections.IEnumerator.Reset"/> method is called. The <see cref="M:J2N.Collections.Generic.SortedDictionary`2.Enumerator.MoveNext"/>
method must be called to advance the enumerator to the first element of the collection before reading the value of
the <see cref="P:J2N.Collections.Generic.SortedDictionary`2.Enumerator.Current"/> property.
</description></item>
<item><description>
The last call to <see cref="M:J2N.Collections.Generic.SortedDictionary`2.Enumerator.MoveNext"/> returned <c>false</c>, which indicates the end of the collection and that the
enumerator is positioned after the last element of the collection.
</description></item>
<item><description>
The enumerator is invalidated due to changes made in the collection, such as adding, modifying, or deleting elements.
</description></item>
</list>
<para/>
<see cref="P:J2N.Collections.Generic.SortedDictionary`2.Enumerator.Current"/> does not move the position of the enumerator, and consecutive calls to <see cref="P:J2N.Collections.Generic.SortedDictionary`2.Enumerator.Current"/> return
the same object until either <see cref="M:J2N.Collections.Generic.SortedDictionary`2.Enumerator.MoveNext"/> or <see cref="M:System.Collections.IEnumerator.Reset"/> is called.
</remarks>
</member>
<member name="T:J2N.Collections.Generic.SortedDictionary`2.KeyCollection">
<summary>
Represents the collection of keys in a <see cref="T:J2N.Collections.Generic.SortedDictionary`2"/>.
This class cannot be inherited.
</summary>
<remarks>
The <see cref="P:J2N.Collections.Generic.SortedDictionary`2.Keys"/> property returns an instance
of this type, containing all the keys in that <see cref="T:J2N.Collections.Generic.SortedDictionary`2"/>.
The order of the keys in the <see cref="T:J2N.Collections.Generic.SortedDictionary`2.KeyCollection"/> is the same as the
order of elements in the <see cref="T:J2N.Collections.Generic.SortedDictionary`2"/>, the same as the order
of the associated values in the <see cref="T:J2N.Collections.Generic.SortedDictionary`2.ValueCollection"/> returned
by the <see cref="P:J2N.Collections.Generic.SortedDictionary`2.Values"/> property.
<para/>
The <see cref="T:J2N.Collections.Generic.SortedDictionary`2.KeyCollection"/> is not a static copy; instead,
the <see cref="T:J2N.Collections.Generic.SortedDictionary`2.KeyCollection"/> refers back to the keys in the
original <see cref="T:J2N.Collections.Generic.SortedDictionary`2"/>. Therefore, changes to the
<see cref="T:J2N.Collections.Generic.SortedDictionary`2"/> continue to be reflected in the
<see cref="T:J2N.Collections.Generic.SortedDictionary`2.KeyCollection"/>.
</remarks>
</member>
<member name="M:J2N.Collections.Generic.SortedDictionary`2.KeyCollection.#ctor(J2N.Collections.Generic.SortedDictionary{`0,`1})">
<summary>
Initializes a new instance of the <see cref="T:J2N.Collections.Generic.SortedDictionary`2.KeyCollection"/> class that reflects the keys
in the specified <see cref="T:J2N.Collections.Generic.SortedDictionary`2"/>.
</summary>
<param name="dictionary">The <see cref="T:J2N.Collections.Generic.SortedDictionary`2"/> whose keys are reflected in the new
<see cref="T:J2N.Collections.Generic.SortedDictionary`2.KeyCollection"/>.</param>
<exception cref="T:System.ArgumentNullException"><paramref name="dictionary"/> is <c>null</c>.</exception>
<remarks>
The <see cref="T:J2N.Collections.Generic.SortedDictionary`2.KeyCollection"/> is not a static copy; instead, the
<see cref="T:J2N.Collections.Generic.SortedDictionary`2.KeyCollection"/> refers back to the keys in the original <see cref="T:J2N.Collections.Generic.SortedDictionary`2"/>.
Therefore, changes to the <see cref="T:J2N.Collections.Generic.SortedDictionary`2"/> continue to be reflected in
the <see cref="T:J2N.Collections.Generic.SortedDictionary`2.KeyCollection"/>.
<para/>
This constructor is an O(1) operation.
</remarks>
</member>
<member name="M:J2N.Collections.Generic.SortedDictionary`2.KeyCollection.GetEnumerator">
<summary>
Returns an enumerator that iterates through the <see cref="T:J2N.Collections.Generic.SortedDictionary`2.KeyCollection"/>.
</summary>
<returns>A <see cref="T:J2N.Collections.Generic.SortedDictionary`2.KeyCollection.Enumerator"/> structure for the <see cref="T:J2N.Collections.Generic.SortedDictionary`2.KeyCollection"/>.</returns>
<remarks>
The <c>foreach</c> statement of the C# language (<c>for each</c> in C++, <c>For Each</c> in Visual Basic)
hides the complexity of enumerators. Therefore, using <c>foreach</c> is recommended instead of directly manipulating the enumerator.
<para/>
Enumerators can be used to read the data in the collection, but they cannot be used to modify the underlying collection.
<para/>
Initially, the enumerator is positioned before the first element in the collection. At this position, the
<see cref="P:J2N.Collections.Generic.SortedDictionary`2.KeyCollection.Enumerator.Current"/> property is undefined. Therefore, you must call the
<see cref="M:J2N.Collections.Generic.SortedDictionary`2.KeyCollection.Enumerator.MoveNext"/> method to advance the enumerator to the first element
of the collection before reading the value of <see cref="P:J2N.Collections.Generic.SortedDictionary`2.KeyCollection.Enumerator.Current"/>.
<para/>
The <see cref="P:J2N.Collections.Generic.SortedDictionary`2.KeyCollection.Enumerator.Current"/> property returns the same object until
<see cref="M:J2N.Collections.Generic.SortedDictionary`2.KeyCollection.Enumerator.MoveNext"/> is called. <see cref="M:J2N.Collections.Generic.SortedDictionary`2.KeyCollection.Enumerator.MoveNext"/>
sets <see cref="P:J2N.Collections.Generic.SortedDictionary`2.KeyCollection.Enumerator.Current"/> to the next element.
<para/>
If <see cref="M:J2N.Collections.Generic.SortedDictionary`2.KeyCollection.Enumerator.MoveNext"/> passes the end of the collection, the enumerator is
positioned after the last element in the collection and <see cref="M:J2N.Collections.Generic.SortedDictionary`2.KeyCollection.Enumerator.MoveNext"/>
returns <c>false</c>. When the enumerator is at this position, subsequent calls to <see cref="M:J2N.Collections.Generic.SortedDictionary`2.KeyCollection.Enumerator.MoveNext"/>
also return <c>false</c>. If the last call to <see cref="M:J2N.Collections.Generic.SortedDictionary`2.KeyCollection.Enumerator.MoveNext"/> returned <c>false</c>,
<see cref="P:J2N.Collections.Generic.SortedDictionary`2.KeyCollection.Enumerator.Current"/> is undefined. You cannot set <see cref="P:J2N.Collections.Generic.SortedDictionary`2.KeyCollection.Enumerator.Current"/>
to the first element of the collection again; you must create a new enumerator object instead.
<para/>
An enumerator remains valid as long as the collection remains unchanged. If changes are made to the collection,
such as adding, modifying, or deleting elements, the enumerator is irrecoverably invalidated and the next call
to <see cref="M:J2N.Collections.Generic.SortedDictionary`2.KeyCollection.Enumerator.MoveNext"/> or <see cref="M:System.Collections.IEnumerator.Reset"/> throws an
<see cref="T:System.InvalidOperationException"/>.
<para/>
The enumerator does not have exclusive access to the collection; therefore, enumerating through a collection is
intrinsically not a thread-safe procedure. To guarantee thread safety during enumeration, you can lock the
collection during the entire enumeration. To allow the collection to be accessed by multiple threads for
reading and writing, you must implement your own synchronization.
<para/>
Default implementations of collections in the <see cref="N:J2N.Collections.Generic"/> namespace are not synchronized.
</remarks>
</member>
<member name="M:J2N.Collections.Generic.SortedDictionary`2.KeyCollection.CopyTo(`0[],System.Int32)">
<summary>
Copies the <see cref="T:J2N.Collections.Generic.SortedDictionary`2.KeyCollection"/> elements to an existing one-dimensional array,
starting at the specified array index.
</summary>
<param name="array">The one-dimensional array that is the destination of the elements
copied from the <see cref="T:J2N.Collections.Generic.SortedDictionary`2.KeyCollection"/>. The array must have zero-based indexing.</param>
<param name="index">The zero-based index in <paramref name="array"/> at which copying begins.</param>
<exception cref="T:System.ArgumentNullException"><paramref name="array"/> is <c>null</c>.</exception>
<exception cref="T:System.ArgumentOutOfRangeException"><paramref name="index"/> is less than 0.</exception>
<exception cref="T:System.ArgumentException">
The number of elements in the source <see cref="T:J2N.Collections.Generic.SortedDictionary`2.KeyCollection"/> is greater than the available
space from <paramref name="index"/> to the end of the destination <paramref name="array"/>.
</exception>
<remarks>
The elements are copied to the array in the same order in which the enumerator iterates through
the <see cref="T:J2N.Collections.Generic.SortedDictionary`2.KeyCollection"/>.
<para/>
This method is an O(<c>n</c>) operation, where <c>n</c> is <see cref="P:J2N.Collections.Generic.SortedDictionary`2.KeyCollection.Count"/>.
</remarks>
</member>
<member name="P:J2N.Collections.Generic.SortedDictionary`2.KeyCollection.Count">
<summary>
Gets the number of elements contained in the <see cref="T:J2N.Collections.Generic.SortedDictionary`2.KeyCollection"/>.
</summary>
<remarks>Getting the value of this property is an O(1) operation.</remarks>
</member>
<member name="M:J2N.Collections.Generic.SortedDictionary`2.KeyCollection.Contains(`0)">
<summary>
Determines whether the <see cref="T:System.Collections.Generic.ICollection`1"/> contains a specific value.
</summary>
<param name="item">The object to locate in the <see cref="T:System.Collections.Generic.ICollection`1"/>.</param>
<returns><c>true</c> if item is found in the <see cref="T:System.Collections.Generic.ICollection`1"/>; otherwise, <c>false</c>.</returns>
</member>
<member name="T:J2N.Collections.Generic.SortedDictionary`2.KeyCollection.Enumerator">
<summary>
Enumerates the elements of a <see cref="T:J2N.Collections.Generic.SortedDictionary`2.KeyCollection"/>.
</summary>
<remarks>
The <c>foreach</c> statement of the C# language (<c>for each</c> in C++, <c>For Each</c> in Visual Basic)
hides the complexity of enumerators. Therefore, using <c>foreach</c> is recommended instead of directly manipulating the enumerator.
<para/>
Enumerators can be used to read the data in the collection, but they cannot be used to modify the underlying collection.
<para/>
Initially, the enumerator is positioned before the first element in the collection. At this position, the
<see cref="P:J2N.Collections.Generic.SortedDictionary`2.KeyCollection.Enumerator.Current"/> property is undefined. Therefore, you must call the
<see cref="M:J2N.Collections.Generic.SortedDictionary`2.KeyCollection.Enumerator.MoveNext"/> method to advance the enumerator to the first element
of the collection before reading the value of <see cref="P:J2N.Collections.Generic.SortedDictionary`2.KeyCollection.Enumerator.Current"/>.
<para/>
The <see cref="P:J2N.Collections.Generic.SortedDictionary`2.KeyCollection.Enumerator.Current"/> property returns the same object until
<see cref="M:J2N.Collections.Generic.SortedDictionary`2.KeyCollection.Enumerator.MoveNext"/> is called. <see cref="M:J2N.Collections.Generic.SortedDictionary`2.KeyCollection.Enumerator.MoveNext"/>
sets <see cref="P:J2N.Collections.Generic.SortedDictionary`2.KeyCollection.Enumerator.Current"/> to the next element.
<para/>
If <see cref="M:J2N.Collections.Generic.SortedDictionary`2.KeyCollection.Enumerator.MoveNext"/> passes the end of the collection, the enumerator is
positioned after the last element in the collection and <see cref="M:J2N.Collections.Generic.SortedDictionary`2.KeyCollection.Enumerator.MoveNext"/>
returns <c>false</c>. When the enumerator is at this position, subsequent calls to <see cref="M:J2N.Collections.Generic.SortedDictionary`2.KeyCollection.Enumerator.MoveNext"/>
also return <c>false</c>. If the last call to <see cref="M:J2N.Collections.Generic.SortedDictionary`2.KeyCollection.Enumerator.MoveNext"/> returned <c>false</c>,
<see cref="P:J2N.Collections.Generic.SortedDictionary`2.KeyCollection.Enumerator.Current"/> is undefined. You cannot set <see cref="P:J2N.Collections.Generic.SortedDictionary`2.KeyCollection.Enumerator.Current"/>
to the first element of the collection again; you must create a new enumerator object instead.
<para/>
An enumerator remains valid as long as the collection remains unchanged. If changes are made to the collection,
such as adding, modifying, or deleting elements, the enumerator is irrecoverably invalidated and the next call
to <see cref="M:J2N.Collections.Generic.SortedDictionary`2.KeyCollection.Enumerator.MoveNext"/> or <see cref="M:System.Collections.IEnumerator.Reset"/> throws an
<see cref="T:System.InvalidOperationException"/>.
<para/>
The enumerator does not have exclusive access to the collection; therefore, enumerating through a collection is
intrinsically not a thread-safe procedure. To guarantee thread safety during enumeration, you can lock the
collection during the entire enumeration. To allow the collection to be accessed by multiple threads for
reading and writing, you must implement your own synchronization.
<para/>
Default implementations of collections in the <see cref="N:J2N.Collections.Generic"/> namespace are not synchronized.
</remarks>
</member>
<member name="M:J2N.Collections.Generic.SortedDictionary`2.KeyCollection.Enumerator.Dispose">
<summary>
Releases all resources used by the <see cref="T:J2N.Collections.Generic.SortedDictionary`2.KeyCollection.Enumerator"/>.
</summary>
</member>
<member name="M:J2N.Collections.Generic.SortedDictionary`2.KeyCollection.Enumerator.MoveNext">
<summary>
Advances the enumerator to the next element of the <see cref="T:J2N.Collections.Generic.SortedDictionary`2.KeyCollection"/>.
</summary>
<returns><c>true</c> if the enumerator was successfully advanced to the next element;
<c>false</c> if the enumerator has passed the end of the collection.</returns>
<exception cref="T:System.InvalidOperationException">The collection was modified after the enumerator was created.</exception>
<remarks>
After an enumerator is created, the enumerator is positioned before the first element in the collection,
and the first call to the <see cref="M:J2N.Collections.Generic.SortedDictionary`2.KeyCollection.Enumerator.MoveNext"/> method advances the enumerator to the first element
of the collection.
<para/>
If MoveNext passes the end of the collection, the enumerator is positioned after the last element in the
collection and <see cref="M:J2N.Collections.Generic.SortedDictionary`2.KeyCollection.Enumerator.MoveNext"/> returns <c>false</c>. When the enumerator is at this position,
subsequent calls to <see cref="M:J2N.Collections.Generic.SortedDictionary`2.KeyCollection.Enumerator.MoveNext"/> also return <c>false</c>.
<para/>
An enumerator remains valid as long as the collection remains unchanged. If changes are made to the
collection, such as adding, modifying, or deleting elements, the enumerator is irrecoverably invalidated
and the next call to <see cref="M:J2N.Collections.Generic.SortedDictionary`2.KeyCollection.Enumerator.MoveNext"/> or <see cref="M:System.Collections.IEnumerator.Reset"/> throws an
<see cref="T:System.InvalidOperationException"/>.
</remarks>
</member>
<member name="P:J2N.Collections.Generic.SortedDictionary`2.KeyCollection.Enumerator.Current">
<summary>
Gets the element at the current position of the enumerator.
</summary>
<remarks>
<see cref="P:J2N.Collections.Generic.SortedDictionary`2.KeyCollection.Enumerator.Current"/> is undefined under any of the following conditions:
<list type="bullet">
<item><description>
The enumerator is positioned before the first element of the collection. That happens after an
enumerator is created or after the <see cref="M:System.Collections.IEnumerator.Reset"/> method is called. The <see cref="M:J2N.Collections.Generic.SortedDictionary`2.KeyCollection.Enumerator.MoveNext"/>
method must be called to advance the enumerator to the first element of the collection before reading the value of
the <see cref="P:J2N.Collections.Generic.SortedDictionary`2.KeyCollection.Enumerator.Current"/> property.
</description></item>
<item><description>
The last call to <see cref="M:J2N.Collections.Generic.SortedDictionary`2.KeyCollection.Enumerator.MoveNext"/> returned <c>false</c>, which indicates the end of the collection and that the
enumerator is positioned after the last element of the collection.
</description></item>
<item><description>
The enumerator is invalidated due to changes made in the collection, such as adding, modifying, or deleting elements.
</description></item>
</list>
<para/>
<see cref="P:J2N.Collections.Generic.SortedDictionary`2.KeyCollection.Enumerator.Current"/> does not move the position of the enumerator, and consecutive calls to <see cref="P:J2N.Collections.Generic.SortedDictionary`2.KeyCollection.Enumerator.Current"/> return
the same object until either <see cref="M:J2N.Collections.Generic.SortedDictionary`2.KeyCollection.Enumerator.MoveNext"/> or <see cref="M:System.Collections.IEnumerator.Reset"/> is called.
</remarks>
</member>
<member name="T:J2N.Collections.Generic.SortedDictionary`2.ValueCollection">
<summary>
Represents the collection of values in a <see cref="T:J2N.Collections.Generic.SortedDictionary`2"/>. This class cannot be inherited.
</summary>
<remarks>
The <see cref="P:J2N.Collections.Generic.SortedDictionary`2.Values"/> property returns an instance
of this type, containing all the values in that <see cref="T:J2N.Collections.Generic.SortedDictionary`2"/>.
The order of the values in the <see cref="T:J2N.Collections.Generic.SortedDictionary`2.ValueCollection"/> is the same as the
order of elements in the <see cref="T:J2N.Collections.Generic.SortedDictionary`2"/>, the same as the order
of the associated values in the <see cref="T:J2N.Collections.Generic.SortedDictionary`2.KeyCollection"/> returned
by the <see cref="P:J2N.Collections.Generic.SortedDictionary`2.Keys"/> property.
<para/>
The <see cref="T:J2N.Collections.Generic.SortedDictionary`2.ValueCollection"/> is not a static copy; instead,
the <see cref="T:J2N.Collections.Generic.SortedDictionary`2.ValueCollection"/> refers back to the keys in the
original <see cref="T:J2N.Collections.Generic.SortedDictionary`2"/>. Therefore, changes to the
<see cref="T:J2N.Collections.Generic.SortedDictionary`2"/> continue to be reflected in the
<see cref="T:J2N.Collections.Generic.SortedDictionary`2.ValueCollection"/>.
</remarks>
</member>
<member name="M:J2N.Collections.Generic.SortedDictionary`2.ValueCollection.#ctor(J2N.Collections.Generic.SortedDictionary{`0,`1})">
<summary>
Initializes a new instance of the <see cref="T:J2N.Collections.Generic.SortedDictionary`2.ValueCollection"/> class that reflects the values in
the specified <see cref="T:J2N.Collections.Generic.SortedDictionary`2"/>.
</summary>
<param name="dictionary">The <see cref="T:J2N.Collections.Generic.SortedDictionary`2"/> whose valeus are reflected
in the new <see cref="T:J2N.Collections.Generic.SortedDictionary`2.ValueCollection"/>.</param>
<exception cref="T:System.ArgumentNullException"><paramref name="dictionary"/> is <c>null</c>.</exception>
<remarks>
The <see cref="T:J2N.Collections.Generic.SortedDictionary`2.ValueCollection"/> is not a static copy; instead, the <see cref="T:J2N.Collections.Generic.SortedDictionary`2.ValueCollection"/>
refers back to the values in the original <see cref="T:J2N.Collections.Generic.SortedDictionary`2"/>. Therefore,
changes to the <see cref="T:J2N.Collections.Generic.SortedDictionary`2"/> continue to be reflected in the
<see cref="T:J2N.Collections.Generic.SortedDictionary`2.ValueCollection"/>.
</remarks>
</member>
<member name="M:J2N.Collections.Generic.SortedDictionary`2.ValueCollection.GetEnumerator">
<summary>
Returns an enumerator that iterates through the <see cref="T:J2N.Collections.Generic.SortedDictionary`2"/>.
</summary>
<returns>A <see cref="T:J2N.Collections.Generic.SortedDictionary`2.ValueCollection.Enumerator"/> structure for the <see cref="T:J2N.Collections.Generic.SortedDictionary`2"/>.</returns>
<remarks>
The <c>foreach</c> statement of the C# language (<c>for each</c> in C++, <c>For Each</c> in Visual Basic)
hides the complexity of enumerators. Therefore, using <c>foreach</c> is recommended instead of directly manipulating the enumerator.
<para/>
Enumerators can be used to read the data in the collection, but they cannot be used to modify the underlying collection.
<para/>
Initially, the enumerator is positioned before the first element in the collection. At this position, the
<see cref="P:J2N.Collections.Generic.SortedDictionary`2.ValueCollection.Enumerator.Current"/> property is undefined. Therefore, you must call the
<see cref="M:J2N.Collections.Generic.SortedDictionary`2.ValueCollection.Enumerator.MoveNext"/> method to advance the enumerator to the first element
of the collection before reading the value of <see cref="P:J2N.Collections.Generic.SortedDictionary`2.ValueCollection.Enumerator.Current"/>.
<para/>
The <see cref="P:J2N.Collections.Generic.SortedDictionary`2.ValueCollection.Enumerator.Current"/> property returns the same object until
<see cref="M:J2N.Collections.Generic.SortedDictionary`2.ValueCollection.Enumerator.MoveNext"/> is called. <see cref="M:J2N.Collections.Generic.SortedDictionary`2.ValueCollection.Enumerator.MoveNext"/>
sets <see cref="P:J2N.Collections.Generic.SortedDictionary`2.ValueCollection.Enumerator.Current"/> to the next element.
<para/>
If <see cref="M:J2N.Collections.Generic.SortedDictionary`2.ValueCollection.Enumerator.MoveNext"/> passes the end of the collection, the enumerator is
positioned after the last element in the collection and <see cref="M:J2N.Collections.Generic.SortedDictionary`2.ValueCollection.Enumerator.MoveNext"/>
returns <c>false</c>. When the enumerator is at this position, subsequent calls to <see cref="M:J2N.Collections.Generic.SortedDictionary`2.ValueCollection.Enumerator.MoveNext"/>
also return <c>false</c>. If the last call to <see cref="M:J2N.Collections.Generic.SortedDictionary`2.ValueCollection.Enumerator.MoveNext"/> returned <c>false</c>,
<see cref="P:J2N.Collections.Generic.SortedDictionary`2.ValueCollection.Enumerator.Current"/> is undefined. You cannot set <see cref="P:J2N.Collections.Generic.SortedDictionary`2.ValueCollection.Enumerator.Current"/>
to the first element of the collection again; you must create a new enumerator object instead.
<para/>
An enumerator remains valid as long as the collection remains unchanged. If changes are made to the collection,
such as adding, modifying, or deleting elements, the enumerator is irrecoverably invalidated and the next call
to <see cref="M:J2N.Collections.Generic.SortedDictionary`2.ValueCollection.Enumerator.MoveNext"/> or <see cref="M:System.Collections.IEnumerator.Reset"/> throws an
<see cref="T:System.InvalidOperationException"/>.
<para/>
The enumerator does not have exclusive access to the collection; therefore, enumerating through a collection is
intrinsically not a thread-safe procedure. To guarantee thread safety during enumeration, you can lock the
collection during the entire enumeration. To allow the collection to be accessed by multiple threads for
reading and writing, you must implement your own synchronization.
<para/>
Default implementations of collections in the <see cref="N:J2N.Collections.Generic"/> namespace are not synchronized.
<para/>
This method is an O(1) operation.
</remarks>
</member>
<member name="M:J2N.Collections.Generic.SortedDictionary`2.ValueCollection.CopyTo(`1[],System.Int32)">
<summary>
Copies the <see cref="T:J2N.Collections.Generic.SortedDictionary`2.ValueCollection"/> elements to an existing one-dimensional
array, starting at the specified array index.
</summary>
<param name="array">The one-dimensional array that is the destination of the elements copied from
the <see cref="T:J2N.Collections.Generic.SortedDictionary`2.ValueCollection"/>. The array must have zero-based indexing.</param>
<param name="index">The zero-based index in <paramref name="array"/> at which copying begins.</param>
<exception cref="T:System.ArgumentNullException"><paramref name="array"/> is <c>null</c>.</exception>
<exception cref="T:System.ArgumentOutOfRangeException"><paramref name="index"/> is less than 0.</exception>
<exception cref="T:System.ArgumentException">The number of elements in the source <see cref="T:J2N.Collections.Generic.SortedDictionary`2.ValueCollection"/>
is greater than the available space from <paramref name="index"/> to the end of the destination
<paramref name="array"/>.</exception>
<remarks>
The elements are copied to the array in the same order in which the enumerator iterates through the
<see cref="T:J2N.Collections.Generic.SortedDictionary`2.ValueCollection"/>.
<para/>
This method is an O(<c>n</c>) operation, where <c>n</c> is <see cref="P:J2N.Collections.Generic.SortedDictionary`2.ValueCollection.Count"/>.
</remarks>
</member>
<member name="P:J2N.Collections.Generic.SortedDictionary`2.ValueCollection.Count">
<summary>
Gets the number of elements contained in the <see cref="T:J2N.Collections.Generic.SortedDictionary`2.ValueCollection"/>.
</summary>
<remarks>
Retrieving the value of this property is an O(1) operation.
</remarks>
</member>
<member name="T:J2N.Collections.Generic.SortedDictionary`2.ValueCollection.Enumerator">
<summary>
Enumerates the elements of a <see cref="T:J2N.Collections.Generic.SortedDictionary`2.ValueCollection"/>.
</summary>
<remarks>
The <c>foreach</c> statement of the C# language (<c>for each</c> in C++, <c>For Each</c> in Visual Basic)
hides the complexity of enumerators. Therefore, using <c>foreach</c> is recommended instead of directly manipulating the enumerator.
<para/>
Enumerators can be used to read the data in the collection, but they cannot be used to modify the underlying collection.
<para/>
Initially, the enumerator is positioned before the first element in the collection. At this position, the
<see cref="P:J2N.Collections.Generic.SortedDictionary`2.ValueCollection.Enumerator.Current"/> property is undefined. Therefore, you must call the
<see cref="M:J2N.Collections.Generic.SortedDictionary`2.ValueCollection.Enumerator.MoveNext"/> method to advance the enumerator to the first element
of the collection before reading the value of <see cref="P:J2N.Collections.Generic.SortedDictionary`2.ValueCollection.Enumerator.Current"/>.
<para/>
The <see cref="P:J2N.Collections.Generic.SortedDictionary`2.ValueCollection.Enumerator.Current"/> property returns the same object until
<see cref="M:J2N.Collections.Generic.SortedDictionary`2.ValueCollection.Enumerator.MoveNext"/> is called. <see cref="M:J2N.Collections.Generic.SortedDictionary`2.ValueCollection.Enumerator.MoveNext"/>
sets <see cref="P:J2N.Collections.Generic.SortedDictionary`2.ValueCollection.Enumerator.Current"/> to the next element.
<para/>
If <see cref="M:J2N.Collections.Generic.SortedDictionary`2.ValueCollection.Enumerator.MoveNext"/> passes the end of the collection, the enumerator is
positioned after the last element in the collection and <see cref="M:J2N.Collections.Generic.SortedDictionary`2.ValueCollection.Enumerator.MoveNext"/>
returns <c>false</c>. When the enumerator is at this position, subsequent calls to <see cref="M:J2N.Collections.Generic.SortedDictionary`2.ValueCollection.Enumerator.MoveNext"/>
also return <c>false</c>. If the last call to <see cref="M:J2N.Collections.Generic.SortedDictionary`2.ValueCollection.Enumerator.MoveNext"/> returned <c>false</c>,
<see cref="P:J2N.Collections.Generic.SortedDictionary`2.ValueCollection.Enumerator.Current"/> is undefined. You cannot set <see cref="P:J2N.Collections.Generic.SortedDictionary`2.ValueCollection.Enumerator.Current"/>
to the first element of the collection again; you must create a new enumerator object instead.
<para/>
An enumerator remains valid as long as the collection remains unchanged. If changes are made to the collection,
such as adding, modifying, or deleting elements, the enumerator is irrecoverably invalidated and the next call
to <see cref="M:J2N.Collections.Generic.SortedDictionary`2.ValueCollection.Enumerator.MoveNext"/> or <see cref="M:System.Collections.IEnumerator.Reset"/> throws an
<see cref="T:System.InvalidOperationException"/>.
<para/>
The enumerator does not have exclusive access to the collection; therefore, enumerating through a collection is
intrinsically not a thread-safe procedure. To guarantee thread safety during enumeration, you can lock the
collection during the entire enumeration. To allow the collection to be accessed by multiple threads for
reading and writing, you must implement your own synchronization.
<para/>
Default implementations of collections in the <see cref="N:J2N.Collections.Generic"/> namespace are not synchronized.
</remarks>
</member>
<member name="M:J2N.Collections.Generic.SortedDictionary`2.ValueCollection.Enumerator.Dispose">
<summary>
Releases all resources used by the <see cref="T:J2N.Collections.Generic.SortedDictionary`2.ValueCollection.Enumerator"/>.
</summary>
</member>
<member name="M:J2N.Collections.Generic.SortedDictionary`2.ValueCollection.Enumerator.MoveNext">
<summary>
Advances the enumerator to the next element of the <see cref="T:J2N.Collections.Generic.SortedDictionary`2.ValueCollection"/>.
</summary>
<returns><c>true</c> if the enumerator was successfully advanced to the next element;
<c>false</c> if the enumerator has passed the end of the collection.</returns>
<exception cref="T:System.InvalidOperationException">The collection was modified after the enumerator was created.</exception>
<remarks>
After an enumerator is created, the enumerator is positioned before the first element in the collection,
and the first call to the <see cref="M:J2N.Collections.Generic.SortedDictionary`2.ValueCollection.Enumerator.MoveNext"/> method advances the enumerator to the first element
of the collection.
<para/>
If MoveNext passes the end of the collection, the enumerator is positioned after the last element in the
collection and <see cref="M:J2N.Collections.Generic.SortedDictionary`2.ValueCollection.Enumerator.MoveNext"/> returns <c>false</c>. When the enumerator is at this position,
subsequent calls to <see cref="M:J2N.Collections.Generic.SortedDictionary`2.ValueCollection.Enumerator.MoveNext"/> also return <c>false</c>.
<para/>
An enumerator remains valid as long as the collection remains unchanged. If changes are made to the
collection, such as adding, modifying, or deleting elements, the enumerator is irrecoverably invalidated
and the next call to <see cref="M:J2N.Collections.Generic.SortedDictionary`2.ValueCollection.Enumerator.MoveNext"/> or <see cref="M:System.Collections.IEnumerator.Reset"/> throws an
<see cref="T:System.InvalidOperationException"/>.
</remarks>
</member>
<member name="P:J2N.Collections.Generic.SortedDictionary`2.ValueCollection.Enumerator.Current">
<summary>
Gets the element at the current position of the enumerator.
</summary>
<remarks>
<see cref="P:J2N.Collections.Generic.SortedDictionary`2.ValueCollection.Enumerator.Current"/> is undefined under any of the following conditions:
<list type="bullet">
<item><description>
The enumerator is positioned before the first element of the collection. That happens after an
enumerator is created or after the <see cref="M:System.Collections.IEnumerator.Reset"/> method is called. The <see cref="M:J2N.Collections.Generic.SortedDictionary`2.ValueCollection.Enumerator.MoveNext"/>
method must be called to advance the enumerator to the first element of the collection before reading the value of
the <see cref="P:J2N.Collections.Generic.SortedDictionary`2.ValueCollection.Enumerator.Current"/> property.
</description></item>
<item><description>
The last call to <see cref="M:J2N.Collections.Generic.SortedDictionary`2.ValueCollection.Enumerator.MoveNext"/> returned <c>false</c>, which indicates the end of the collection and that the
enumerator is positioned after the last element of the collection.
</description></item>
<item><description>
The enumerator is invalidated due to changes made in the collection, such as adding, modifying, or deleting elements.
</description></item>
</list>
<para/>
<see cref="P:J2N.Collections.Generic.SortedDictionary`2.ValueCollection.Enumerator.Current"/> does not move the position of the enumerator, and consecutive calls to <see cref="P:J2N.Collections.Generic.SortedDictionary`2.ValueCollection.Enumerator.Current"/> return
the same object until either <see cref="M:J2N.Collections.Generic.SortedDictionary`2.ValueCollection.Enumerator.MoveNext"/> or <see cref="M:System.Collections.IEnumerator.Reset"/> is called.
</remarks>
</member>
<member name="T:J2N.Collections.Generic.TreeSet`1">
<summary>
This class is intended as a helper for backwards compatibility with existing SortedDictionaries.
TreeSet has been converted into SortedSet{T}, which will be exposed publicly. SortedDictionaries
have the problem where they have already been serialized to disk as having a backing class named
TreeSet. To ensure that we can read back anything that has already been written to disk, we need to
make sure that we have a class named TreeSet that does everything the way it used to.
The only thing that makes it different from SortedSet is that it throws on duplicates
</summary>
<typeparam name="T"></typeparam>
</member>
<member name="T:J2N.Collections.Generic.SortedSet`1">
<summary>
Represents a collection of objects that is maintained in sorted order.
<para/>
<see cref="T:J2N.Collections.Generic.SortedSet`1"/> adds the following features to <see cref="T:System.Collections.Generic.SortedSet`1"/>:
<list type="bullet">
<item><description>
Overrides the <see cref="M:J2N.Collections.Generic.SortedSet`1.Equals(System.Object)"/> and <see cref="M:J2N.Collections.Generic.SortedSet`1.GetHashCode"/> methods to compare lists
using structural equality by default. Also, <see cref="T:System.Collections.IStructuralEquatable"/> is implemented so the
default behavior can be overridden.
</description></item>
<item><description>
Overrides the <see cref="M:J2N.Collections.Generic.SortedSet`1.ToString"/> methods to list the contents of the list
by default. Also, <see cref="T:System.IFormatProvider"/> is implemented so the
default behavior can be overridden.
</description></item>
<item><description>
Uses <see cref="P:J2N.Collections.Generic.Comparer`1.Default"/> by default, which provides some specialized equality comparisons
for specific types to match the behavior of Java.
</description></item>
</list>
<para/>
Usage Note: This class is intended to be a direct replacement for <see cref="T:System.Collections.Generic.SortedSet`1"/> in order
to provide default structural equality and formatting behavior similar to Java. Note that the <see cref="M:J2N.Collections.Generic.SortedSet`1.ToString"/>
method uses the current culture by default to behave like other components in .NET. To exactly match Java's culture-neutral behavior,
call <c>ToString(StringFormatter.InvariantCulture)</c>.
</summary>
<typeparam name="T">The type of elements in the set.</typeparam>
</member>
<member name="M:J2N.Collections.Generic.SortedSet`1.#ctor">
<summary>
Initializes a new instance of the <see cref="T:J2N.Collections.Generic.SortedSet`1"/> class.
</summary>
</member>
<member name="M:J2N.Collections.Generic.SortedSet`1.#ctor(System.Collections.Generic.IComparer{`0})">
<summary>
Initializes a new instance of the <see cref="T:J2N.Collections.Generic.SortedSet`1"/> class that uses a specified comparer.
</summary>
<param name="comparer">The default comparer to use for comparing objects.</param>
<exception cref="T:System.ArgumentNullException"><paramref name="comparer"/> is <c>null</c>.</exception>
<remarks>
If <paramref name="comparer"/> does not implement <see cref="T:System.IComparable`1"/>, you must specify
an <see cref="T:System.Collections.Generic.IComparer`1"/> object to be used.
</remarks>
</member>
<member name="M:J2N.Collections.Generic.SortedSet`1.#ctor(System.Collections.Generic.IEnumerable{`0})">
<summary>
Initializes a new instance of the <see cref="T:J2N.Collections.Generic.SortedSet`1"/> class that contains elements copied
from a specified enumerable collection.
</summary>
<param name="collection">The enumerable collection to be copied.</param>
<remarks>
Duplicate elements in the enumerable collection are not copied into the new instance of the
<see cref="T:J2N.Collections.Generic.SortedSet`1"/> class, and no exceptions are thrown.
<para/>
This constructor is an <c>O(n log n)</c> operation, where <c>n</c> is the number of elements
in the <paramref name="collection"/> parameter.
</remarks>
</member>
<member name="M:J2N.Collections.Generic.SortedSet`1.#ctor(System.Collections.Generic.IEnumerable{`0},System.Collections.Generic.IComparer{`0})">
<summary>
Initializes a new instance of the <see cref="T:J2N.Collections.Generic.SortedSet`1"/> class that contains elements copied
from a specified enumerable collection and that uses a specified comparer.
</summary>
<param name="collection">The enumerable collection to be copied.</param>
<param name="comparer">The default comparer to use for comparing objects.</param>
<exception cref="T:System.ArgumentNullException"><paramref name="collection"/> is <c>null</c>.</exception>
</member>
<member name="M:J2N.Collections.Generic.SortedSet`1.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
<summary>
Initializes a new instance of the <see cref="T:J2N.Collections.Generic.SortedSet`1"/> class that contains serialized data.
</summary>
<param name="info">The object that contains the information that is required to serialize
the <see cref="T:J2N.Collections.Generic.SortedSet`1"/> object.</param>
<param name="context">The structure that contains the source and destination of the serialized
stream associated with the <see cref="T:J2N.Collections.Generic.SortedSet`1"/> object.</param>
<remarks>
This constructor is called during deserialization to reconstitute an object that is transmitted over a stream.
</remarks>
</member>
<member name="M:J2N.Collections.Generic.SortedSet`1.InOrderTreeWalk(J2N.Collections.Generic.TreeWalkPredicate{`0})">
<summary>
Does an in-order tree walk and calls the delegate for each node.
</summary>
<param name="action">
The delegate to invoke on each node.
If the delegate returns <c>false</c>, the walk is stopped.
</param>
<returns><c>true</c> if the entire tree has been walked; otherwise, <c>false</c>.</returns>
</member>
<member name="M:J2N.Collections.Generic.SortedSet`1.BreadthFirstTreeWalk(J2N.Collections.Generic.TreeWalkPredicate{`0})">
<summary>
Does a left-to-right breadth-first tree walk and calls the delegate for each node.
</summary>
<param name="action">
The delegate to invoke on each node.
If the delegate returns <c>false</c>, the walk is stopped.
</param>
<returns><c>true</c> if the entire tree has been walked; otherwise, <c>false</c>.</returns>
</member>
<member name="P:J2N.Collections.Generic.SortedSet`1.Count">
<summary>
Gets the number of elements in the <see cref="T:J2N.Collections.Generic.SortedSet`1"/>.
</summary>
<remarks>Retrieving the value of this property is an <c>O(1)</c> operation.</remarks>
</member>
<member name="P:J2N.Collections.Generic.SortedSet`1.Comparer">
<summary>
Gets the <see cref="T:System.Collections.Generic.IComparer`1"/> object that is used to order the values in the <see cref="T:J2N.Collections.Generic.SortedSet`1"/>.
</summary>
<remarks>
The returned comparer can be either J2N's default comparer of the type for a <see cref="T:J2N.Collections.Generic.SortedSet`1"/>,
or the comparer used for its constructor.
<para/>
Retrieving the value of this property is an <c>O(1)</c> operation.
</remarks>
</member>
<member name="M:J2N.Collections.Generic.SortedSet`1.AsReadOnly">
<summary>
Returns a read-only <see cref="T:J2N.Collections.ObjectModel.ReadOnlySet`1"/> wrapper for the current collection.
</summary>
<returns>An object that acts as a read-only wrapper around the current <see cref="T:J2N.Collections.Generic.SortedSet`1"/>.</returns>
<remarks>
To prevent any modifications to the <see cref="T:J2N.Collections.Generic.SortedSet`1"/> object, expose it only through this wrapper.
A <see cref="T:J2N.Collections.ObjectModel.ReadOnlySet`1"/> object does not expose methods that modify the collection. However,
if changes are made to the underlying <see cref="T:J2N.Collections.Generic.SortedSet`1"/> object, the read-only collection reflects those changes.
<para/>
This method is an O(1) operation.
</remarks>
</member>
<member name="M:J2N.Collections.Generic.SortedSet`1.TryGetPredecessor(`0,`0@)">
<summary>
Gets the entry in the <see cref="T:J2N.Collections.Generic.SortedSet`1"/> whose value
is the predecessor of the specified <paramref name="item"/>.
</summary>
<param name="item">The entry to get the predecessor of.</param>
<param name="result">The predessor, if any.</param>
<returns><c>true</c> if a predecessor to <paramref name="item"/> exists; otherwise, <c>false</c>.</returns>
</member>
<member name="M:J2N.Collections.Generic.SortedSet`1.TryGetSuccessor(`0,`0@)">
<summary>
Gets the entry in the <see cref="T:J2N.Collections.Generic.SortedSet`1"/> whose value
is the sucessor of the specified <paramref name="item"/>.
</summary>
<param name="item">The entry to get the successor of.</param>
<param name="result">The successor, if any.</param>
<returns><c>true</c> if a successor to <paramref name="item"/> exists; otherwise, <c>false</c>.</returns>
</member>
<member name="M:J2N.Collections.Generic.SortedSet`1.Add(`0)">
<summary>
Adds an element to the set and returns a value that indicates if it was successfully added.
</summary>
<param name="item">The element to add to the set.</param>
<returns><c>true</c> if item is added to the set; otherwise, <c>false</c>.</returns>
<remarks>
The <see cref="T:J2N.Collections.Generic.SortedSet`1"/> class does not accept duplicate elements. If item is already
in the set, this method returns <c>false</c> and does not throw an exception.
<para/>
If <see cref="P:J2N.Collections.Generic.SortedSet`1.Count"/> already equals the capacity of the <see cref="T:J2N.Collections.Generic.SortedSet`1"/> object,
the capacity is automatically adjusted to accommodate the new item.
</remarks>
</member>
<member name="M:J2N.Collections.Generic.SortedSet`1.Remove(`0)">
<summary>
Removes a specified item from the <see cref="T:J2N.Collections.Generic.SortedSet`1"/>.
</summary>
<param name="item">The element to remove.</param>
<returns><c>true</c> if the element is found and successfully removed; otherwise, <c>false</c>.</returns>
<remarks>
If the <see cref="T:J2N.Collections.Generic.SortedSet`1"/> object does not contain the specified element, the object remains
unchanged and no exception is thrown.
<para/>
<paramref name="item"/> can be <c>null</c> for reference types.
<para/>
This method is an <c>O(log n)</c> operation.
</remarks>
</member>
<member name="M:J2N.Collections.Generic.SortedSet`1.Clear">
<summary>
Removes all elements from the set.
</summary>
<remarks>
This method is an <c>O(n)</c> operation, where <c>n</c> is <see cref="P:J2N.Collections.Generic.SortedSet`1.Count"/>.
</remarks>
</member>
<member name="M:J2N.Collections.Generic.SortedSet`1.Contains(`0)">
<summary>
Determines whether the set contains a specific element.
</summary>
<param name="item">The element to locate in the set.</param>
<returns><c>true</c> if the set contains item; otherwise, <c>false</c>.</returns>
<remarks>This method is an <c>O(log n)</c> operation.</remarks>
</member>
<member name="M:J2N.Collections.Generic.SortedSet`1.CopyTo(`0[])">
<summary>
Copies the complete <see cref="T:J2N.Collections.Generic.SortedSet`1"/> to a compatible one-dimensional array,
starting at the beginning of the target array.
</summary>
<param name="array">A one-dimensional array that is the destination of the elements copied
from the <see cref="T:J2N.Collections.Generic.SortedSet`1"/>.</param>
<exception cref="T:System.ArgumentException">The number of elements in the source <see cref="T:J2N.Collections.Generic.SortedSet`1"/>
exceeds the number of elements that the destination array can contain.</exception>
<exception cref="T:System.ArgumentNullException"><paramref name="array"/> is <c>null</c>.</exception>
<remarks>The indexing of array must be zero-based.</remarks>
</member>
<member name="M:J2N.Collections.Generic.SortedSet`1.CopyTo(`0[],System.Int32)">
<summary>
Copies the complete <see cref="T:J2N.Collections.Generic.SortedSet`1"/> to a compatible one-dimensional array,
starting at the specified array index.
</summary>
<param name="array">A one-dimensional array that is the destination of the elements copied
from the <see cref="T:J2N.Collections.Generic.SortedSet`1"/>.The array must have zero-based indexing.</param>
<param name="index">The zero-based index in <paramref name="array"/> at which copying begins.</param>
<exception cref="T:System.ArgumentException">The number of elements in the source array is greater
than the available space from <paramref name="index"/> to the end of the destination array.</exception>
<exception cref="T:System.ArgumentNullException"><paramref name="array"/> is <c>null</c>.</exception>
<exception cref="T:System.ArgumentOutOfRangeException"><paramref name="index"/> is less than zero.</exception>
<remarks>This method is an <c>O(n)</c> operation, where <c>n</c> is <see cref="P:J2N.Collections.Generic.SortedSet`1.Count"/>.</remarks>
</member>
<member name="M:J2N.Collections.Generic.SortedSet`1.CopyTo(`0[],System.Int32,System.Int32)">
<summary>
Copies the complete <see cref="T:J2N.Collections.Generic.SortedSet`1"/> to a compatible one-dimensional array, starting
at the beginning of the target array.
</summary>
<param name="array">A one-dimensional array that is the destination of the elements copied from
the <see cref="T:J2N.Collections.Generic.SortedSet`1"/>. The array must have zero-based indexing.</param>
<param name="index">The zero-based index in <paramref name="array"/> at which copying begins.</param>
<param name="count">The number of elements to copy.</param>
<exception cref="T:System.ArgumentException">The number of elements in the source array is greater
than the available space from <paramref name="index"/> to the end of the destination array.</exception>
<exception cref="T:System.ArgumentNullException"><paramref name="array"/> is <c>null</c>.</exception>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="index"/> is less than zero.
<para/>
-or-
<para/>
<paramref name="count"/> is less than zero.
</exception>
<remarks>This method is an <c>O(n)</c> operation, where <c>n</c> is <see cref="P:J2N.Collections.Generic.SortedSet`1.Count"/>.</remarks>
</member>
<member name="M:J2N.Collections.Generic.SortedSet`1.GetEnumerator">
<summary>
Returns an enumerator that iterates through the <see cref="T:J2N.Collections.Generic.SortedSet`1"/>.
</summary>
<returns>An enumerator that iterates through the <see cref="T:J2N.Collections.Generic.SortedSet`1"/> in sorted order.</returns>
<remarks>
An enumerator remains valid as long as the collection remains unchanged. If changes are made to
the collection, such as adding, modifying, or deleting elements, the enumerator is irrecoverably
invalidated and the next call to <see cref="M:J2N.Collections.Generic.SortedSet`1.Enumerator.MoveNext"/> or <see cref="M:System.Collections.IEnumerator.Reset"/>
throws an <see cref="T:System.InvalidOperationException"/>.
<para/>
This method is an <c>O(log n)</c> operation.
</remarks>
</member>
<member name="M:J2N.Collections.Generic.SortedSet`1.ReplaceChildOrRoot(J2N.Collections.Generic.SortedSet{`0}.Node,J2N.Collections.Generic.SortedSet{`0}.Node,J2N.Collections.Generic.SortedSet{`0}.Node)">
<summary>
Replaces the child of a parent node, or replaces the root if the parent is <c>null</c>.
</summary>
<param name="parent">The (possibly <c>null</c>) parent.</param>
<param name="child">The child node to replace.</param>
<param name="newChild">The node to replace <paramref name="child"/> with.</param>
</member>
<member name="M:J2N.Collections.Generic.SortedSet`1.ReplaceNode(J2N.Collections.Generic.SortedSet{`0}.Node,J2N.Collections.Generic.SortedSet{`0}.Node,J2N.Collections.Generic.SortedSet{`0}.Node,J2N.Collections.Generic.SortedSet{`0}.Node)">
<summary>
Replaces the matching node with its successor.
</summary>
</member>
<member name="M:J2N.Collections.Generic.SortedSet`1.InternalIndexOf(`0)">
<summary>
Searches for an item and returns its zero-based index in this set.
</summary>
<param name="item">The item.</param>
<returns>The item's zero-based index in this set, or -1 if it isn't found.</returns>
<remarks>
<para>
This implementation is based off of http://en.wikipedia.org/wiki/Binary_Tree#Methods_for_storing_binary_trees.
</para>
<para>
This method is used with the <see cref="T:J2N.Collections.Generic.BitHelper"/> class. Note that this implementation is
completely different from <see cref="T:J2N.Collections.Generic.SortedSet`1.TreeSubSet"/>'s, and that the two should not be mixed.
</para>
</remarks>
</member>
<member name="M:J2N.Collections.Generic.SortedSet`1.CreateSetComparer">
<summary>
Returns an <see cref="T:System.Collections.Generic.IEqualityComparer`1"/> object that can be used to create a collection that contains individual sets.
</summary>
</member>
<member name="M:J2N.Collections.Generic.SortedSet`1.CreateSetComparer(System.Collections.Generic.IEqualityComparer{`0})">
<summary>
Returns an <see cref="T:System.Collections.Generic.IEqualityComparer`1"/> object, according to a specified comparer, that can be used to create a collection that contains individual sets.
</summary>
</member>
<member name="M:J2N.Collections.Generic.SortedSet`1.SortedSetEquals(J2N.Collections.Generic.SortedSet{`0},J2N.Collections.Generic.SortedSet{`0},System.Collections.Generic.IComparer{`0})">
<summary>
Decides whether two sets have equal contents, using a fallback comparer if the sets do not have equivalent equality comparers.
</summary>
<param name="set1">The first set.</param>
<param name="set2">The second set.</param>
<param name="comparer">The fallback comparer to use if the sets do not have equal comparers.</param>
<returns><c>true</c> if the sets have equal contents; otherwise, <c>false</c>.</returns>
</member>
<member name="M:J2N.Collections.Generic.SortedSet`1.HasEqualComparer(J2N.Collections.Generic.SortedSet{`0})">
<summary>
Determines whether two <see cref="T:J2N.Collections.Generic.SortedSet`1"/> instances have the same comparer.
</summary>
<param name="other">The other <see cref="T:J2N.Collections.Generic.SortedSet`1"/>.</param>
<returns>A value indicating whether both sets have the same comparer.</returns>
</member>
<member name="M:J2N.Collections.Generic.SortedSet`1.UnionWith(System.Collections.Generic.IEnumerable{`0})">
<summary>
Modifies the current <see cref="T:J2N.Collections.Generic.SortedSet`1"/> object so that it contains all
elements that are present in either the current object or the specified collection.
</summary>
<param name="other">The collection to compare to the current <see cref="T:J2N.Collections.Generic.SortedSet`1"/> object.</param>
<exception cref="T:System.ArgumentNullException"><paramref name="other"/> is <c>null</c>.</exception>
<remarks>Any duplicate elements in <paramref name="other"/> are ignored.</remarks>
</member>
<member name="M:J2N.Collections.Generic.SortedSet`1.IntersectWith(System.Collections.Generic.IEnumerable{`0})">
<summary>
Modifies the current <see cref="T:J2N.Collections.Generic.SortedSet`1"/> object so that it contains only elements
that are also in a specified collection.
</summary>
<param name="other">The collection to compare to the current <see cref="T:J2N.Collections.Generic.SortedSet`1"/> object.</param>
<exception cref="T:System.ArgumentNullException"><paramref name="other"/> is <c>null</c>.</exception>
<remarks>
This method ignores any duplicate elements in <paramref name="other"/>.
<para/>
If the collection represented by the <paramref name="other"/> parameter is a <see cref="T:J2N.Collections.Generic.SortedSet`1"/> collection with
the same equality comparer as the current <see cref="T:J2N.Collections.Generic.SortedSet`1"/> object, this method is an <c>O(n)</c>
operation. Otherwise, this method is an <c>O(n + m)</c> operation, where <c>n</c> is <see cref="P:J2N.Collections.Generic.SortedSet`1.Count"/> and <c>m</c>
is the number of elements in <paramref name="other"/>.
</remarks>
</member>
<member name="M:J2N.Collections.Generic.SortedSet`1.ExceptWith(System.Collections.Generic.IEnumerable{`0})">
<summary>
Removes all elements that are in a specified collection from the current <see cref="T:J2N.Collections.Generic.SortedSet`1"/> object.
</summary>
<param name="other">The collection of items to remove from the <see cref="T:J2N.Collections.Generic.SortedSet`1"/> object.</param>
<exception cref="T:System.ArgumentNullException"><paramref name="other"/> is <c>null</c>.</exception>
<remarks>
This method removes any element in the current <see cref="T:J2N.Collections.Generic.SortedSet`1"/> that is also in <paramref name="other"/>.
Duplicate values in <paramref name="other"/> are ignored.
<para/>
This method is an <c>O(n)</c> operation, where <c>n</c> is the number of elements in the
<paramref name="other"/> parameter.
</remarks>
</member>
<member name="M:J2N.Collections.Generic.SortedSet`1.SymmetricExceptWith(System.Collections.Generic.IEnumerable{`0})">
<summary>
Modifies the current <see cref="T:J2N.Collections.Generic.SortedSet`1"/> object so that it contains only elements
that are present either in the current object or in the specified collection, but not both.
</summary>
<param name="other">The collection to compare to the current <see cref="T:J2N.Collections.Generic.SortedSet`1"/> object.</param>
<exception cref="T:System.ArgumentNullException"><paramref name="other"/> is <c>null</c>.</exception>
<remarks>
Any duplicate elements in <paramref name="other"/> are ignored.
<para/>
If the other parameter is a <see cref="T:J2N.Collections.Generic.SortedSet`1"/> collection with the same equality comparer as
the current <see cref="T:J2N.Collections.Generic.SortedSet`1"/> object, this method is an <c>O(n log m)</c> operation. Otherwise,
this method is an <c>O(n log m) + O(n log n)</c> operation, where <c>n</c> is the number of elements
in <paramref name="other"/> and <c>m</c> is <see cref="P:J2N.Collections.Generic.SortedSet`1.Count"/>.
</remarks>
</member>
<member name="M:J2N.Collections.Generic.SortedSet`1.IsSubsetOf(System.Collections.Generic.IEnumerable{`0})">
<summary>
Determines whether a <see cref="T:J2N.Collections.Generic.SortedSet`1"/> object is a subset of the specified collection.
</summary>
<param name="other">The collection to compare to the current <see cref="T:J2N.Collections.Generic.SortedSet`1"/> object.</param>
<returns><c>true</c> if the current <see cref="T:J2N.Collections.Generic.SortedSet`1"/> object is a subset of <paramref name="other"/>;
otherwise, <c>false</c>.</returns>
<exception cref="T:System.ArgumentNullException"><paramref name="other"/> is <c>null</c>.</exception>
<remarks>An empty set is a subset of any other collection, including an empty set; therefore, this method returns true
if the collection represented by the current <see cref="T:J2N.Collections.Generic.SortedSet`1"/> object is empty, even if the <paramref name="other"/> parameter is an empty set.
<para/>
This method always returns <c>false</c> if <see cref="P:J2N.Collections.Generic.SortedSet`1.Count"/> is greater than the number of elements in <paramref name="other"/>.
<para/>
If the collection represented by <paramref name="other"/> is a <see cref="T:J2N.Collections.Generic.SortedSet`1"/> collection with the same equality comparer as the
current <see cref="T:J2N.Collections.Generic.SortedSet`1"/> object, this method is an <c>O(n)</c> operation. Otherwise, this method is an
<c>O(n + m)</c> operation, where <c>n</c> is <see cref="P:J2N.Collections.Generic.SortedSet`1.Count"/> and <c>m</c> is the number of elements in <paramref name="other"/>.
</remarks>
</member>
<member name="M:J2N.Collections.Generic.SortedSet`1.IsProperSubsetOf(System.Collections.Generic.IEnumerable{`0})">
<summary>
Determines whether a <see cref="T:J2N.Collections.Generic.SortedSet`1"/> object is a proper subset of the specified collection.
</summary>
<param name="other">The collection to compare to the current <see cref="T:J2N.Collections.Generic.SortedSet`1"/> object.</param>
<returns><c>true</c> if the current <see cref="T:J2N.Collections.Generic.SortedSet`1"/> object is a proper subset of <paramref name="other"/>;
otherwise, <c>false</c>.</returns>
<exception cref="T:System.ArgumentNullException"><paramref name="other"/> is <c>null</c>.</exception>
<remarks>
An empty set is a proper subset of any other collection. Therefore, this method returns <c>true</c> if the
collection represented by the current <see cref="T:J2N.Collections.Generic.SortedSet`1"/> object is empty unless the other parameter
is also an empty set.
<para/>
This method always returns false if <see cref="P:J2N.Collections.Generic.SortedSet`1.Count"/> is greater than or equal to the number of elements
in <paramref name="other"/>.
<para/>
If the collection represented by <paramref name="other"/> is a <see cref="T:J2N.Collections.Generic.SortedSet`1"/> collection with the same
equality comparer as the current <see cref="T:J2N.Collections.Generic.SortedSet`1"/> object, then this method is an <c>O(n)</c>
operation. Otherwise, this method is an <c>O(n + m)</c> operation, where <c>n</c> is <see cref="P:J2N.Collections.Generic.SortedSet`1.Count"/> and <c>m</c>
is the number of elements in <paramref name="other"/>.
</remarks>
</member>
<member name="M:J2N.Collections.Generic.SortedSet`1.IsSupersetOf(System.Collections.Generic.IEnumerable{`0})">
<summary>
Determines whether a <see cref="T:J2N.Collections.Generic.SortedSet`1"/> object is a superset of the specified collection.
</summary>
<param name="other">The collection to compare to the current <see cref="T:J2N.Collections.Generic.SortedSet`1"/> object.</param>
<returns><c>true</c> if the current <see cref="T:J2N.Collections.Generic.SortedSet`1"/> object is a superset of <paramref name="other"/>;
otherwise, <c>false</c>.</returns>
<exception cref="T:System.ArgumentNullException"><paramref name="other"/> is <c>null</c>.</exception>
<remarks>
All collections, including the empty set, are supersets of the empty set. Therefore, this method returns
<c>true</c> if the collection represented by the <paramref name="other"/> parameter is empty, even if
the current <see cref="T:J2N.Collections.Generic.SortedSet`1"/> object is empty.
<para/>
This method always returns <c>false</c> if <see cref="P:J2N.Collections.Generic.SortedSet`1.Count"/> is less than the number of elements in <paramref name="other"/>.
<para/>
If the collection represented by <paramref name="other"/> is a <see cref="T:J2N.Collections.Generic.SortedSet`1"/> collection with
the same equality comparer as the current <see cref="T:J2N.Collections.Generic.SortedSet`1"/> object, this method is an <c>O(n)</c>
operation. Otherwise, this method is an <c>O(n + m)</c> operation, where <c>n</c> is the number of
elements in <paramref name="other"/> and <c>m</c> is <see cref="P:J2N.Collections.Generic.SortedSet`1.Count"/>.
</remarks>
</member>
<member name="M:J2N.Collections.Generic.SortedSet`1.IsProperSupersetOf(System.Collections.Generic.IEnumerable{`0})">
<summary>
Determines whether a <see cref="T:J2N.Collections.Generic.SortedSet`1"/> object is a proper superset of the specified collection.
</summary>
<param name="other">The collection to compare to the current <see cref="T:J2N.Collections.Generic.SortedSet`1"/> object.</param>
<returns><c>true</c> if the current <see cref="T:J2N.Collections.Generic.SortedSet`1"/> object is a proper superset of <paramref name="other"/>;
otherwise, <c>false</c>.</returns>
<exception cref="T:System.ArgumentNullException"><paramref name="other"/> is <c>null</c>.</exception>
<remarks>
An empty set is a proper superset of any other collection. Therefore, this method returns <c>true</c>
if the collection represented by the other parameter is empty unless the current <see cref="T:J2N.Collections.Generic.SortedSet`1"/> collection is also empty.
<para/>
This method always returns <c>false</c> if <see cref="P:J2N.Collections.Generic.SortedSet`1.Count"/> is less than or equal to the number of elements in <paramref name="other"/>.
<para/>
If the collection represented by <paramref name="other"/> is a <see cref="T:J2N.Collections.Generic.SortedSet`1"/> collection with the same equality comparer
as the current <see cref="T:J2N.Collections.Generic.SortedSet`1"/> object, this method is an <c>O(n)</c> operation. Otherwise, this
method is an <c>O(n + m)</c> operation, where <c>n</c> is the number of elements in <paramref name="other"/> and <c>m</c> is <see cref="P:J2N.Collections.Generic.SortedSet`1.Count"/>.
</remarks>
</member>
<member name="M:J2N.Collections.Generic.SortedSet`1.SetEquals(System.Collections.Generic.IEnumerable{`0})">
<summary>
Determines whether the current <see cref="T:J2N.Collections.Generic.SortedSet`1"/> object and the specified
collection contain the same elements.
</summary>
<param name="other">The collection to compare to the current <see cref="T:J2N.Collections.Generic.SortedSet`1"/> object.</param>
<returns><c>true</c> if the current <see cref="T:J2N.Collections.Generic.SortedSet`1"/> object is equal to <paramref name="other"/>;
otherwise, <c>false</c>.</returns>
<exception cref="T:System.ArgumentNullException"><paramref name="other"/> is <c>null</c>.</exception>
<remarks>
This method ignores the order of elements and any duplicate elements in <paramref name="other"/>.
<para/>
If the collection represented by other is a <see cref="T:J2N.Collections.Generic.SortedSet`1"/> collection with the same
equality comparer as the current <see cref="T:J2N.Collections.Generic.SortedSet`1"/> object, this method is an <c>O(log n)</c>
operation. Otherwise, this method is an <c>O(n + m)</c> operation, where <c>n</c> is the number of
elements in other and <c>m</c> is <see cref="P:J2N.Collections.Generic.SortedSet`1.Count"/>.
</remarks>
</member>
<member name="M:J2N.Collections.Generic.SortedSet`1.Overlaps(System.Collections.Generic.IEnumerable{`0})">
<summary>
Determines whether the current <see cref="T:J2N.Collections.Generic.SortedSet`1"/> object and a specified collection share common elements.
</summary>
<param name="other">The collection to compare to the current <see cref="T:J2N.Collections.Generic.SortedSet`1"/> object.</param>
<returns><c>true</c> if the <see cref="T:J2N.Collections.Generic.SortedSet`1"/> object and <paramref name="other"/> share at
least one common element; otherwise, <c>false</c>.</returns>
</member>
<member name="M:J2N.Collections.Generic.SortedSet`1.CheckUniqueAndUnfoundElements(System.Collections.Generic.IEnumerable{`0},System.Boolean)">
<summary>
This works similar to HashSet's CheckUniqueAndUnfound (description below), except that the bit
array maps differently than in the HashSet. We can only use this for the bulk boolean checks.
Determines counts that can be used to determine equality, subset, and superset. This
is only used when other is an IEnumerable and not a HashSet. If other is a HashSet
these properties can be checked faster without use of marking because we can assume
other has no duplicates.
The following count checks are performed by callers:
1. Equals: checks if UnfoundCount = 0 and uniqueFoundCount = Count; i.e. everything
in other is in this and everything in this is in other
2. Subset: checks if UnfoundCount >= 0 and uniqueFoundCount = Count; i.e. other may
have elements not in this and everything in this is in other
3. Proper subset: checks if UnfoundCount > 0 and uniqueFoundCount = Count; i.e
other must have at least one element not in this and everything in this is in other
4. Proper superset: checks if unfound count = 0 and uniqueFoundCount strictly less
than Count; i.e. everything in other was in this and this had at least one element
not contained in other.
An earlier implementation used delegates to perform these checks rather than returning
an ElementCount struct; however this was changed due to the perf overhead of delegates.
</summary>
</member>
<member name="M:J2N.Collections.Generic.SortedSet`1.RemoveWhere(System.Predicate{`0})">
<summary>
Removes all elements that match the conditions defined by the specified predicate
from a <see cref="T:J2N.Collections.Generic.SortedSet`1"/>.
</summary>
<param name="match">The delegate that defines the conditions of the elements to remove.</param>
<returns>The number of elements that were removed from the <see cref="T:J2N.Collections.Generic.SortedSet`1"/> collection.</returns>
<exception cref="T:System.ArgumentNullException"><paramref name="match"/> is <c>null</c>.</exception>
</member>
<member name="P:J2N.Collections.Generic.SortedSet`1.Min">
<summary>
Gets the minimum value in the <see cref="T:J2N.Collections.Generic.SortedSet`1"/>, as defined by the comparer.
</summary>
<remarks>
If the <see cref="T:J2N.Collections.Generic.SortedSet`1"/> has no elements, then the <see cref="P:J2N.Collections.Generic.SortedSet`1.Min"/> property returns
the default value of <typeparamref name="T"/>.
</remarks>
</member>
<member name="P:J2N.Collections.Generic.SortedSet`1.Max">
<summary>
Gets the maximum value in the <see cref="T:J2N.Collections.Generic.SortedSet`1"/>, as defined by the comparer.
</summary>
<remarks>
If the <see cref="T:J2N.Collections.Generic.SortedSet`1"/> has no elements, then the <see cref="P:J2N.Collections.Generic.SortedSet`1.Max"/> property returns
the default value of <typeparamref name="T"/>.
</remarks>
</member>
<member name="M:J2N.Collections.Generic.SortedSet`1.Reverse">
<summary>
Returns an <see cref="T:System.Collections.Generic.IEnumerable`1"/> that iterates over the
<see cref="T:J2N.Collections.Generic.SortedSet`1"/> in reverse order.
</summary>
<returns>An enumerator that iterates over the <see cref="T:J2N.Collections.Generic.SortedSet`1"/> in reverse order.</returns>
</member>
<member name="M:J2N.Collections.Generic.SortedSet`1.GetViewBetween(`0,`0)">
<summary>
Returns a view of a subset in a <see cref="T:J2N.Collections.Generic.SortedSet`1"/>.
<para/>
Usage Note: In Java, the upper bound of TreeSet.subSet() is exclusive. To match the behavior, call
<see cref="M:J2N.Collections.Generic.SortedSet`1.GetViewBetween(`0,System.Boolean,`0,System.Boolean)"/>, setting <c>lowerValueInclusive</c> to <c>true</c>
and <c>upperValueInclusive</c> to <c>false</c>.
</summary>
<param name="lowerValue">The lowest desired value in the view.</param>
<param name="upperValue">The highest desired value in the view.</param>
<returns>A subset view that contains only the values in the specified range.</returns>
<exception cref="T:System.ArgumentException"><paramref name="lowerValue"/> is more than <paramref name="upperValue"/>
according to the comparer.</exception>
<exception cref="T:System.ArgumentOutOfRangeException">A tried operation on the view was outside the range
specified by <paramref name="lowerValue"/> and <paramref name="upperValue"/>.</exception>
<remarks>
This method returns a view of the range of elements that fall between <paramref name="lowerValue"/> and
<paramref name="upperValue"/> (inclusive), as defined by the comparer. This method does not copy elements from the
<see cref="T:J2N.Collections.Generic.SortedSet`1"/>, but provides a window into the underlying <see cref="T:J2N.Collections.Generic.SortedSet`1"/> itself.
You can make changes in both the view and in the underlying <see cref="T:J2N.Collections.Generic.SortedSet`1"/>.
</remarks>
</member>
<member name="M:J2N.Collections.Generic.SortedSet`1.GetViewBetween(`0,System.Boolean,`0,System.Boolean)">
<summary>
Returns a view of a subset in a <see cref="T:J2N.Collections.Generic.SortedSet`1"/>.
<para/>
Usage Note: To match the behavior of the JDK, call this overload with <paramref name="lowerValueInclusive"/>
set to <c>true</c> and <paramref name="upperValueInclusive"/> set to <c>false</c>.
</summary>
<param name="lowerValue">The lowest value in the range for the view.</param>
<param name="lowerValueInclusive">If <c>true</c>, <paramref name="lowerValue"/> will be included in the range;
otherwise, it is an exclusive lower bound.</param>
<param name="upperValue">The highest desired value in the view.</param>
<param name="upperValueInclusive">If <c>true</c>, <paramref name="upperValue"/> will be included in the range;
otherwise, it is an exclusive upper bound.</param>
<returns>A subset view that contains only the values in the specified range.</returns>
<exception cref="T:System.ArgumentException"><paramref name="lowerValue"/> is more than <paramref name="upperValue"/>
according to the comparer.</exception>
<exception cref="T:System.ArgumentOutOfRangeException">A tried operation on the view was outside the range
specified by <paramref name="lowerValue"/> and <paramref name="upperValue"/>.</exception>
<remarks>
This method returns a view of the range of elements that fall between <paramref name="lowerValue"/> and
<paramref name="upperValue"/>, as defined by the comparer. Each bound may either be inclusive
(<c>true</c>) or exclusive (<c>false</c>) depending on the values of <paramref name="lowerValueInclusive"/>
and <paramref name="upperValueInclusive"/>. This method does not copy elements from the
<see cref="T:J2N.Collections.Generic.SortedSet`1"/>, but provides a window into the underlying <see cref="T:J2N.Collections.Generic.SortedSet`1"/> itself.
You can make changes in both the view and in the underlying <see cref="T:J2N.Collections.Generic.SortedSet`1"/>.
</remarks>
</member>
<member name="M:J2N.Collections.Generic.SortedSet`1.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
<summary>
Implements the <see cref="T:System.Runtime.Serialization.ISerializable"/> interface and returns the data that you must have to serialize a
<see cref="T:J2N.Collections.Generic.SortedSet`1"/> object.
</summary>
<param name="info">A <see cref="T:System.Runtime.Serialization.SerializationInfo"/> object that contains the information that is required
to serialize the <see cref="T:J2N.Collections.Generic.SortedSet`1"/> object.</param>
<param name="context">A <see cref="T:System.Runtime.Serialization.StreamingContext"/> structure that contains the source and destination
of the serialized stream associated with the <see cref="T:J2N.Collections.Generic.SortedSet`1"/> object.</param>
<exception cref="T:System.ArgumentNullException"><paramref name="info"/> is <c>null</c>.</exception>
<remarks>Calling this method is an <c>O(n)</c> operation, where <c>n</c> is <see cref="P:J2N.Collections.Generic.SortedSet`1.Count"/>.</remarks>
</member>
<member name="M:J2N.Collections.Generic.SortedSet`1.OnDeserialization(System.Object)">
<summary>
Implements the <see cref="T:System.Runtime.Serialization.ISerializable"/> interface, and raises the deserialization
event when the deserialization is completed.
</summary>
<param name="sender">The source of the deserialization event.</param>
<exception cref="T:System.Runtime.Serialization.SerializationException">The <see cref="T:System.Runtime.Serialization.SerializationInfo"/> object associated
with the current <see cref="T:J2N.Collections.Generic.SortedSet`1"/> object is invalid.</exception>
<remarks>Calling this method is an <c>O(n)</c> operation, where <c>n</c> is <see cref="P:J2N.Collections.Generic.SortedSet`1.Count"/>.</remarks>
</member>
<member name="M:J2N.Collections.Generic.SortedSet`1.Node.GetRotation(J2N.Collections.Generic.SortedSet{`0}.Node,J2N.Collections.Generic.SortedSet{`0}.Node)">
<summary>
Gets the rotation this node should undergo during a removal.
</summary>
</member>
<member name="M:J2N.Collections.Generic.SortedSet`1.Node.GetSibling(J2N.Collections.Generic.SortedSet{`0}.Node)">
<summary>
Gets the sibling of one of this node's children.
</summary>
</member>
<member name="M:J2N.Collections.Generic.SortedSet`1.Node.Rotate(J2N.Collections.Generic.TreeRotation)">
<summary>
Does a rotation on this tree. May change the color of a grandchild from red to black.
</summary>
</member>
<member name="M:J2N.Collections.Generic.SortedSet`1.Node.RotateLeft">
<summary>
Does a left rotation on this tree, making this node the new left child of the current right child.
</summary>
</member>
<member name="M:J2N.Collections.Generic.SortedSet`1.Node.RotateLeftRight">
<summary>
Does a left-right rotation on this tree. The left child is rotated left, then this node is rotated right.
</summary>
</member>
<member name="M:J2N.Collections.Generic.SortedSet`1.Node.RotateRight">
<summary>
Does a right rotation on this tree, making this node the new right child of the current left child.
</summary>
</member>
<member name="M:J2N.Collections.Generic.SortedSet`1.Node.RotateRightLeft">
<summary>
Does a right-left rotation on this tree. The right child is rotated right, then this node is rotated left.
</summary>
</member>
<member name="M:J2N.Collections.Generic.SortedSet`1.Node.Merge2Nodes">
<summary>
Combines two 2-nodes into a 4-node.
</summary>
</member>
<member name="M:J2N.Collections.Generic.SortedSet`1.Node.ReplaceChild(J2N.Collections.Generic.SortedSet{`0}.Node,J2N.Collections.Generic.SortedSet{`0}.Node)">
<summary>
Replaces a child of this node with a new node.
</summary>
<param name="child">The child to replace.</param>
<param name="newChild">The node to replace <paramref name="child"/> with.</param>
</member>
<member name="T:J2N.Collections.Generic.SortedSet`1.Enumerator">
<summary>
Enumerates the elements of a <see cref="T:J2N.Collections.Generic.SortedSet`1"/> object.
</summary>
<remarks>
The <c>foreach</c> statement of the C# language (<c>for each</c> in C++, <c>For Each</c> in Visual Basic)
hides the complexity of enumerators. Therefore, using <c>foreach</c> is recommended instead of directly manipulating the enumerator.
<para/>
Enumerators can be used to read the data in the collection, but they cannot be used to modify the underlying collection.
<para/>
Initially, the enumerator is positioned before the first element in the collection. At this position, the
<see cref="P:J2N.Collections.Generic.SortedSet`1.Enumerator.Current"/> property is undefined. Therefore, you must call the
<see cref="M:J2N.Collections.Generic.SortedSet`1.Enumerator.MoveNext"/> method to advance the enumerator to the first element
of the collection before reading the value of <see cref="P:J2N.Collections.Generic.SortedSet`1.Enumerator.Current"/>.
<para/>
The <see cref="P:J2N.Collections.Generic.SortedSet`1.Enumerator.Current"/> property returns the same object until
<see cref="M:J2N.Collections.Generic.SortedSet`1.Enumerator.MoveNext"/> is called. <see cref="M:J2N.Collections.Generic.SortedSet`1.Enumerator.MoveNext"/>
sets <see cref="P:J2N.Collections.Generic.SortedSet`1.Enumerator.Current"/> to the next element.
<para/>
If <see cref="M:J2N.Collections.Generic.SortedSet`1.Enumerator.MoveNext"/> passes the end of the collection, the enumerator is
positioned after the last element in the collection and <see cref="M:J2N.Collections.Generic.SortedSet`1.Enumerator.MoveNext"/>
returns <c>false</c>. When the enumerator is at this position, subsequent calls to <see cref="M:J2N.Collections.Generic.SortedSet`1.Enumerator.MoveNext"/>
also return <c>false</c>. If the last call to <see cref="M:J2N.Collections.Generic.SortedSet`1.Enumerator.MoveNext"/> returned false,
<see cref="P:J2N.Collections.Generic.SortedSet`1.Enumerator.Current"/> is undefined. You cannot set <see cref="P:J2N.Collections.Generic.SortedSet`1.Enumerator.Current"/>
to the first element of the collection again; you must create a new enumerator object instead.
<para/>
An enumerator remains valid as long as the collection remains unchanged. If changes are made to the collection,
such as adding, modifying, or deleting elements, the enumerator is irrecoverably invalidated and the next call
to <see cref="M:J2N.Collections.Generic.SortedSet`1.Enumerator.MoveNext"/> or <see cref="M:System.Collections.IEnumerator.Reset"/> throws an
<see cref="T:System.InvalidOperationException"/>.
<para/>
The enumerator does not have exclusive access to the collection; therefore, enumerating through a collection is
intrinsically not a thread-safe procedure. To guarantee thread safety during enumeration, you can lock the
collection during the entire enumeration. To allow the collection to be accessed by multiple threads for
reading and writing, you must implement your own synchronization.
<para/>
Default implementations of collections in the <see cref="N:J2N.Collections.Generic"/> namespace are not synchronized.
<para/>
This method is an O(1) operation.
</remarks>
</member>
<member name="M:J2N.Collections.Generic.SortedSet`1.Enumerator.MoveNext">
<summary>
Advances the enumerator to the next element of the <see cref="T:J2N.Collections.Generic.SortedSet`1"/> collection.
</summary>
<returns><c>true</c> if the enumerator was successfully advanced to the next element;
<c>false</c> if the enumerator has passed the end of the collection.</returns>
<exception cref="T:System.InvalidOperationException">The collection was modified after the enumerator was created.</exception>
<remarks>
After an enumerator is created, the enumerator is positioned before the first element in the collection, and
the first call to the <see cref="M:J2N.Collections.Generic.SortedSet`1.Enumerator.MoveNext"/> method advances the enumerator to the first element of the collection.
<para/>
If <see cref="M:J2N.Collections.Generic.SortedSet`1.Enumerator.MoveNext"/> passes the end of the collection, the enumerator is positioned after the last element
in the collection and <see cref="M:J2N.Collections.Generic.SortedSet`1.Enumerator.MoveNext"/> returns <c>false</c>. When the enumerator is at this position,
subsequent calls to <see cref="M:J2N.Collections.Generic.SortedSet`1.Enumerator.MoveNext"/> also return <c>false</c>.
<para/>
An enumerator remains valid as long as the collection remains unchanged. If changes are made to the collection,
such as adding, modifying, or deleting elements, the enumerator is irrecoverably invalidated and the next call
to <see cref="M:J2N.Collections.Generic.SortedSet`1.Enumerator.MoveNext"/> or <see cref="M:System.Collections.IEnumerator.Reset"/> throws an <see cref="T:System.InvalidOperationException"/>.
</remarks>
</member>
<member name="M:J2N.Collections.Generic.SortedSet`1.Enumerator.Dispose">
<summary>
Releases all resources used by the <see cref="T:J2N.Collections.Generic.SortedSet`1.Enumerator"/>.
</summary>
</member>
<member name="P:J2N.Collections.Generic.SortedSet`1.Enumerator.Current">
<summary>
Gets the element at the current position of the enumerator.
</summary>
<remarks>
<see cref="P:J2N.Collections.Generic.SortedSet`1.Enumerator.Current"/> is undefined under any of the following conditions:
<list type="bullet">
<item><description>
The enumerator is positioned before the first element of the collection.
That happens after an enumerator is created or after the <see cref="M:System.Collections.IEnumerator.Reset"/>
method is called. The <see cref="M:J2N.Collections.Generic.SortedSet`1.Enumerator.MoveNext"/> method must be called to advance the
enumerator to the first element of the collection before reading the value of the
<see cref="P:J2N.Collections.Generic.SortedSet`1.Enumerator.Current"/> property.
</description></item>
<item><description>
The last call to <see cref="M:J2N.Collections.Generic.SortedSet`1.Enumerator.MoveNext"/> returned <c>false</c>, which indicates the
end of the collection and that the enumerator is positioned after the last element
of the collection.
</description></item>
<item><description>
The enumerator is invalidated due to changes made in the collection, such as adding,
modifying, or deleting elements.
</description></item>
</list>
<para/>
<see cref="P:J2N.Collections.Generic.SortedSet`1.Enumerator.Current"/> does not move the position of the enumerator, and consecutive calls to
<see cref="P:J2N.Collections.Generic.SortedSet`1.Enumerator.Current"/> return the same object until either <see cref="M:J2N.Collections.Generic.SortedSet`1.Enumerator.MoveNext"/> or
<see cref="M:System.Collections.IEnumerator.Reset"/> is called.
</remarks>
</member>
<member name="M:J2N.Collections.Generic.SortedSet`1.TryGetValue(`0,`0@)">
<summary>
Searches the set for a given value and returns the equal value it finds, if any.
</summary>
<param name="equalValue">The value to search for.</param>
<param name="actualValue">The value from the set that the search found, or the default value of <typeparamref name="T"/> when the search yielded no match.</param>
<returns>A value indicating whether the search was successful.</returns>
<remarks>
This can be useful when you want to reuse a previously stored reference instead of
a newly constructed one (so that more sharing of references can occur) or to look up
a value that has more complete data than the value you currently have, although their
comparer functions indicate they are equal.
</remarks>
</member>
<member name="M:J2N.Collections.Generic.SortedSet`1.Equals(System.Object,System.Collections.IEqualityComparer)">
<summary>
Determines whether the specified object is structurally equal to the current set
using rules provided by the specified <paramref name="comparer"/>.
</summary>
<param name="other">The object to compare with the current object.</param>
<param name="comparer">The <see cref="T:System.Collections.IEqualityComparer"/> implementation to use to determine
whether the current object and <paramref name="other"/> are structurally equal.</param>
<returns><c>true</c> if <paramref name="other"/> is structurally equal to the current set;
otherwise, <c>false</c>.</returns>
<exception cref="T:System.ArgumentNullException">If <paramref name="comparer"/> is <c>null</c>.</exception>
</member>
<member name="M:J2N.Collections.Generic.SortedSet`1.GetHashCode(System.Collections.IEqualityComparer)">
<summary>
Gets the hash code representing the current set using rules specified by the
provided <paramref name="comparer"/>.
</summary>
<param name="comparer">The <see cref="T:System.Collections.IEqualityComparer"/> implementation to use to generate
the hash code.</param>
<returns>A hash code representing the current set.</returns>
</member>
<member name="M:J2N.Collections.Generic.SortedSet`1.Equals(System.Object)">
<summary>
Determines whether the specified object is structurally equal to the current set
using rules similar to those in the JDK's AbstactSet class. Two sets are considered
equal when they both contain the same objects (in any order).
</summary>
<param name="obj">The object to compare with the current object.</param>
<returns><c>true</c> if the specified object implements <see cref="T:System.Collections.Generic.ISet`1"/>
and it contains the same elements; otherwise, <c>false</c>.</returns>
<seealso cref="M:J2N.Collections.Generic.SortedSet`1.Equals(System.Object,System.Collections.IEqualityComparer)"/>
</member>
<member name="M:J2N.Collections.Generic.SortedSet`1.GetHashCode">
<summary>
Gets the hash code for the current list. The hash code is calculated
by taking each nested element's hash code into account.
</summary>
<returns>A hash code for the current object.</returns>
<seealso cref="M:J2N.Collections.Generic.SortedSet`1.GetHashCode(System.Collections.IEqualityComparer)"/>
</member>
<member name="M:J2N.Collections.Generic.SortedSet`1.ToString(System.String,System.IFormatProvider)">
<summary>
Returns a string that represents the current set using the specified
<paramref name="format"/> and <paramref name="formatProvider"/>.
</summary>
<returns>A string that represents the current set.</returns>
<exception cref="T:System.ArgumentNullException"><paramref name="format"/> is <c>null</c>.</exception>
<exception cref="T:System.FormatException">
<paramref name="format"/> is invalid.
<para/>
-or-
<para/>
The index of a format item is not zero.
</exception>
</member>
<member name="M:J2N.Collections.Generic.SortedSet`1.ToString">
<summary>
Returns a string that represents the current set using
<see cref="P:J2N.Text.StringFormatter.CurrentCulture"/>.
<para/>
The presentation has a specific format. It is enclosed by square
brackets ("[]"). Elements are separated by ', ' (comma and space).
</summary>
<returns>A string that represents the current set.</returns>
</member>
<member name="M:J2N.Collections.Generic.SortedSet`1.ToString(System.IFormatProvider)">
<summary>
Returns a string that represents the current set using the specified
<paramref name="formatProvider"/>.
</summary>
<returns>A string that represents the current set.</returns>
<exception cref="T:System.ArgumentNullException"><paramref name="formatProvider"/> is <c>null</c>.</exception>
</member>
<member name="M:J2N.Collections.Generic.SortedSet`1.ToString(System.String)">
<summary>
Returns a string that represents the current set using the specified
<paramref name="format"/> and <see cref="P:J2N.Text.StringFormatter.CurrentCulture"/>.
<para/>
The presentation has a specific format. It is enclosed by square
brackets ("[]"). Elements are separated by ', ' (comma and space).
</summary>
<returns>A string that represents the current set.</returns>
<exception cref="T:System.ArgumentNullException"><paramref name="format"/> is <c>null</c>.</exception>
<exception cref="T:System.FormatException">
<paramref name="format"/> is invalid.
<para/>
-or-
<para/>
The index of a format item is not zero.
</exception>
</member>
<member name="T:J2N.Collections.Generic.SortedSet`1.TreeSubSet">
<summary>
This class represents a subset view into the tree. Any changes to this view
are reflected in the actual tree. It uses the comparer of the underlying tree.
</summary>
</member>
<member name="M:J2N.Collections.Generic.SortedSet`1.TreeSubSet.VersionCheck(System.Boolean)">
<summary>
Checks whether this subset is out of date, and updates it if necessary.
<param name="updateCount">Updates the count variable if necessary.</param>
</summary>
</member>
<member name="M:J2N.Collections.Generic.SortedSet`1.TreeSubSet.TotalCount">
<summary>
Returns the number of elements <c>count</c> of the parent set.
</summary>
</member>
<member name="T:J2N.Collections.Generic.SortedSetEqualityComparer`1">
<summary>
A comparer for two <see cref="T:J2N.Collections.Generic.SortedSet`1"/>.
</summary>
</member>
<member name="M:J2N.Collections.Generic.SortedSetEqualityComparer`1.#ctor(System.Collections.Generic.IComparer{`0},System.Collections.Generic.IEqualityComparer{`0})">
<summary>
Create a new SetEqualityComparer, given a comparer for member order and another for member equality (these
must be consistent in their definition of equality)
</summary>
</member>
<member name="T:J2N.Collections.ObjectModel.ReadOnlyCollection`1">
<summary>
Provides the base class for a generic read-only collection that is structurally equatable.
</summary>
<typeparam name="T">The type of elements in the collection.</typeparam>
<remarks>
Public static (Shared in Visual Basic) members of this type are thread safe.
Any instance members are not guaranteed to be thread safe.
<para/>
A <see cref="T:J2N.Collections.ObjectModel.ReadOnlyCollection`1"/> can support multiple readers concurrently, as long
as the collection is not modified. Even so, enumerating through a collection is
intrinsically not a thread-safe procedure. To guarantee thread safety during enumeration,
you can lock the collection during the entire enumeration. To allow the collection to be
accessed by multiple threads for reading and writing, you must implement your own synchronization.
</remarks>
</member>
<member name="M:J2N.Collections.ObjectModel.ReadOnlyCollection`1.#ctor(System.Collections.Generic.ICollection{`0})">
<summary>
Initializes a new instance of the <see cref="T:J2N.Collections.ObjectModel.ReadOnlyCollection`1"/> class that is a read-only wrapper around the specified collection.
</summary>
<param name="collection">The collection to wrap.</param>
<exception cref="T:System.ArgumentNullException"><paramref name="collection"/> is <c>null</c>.</exception>
<remarks>
To prevent any modifications to <paramref name="collection"/>, expose <paramref name="collection"/> only through this wrapper.
<para/>
A collection that is read-only is simply a collection with a wrapper that prevents modifying the collection;
therefore, if changes are made to the underlying collection, the read-only collection reflects those changes.
<para/>
This constructor is an O(1) operation.
</remarks>
</member>
<member name="P:J2N.Collections.ObjectModel.ReadOnlyCollection`1.Items">
<summary>
Returns the <see cref="T:System.Collections.Generic.ICollection`1"/> that the <see cref="T:J2N.Collections.ObjectModel.ReadOnlyCollection`1"/> wraps.
</summary>
</member>
<member name="P:J2N.Collections.ObjectModel.ReadOnlyCollection`1.Count">
<summary>
Gets the number of elements contained in the <see cref="T:J2N.Collections.ObjectModel.ReadOnlyCollection`1"/> instance.
</summary>
</member>
<member name="M:J2N.Collections.ObjectModel.ReadOnlyCollection`1.Contains(`0)">
<summary>
Determines whether an element is in the <see cref="T:J2N.Collections.ObjectModel.ReadOnlyCollection`1"/>.
</summary>
<param name="item">The object to locate in the <see cref="T:J2N.Collections.ObjectModel.ReadOnlyCollection`1"/>.
The value can be <c>null</c> for reference types.</param>
<returns><c>true</c> if value is found in the <see cref="T:J2N.Collections.ObjectModel.ReadOnlyCollection`1"/>; otherwise, <c>false</c>.</returns>
<remarks>
This method determines equality using the equality comparer of the wrapped set.
<para/>
This method performs a linear search; therefore, this method is an O(<c>n</c>) operation,
where <c>n</c> is <see cref="P:J2N.Collections.ObjectModel.ReadOnlyCollection`1.Count"/>.
</remarks>
</member>
<member name="M:J2N.Collections.ObjectModel.ReadOnlyCollection`1.CopyTo(`0[],System.Int32)">
<summary>
Copies the entire <see cref="T:J2N.Collections.ObjectModel.ReadOnlyCollection`1"/> to a compatible one-dimensional <see cref="T:System.Array"/>,
starting at the specified index of the target array.
</summary>
<param name="array">The one-dimensional <see cref="T:System.Array"/> that is the destination of the elements
copied from <see cref="T:J2N.Collections.ObjectModel.ReadOnlyCollection`1"/>. The <see cref="T:System.Array"/> must have zero-based indexing.</param>
<param name="index">The zero-based index in array at which copying begins.</param>
<exception cref="T:System.ArgumentNullException"><paramref name="array"/> is <c>null</c>.</exception>
<exception cref="T:System.ArgumentOutOfRangeException"><paramref name="index"/> is less than zero.</exception>
<exception cref="T:System.ArgumentException">The number of elements in the source <see cref="T:J2N.Collections.ObjectModel.ReadOnlySet`1"/>
is greater than the available space from <paramref name="index"/> to the end of the destination <paramref name="array"/>.</exception>
<remarks>
This method uses <see cref="M:System.Array.Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)"/> to copy the elements.
<para/>
The elements are copied to the <see cref="T:System.Array"/> in the same order that the enumerator
iterates through the <see cref="T:J2N.Collections.ObjectModel.ReadOnlyCollection`1"/>.
<para/>
This method is an O(<c>n</c>) operation, where <c>n</c> is Count.
</remarks>
</member>
<member name="M:J2N.Collections.ObjectModel.ReadOnlyCollection`1.GetEnumerator">
<summary>
Returns an enumerator that iterates through the <see cref="T:J2N.Collections.ObjectModel.ReadOnlyCollection`1"/>.
</summary>
<returns>An <see cref="T:System.Collections.Generic.IEnumerator`1"/> for the <see cref="T:J2N.Collections.ObjectModel.ReadOnlyCollection`1"/>.</returns>
<remarks>
The <c>foreach</c> statement of the C# language (<c>for each</c> in C++, <c>For Each</c> in Visual Basic)
hides the complexity of enumerators. Therefore, using <c>foreach</c> is recommended instead of directly manipulating the enumerator.
<para/>
Enumerators can be used to read the data in the collection, but they cannot be used to modify the underlying collection.
<para/>
Initially, the enumerator is positioned before the first element in the collection. At this position, the
<see cref="P:System.Collections.Generic.IEnumerator`1.Current"/> property is undefined. Therefore, you must call the
<see cref="M:System.Collections.IEnumerator.MoveNext"/> method to advance the enumerator to the first element
of the collection before reading the value of <see cref="P:System.Collections.Generic.IEnumerator`1.Current"/>.
<para/>
The <see cref="P:System.Collections.Generic.IEnumerator`1.Current"/> property returns the same object until
<see cref="M:System.Collections.IEnumerator.MoveNext"/> is called. <see cref="M:System.Collections.IEnumerator.MoveNext"/>
sets <see cref="P:System.Collections.Generic.IEnumerator`1.Current"/> to the next element.
<para/>
If <see cref="M:System.Collections.IEnumerator.MoveNext"/> passes the end of the collection, the enumerator is
positioned after the last element in the collection and <see cref="M:System.Collections.IEnumerator.MoveNext"/>
returns <c>false</c>. When the enumerator is at this position, subsequent calls to <see cref="M:System.Collections.IEnumerator.MoveNext"/>
also return <c>false</c>. If the last call to <see cref="M:System.Collections.IEnumerator.MoveNext"/> returned <c>false</c>,
<see cref="P:System.Collections.Generic.IEnumerator`1.Current"/> is undefined. You cannot set <see cref="P:System.Collections.Generic.IEnumerator`1.Current"/>
to the first element of the collection again; you must create a new enumerator object instead.
<para/>
An enumerator remains valid as long as the collection remains unchanged. If changes are made to the collection,
such as adding, modifying, or deleting elements, the enumerator is irrecoverably invalidated and the next call
to <see cref="M:System.Collections.IEnumerator.MoveNext"/> or <see cref="M:System.Collections.IEnumerator.Reset"/> throws an
<see cref="T:System.InvalidOperationException"/>.
<para/>
The enumerator does not have exclusive access to the collection; therefore, enumerating through a collection is
intrinsically not a thread-safe procedure. To guarantee thread safety during enumeration, you can lock the
collection during the entire enumeration. To allow the collection to be accessed by multiple threads for
reading and writing, you must implement your own synchronization.
<para/>
Default implementations of collections in the <see cref="N:J2N.Collections.Generic"/> namespace are not synchronized.
<para/>
This method is an O(1) operation.
</remarks>
</member>
<member name="M:J2N.Collections.ObjectModel.ReadOnlyCollection`1.Equals(System.Object,System.Collections.IEqualityComparer)">
<summary>
Determines whether the specified object is structurally equal to the current list
using rules provided by the specified <paramref name="comparer"/>.
</summary>
<param name="other">The object to compare with the current object.</param>
<param name="comparer">The <see cref="T:System.Collections.IEqualityComparer"/> implementation to use to determine
whether the current object and <paramref name="other"/> are structurally equal.</param>
<returns><c>true</c> if <paramref name="other"/> is structurally equal to the current list;
otherwise, <c>false</c>.</returns>
<exception cref="T:System.ArgumentNullException">If <paramref name="comparer"/> is <c>null</c>.</exception>
</member>
<member name="M:J2N.Collections.ObjectModel.ReadOnlyCollection`1.GetHashCode(System.Collections.IEqualityComparer)">
<summary>
Gets the hash code representing the current list using rules specified by the
provided <paramref name="comparer"/>.
</summary>
<param name="comparer">The <see cref="T:System.Collections.IEqualityComparer"/> implementation to use to generate
the hash code.</param>
<returns>A hash code representing the current list.</returns>
</member>
<member name="M:J2N.Collections.ObjectModel.ReadOnlyCollection`1.Equals(System.Object)">
<summary>
Determines whether the specified object is structurally equal to the current list
using rules similar to those in the JDK's AbstactList class. Two lists are considered
equal when they both contain the same objects in the same order.
</summary>
<param name="obj">The object to compare with the current object.</param>
<returns><c>true</c> if the specified object implements <see cref="T:System.Collections.Generic.IList`1"/>
and it contains the same elements in the same order; otherwise, <c>false</c>.</returns>
<seealso cref="M:J2N.Collections.ObjectModel.ReadOnlyCollection`1.Equals(System.Object,System.Collections.IEqualityComparer)"/>
</member>
<member name="M:J2N.Collections.ObjectModel.ReadOnlyCollection`1.GetHashCode">
<summary>
Gets the hash code for the current list. The hash code is calculated
by taking each nested element's hash code into account.
</summary>
<returns>A hash code for the current object.</returns>
</member>
<member name="M:J2N.Collections.ObjectModel.ReadOnlyCollection`1.ToString(System.String,System.IFormatProvider)">
<summary>
Returns a string that represents the current collection using the specified
<paramref name="format"/> and <paramref name="formatProvider"/>.
</summary>
<returns>A string that represents the current collection.</returns>
<exception cref="T:System.ArgumentNullException"><paramref name="format"/> is <c>null</c>.</exception>
<exception cref="T:System.FormatException">
<paramref name="format"/> is invalid.
<para/>
-or-
<para/>
The index of a format item is not zero.
</exception>
</member>
<member name="M:J2N.Collections.ObjectModel.ReadOnlyCollection`1.ToString">
<summary>
Returns a string that represents the current collection using
<see cref="P:J2N.Text.StringFormatter.CurrentCulture"/>.
<para/>
The presentation has a specific format. It is enclosed by square
brackets ("[]"). Elements are separated by ', ' (comma and space).
</summary>
<returns>A string that represents the current collection.</returns>
</member>
<member name="M:J2N.Collections.ObjectModel.ReadOnlyCollection`1.ToString(System.IFormatProvider)">
<summary>
Returns a string that represents the current collection using the specified
<paramref name="formatProvider"/>.
</summary>
<returns>A string that represents the current collection.</returns>
<exception cref="T:System.ArgumentNullException"><paramref name="formatProvider"/> is <c>null</c>.</exception>
</member>
<member name="M:J2N.Collections.ObjectModel.ReadOnlyCollection`1.ToString(System.String)">
<summary>
Returns a string that represents the current collection using the specified
<paramref name="format"/> and <see cref="P:J2N.Text.StringFormatter.CurrentCulture"/>.
<para/>
The presentation has a specific format. It is enclosed by square
brackets ("[]"). Elements are separated by ', ' (comma and space).
</summary>
<returns>A string that represents the current collection.</returns>
<exception cref="T:System.ArgumentNullException"><paramref name="format"/> is <c>null</c>.</exception>
<exception cref="T:System.FormatException">
<paramref name="format"/> is invalid.
<para/>
-or-
<para/>
The index of a format item is not zero.
</exception>
</member>
<member name="T:J2N.Collections.ObjectModel.ReadOnlyDictionary`2">
<summary>
Provides the base class for a generic read-only collection of key/value pairs that is structurally equatable.
</summary>
<typeparam name="TKey">The type of keys in the dictionary.</typeparam>
<typeparam name="TValue">The type of values in the dictionary.</typeparam>
</member>
<member name="M:J2N.Collections.ObjectModel.ReadOnlyDictionary`2.#ctor(System.Collections.Generic.IDictionary{`0,`1})">
<summary>
Initializes a new instance of the <see cref="T:J2N.Collections.ObjectModel.ReadOnlyDictionary`2"/> class that is a wrapper around the specified dictionary.
</summary>
<param name="dictionary">The dictionary to wrap.</param>
<exception cref="T:System.ArgumentNullException"><paramref name="dictionary"/> is <c>null</c>.</exception>
</member>
<member name="P:J2N.Collections.ObjectModel.ReadOnlyDictionary`2.Dictionary">
<summary>
Gets the dictionary that is wrapped by this <see cref="T:J2N.Collections.ObjectModel.ReadOnlyDictionary`2"/> object.
</summary>
</member>
<member name="P:J2N.Collections.ObjectModel.ReadOnlyDictionary`2.Keys">
<summary>
Gets a key collection that contains the keys of the dictionary.
</summary>
</member>
<member name="P:J2N.Collections.ObjectModel.ReadOnlyDictionary`2.Values">
<summary>
Gets a collection that contains the values in the dictionary.
</summary>
</member>
<member name="M:J2N.Collections.ObjectModel.ReadOnlyDictionary`2.ContainsKey(`0)">
<summary>
Determines whether the dictionary contains an element that has the specified key.
</summary>
<param name="key">The key to locate in the dictionary.</param>
<returns><c>true</c> if the dictionary contains an element that has the specified key; otherwise, <c>false</c>.</returns>
</member>
<member name="M:J2N.Collections.ObjectModel.ReadOnlyDictionary`2.TryGetValue(`0,`1@)">
<summary>
Retrieves the value that is associated with the specified key.
</summary>
<param name="key">The key whose value will be retrieved.</param>
<param name="value">When this method returns, the value associated with the specified key,
if the key is found; otherwise, the default value for the type of the value parameter.
This parameter is passed uninitialized.</param>
<returns><c>true</c> if the object that implements <see cref="T:J2N.Collections.ObjectModel.ReadOnlyDictionary`2"/>
contains an element with the specified key; otherwise, <c>false</c>.</returns>
</member>
<member name="P:J2N.Collections.ObjectModel.ReadOnlyDictionary`2.Item(`0)">
<summary>
Gets the element that has the specified key.
</summary>
<param name="key">The key of the element to get.</param>
<returns>The element that has the specified key.</returns>
</member>
<member name="P:J2N.Collections.ObjectModel.ReadOnlyDictionary`2.Count">
<summary>
Gets the number of items in the dictionary.
</summary>
</member>
<member name="M:J2N.Collections.ObjectModel.ReadOnlyDictionary`2.GetEnumerator">
<summary>
Returns an enumerator that iterates through the <see cref="T:J2N.Collections.ObjectModel.ReadOnlyDictionary`2"/>.
</summary>
<returns>An enumerator that can be used to iterate through the collection.</returns>
</member>
<member name="M:J2N.Collections.ObjectModel.ReadOnlyDictionary`2.Equals(System.Object,System.Collections.IEqualityComparer)">
<summary>
Determines whether the specified object is structurally equal to the current dictionary
using rules provided by the specified <paramref name="comparer"/>.
</summary>
<param name="other">The object to compare with the current object.</param>
<param name="comparer">The <see cref="T:System.Collections.IEqualityComparer"/> implementation to use to determine
whether the current object and <paramref name="other"/> are structurally equal.</param>
<returns><c>true</c> if <paramref name="other"/> is structurally equal to the current dictionary;
otherwise, <c>false</c>.</returns>
<exception cref="T:System.ArgumentNullException">If <paramref name="comparer"/> is <c>null</c>.</exception>
</member>
<member name="M:J2N.Collections.ObjectModel.ReadOnlyDictionary`2.GetHashCode(System.Collections.IEqualityComparer)">
<summary>
Gets the hash code representing the current dictionary using rules specified by the
provided <paramref name="comparer"/>.
</summary>
<param name="comparer">The <see cref="T:System.Collections.IEqualityComparer"/> implementation to use to generate
the hash code.</param>
<returns>A hash code representing the current dictionary.</returns>
</member>
<member name="M:J2N.Collections.ObjectModel.ReadOnlyDictionary`2.Equals(System.Object)">
<summary>
Determines whether the specified object is structurally equal to the current dictionary
using rules similar to those in the JDK's AbstactMap class. Two dictionaries are considered
equal when they both contain the same mapppings (in any order).
</summary>
<param name="obj">The object to compare with the current object.</param>
<returns><c>true</c> if the specified object implements <see cref="T:System.Collections.Generic.IDictionary`2"/>
and it contains the same elements; otherwise, <c>false</c>.</returns>
<seealso cref="M:J2N.Collections.ObjectModel.ReadOnlyDictionary`2.Equals(System.Object,System.Collections.IEqualityComparer)"/>
</member>
<member name="M:J2N.Collections.ObjectModel.ReadOnlyDictionary`2.GetHashCode">
<summary>
Gets the hash code for the current dictionary. The hash code is calculated
by taking each nested element's hash code into account.
</summary>
<returns>A hash code for the current object.</returns>
<seealso cref="M:J2N.Collections.ObjectModel.ReadOnlyDictionary`2.GetHashCode(System.Collections.IEqualityComparer)"/>
</member>
<member name="M:J2N.Collections.ObjectModel.ReadOnlyDictionary`2.ToString(System.String,System.IFormatProvider)">
<summary>
Returns a string that represents the current dictionary using the specified
<paramref name="format"/> and <paramref name="formatProvider"/>.
</summary>
<returns>A string that represents the current dictionary.</returns>
<exception cref="T:System.ArgumentNullException"><paramref name="format"/> is <c>null</c>.</exception>
<exception cref="T:System.FormatException">
<paramref name="format"/> is invalid.
<para/>
-or-
<para/>
The index of a format item is not zero.
</exception>
</member>
<member name="M:J2N.Collections.ObjectModel.ReadOnlyDictionary`2.ToString">
<summary>
Returns a string that represents the current dictionary using
<see cref="P:J2N.Text.StringFormatter.CurrentCulture"/>.
<para/>
The presentation has a specific format. It is enclosed by curly
brackets ("{}"). Keys and values are separated by '=',
KeyValuePairs are separated by ', ' (comma and space).
</summary>
<returns>A string that represents the current list.</returns>
</member>
<member name="M:J2N.Collections.ObjectModel.ReadOnlyDictionary`2.ToString(System.IFormatProvider)">
<summary>
Returns a string that represents the current dictionary using the specified
<paramref name="formatProvider"/>.
</summary>
<returns>A string that represents the current dictionary.</returns>
<exception cref="T:System.ArgumentNullException"><paramref name="formatProvider"/> is <c>null</c>.</exception>
</member>
<member name="M:J2N.Collections.ObjectModel.ReadOnlyDictionary`2.ToString(System.String)">
<summary>
Returns a string that represents the current dictionary using the specified
<paramref name="format"/> and <see cref="P:J2N.Text.StringFormatter.CurrentCulture"/>.
<para/>
The presentation has a specific format. It is enclosed by curly
brackets ("{}"). Keys and values are separated by '=',
KeyValuePairs are separated by ', ' (comma and space).
</summary>
<returns>A string that represents the current dictionary.</returns>
<exception cref="T:System.ArgumentNullException"><paramref name="format"/> is <c>null</c>.</exception>
<exception cref="T:System.FormatException">
<paramref name="format"/> is invalid.
<para/>
-or-
<para/>
The index of a format item is not zero.
</exception>
</member>
<member name="T:J2N.Collections.ObjectModel.ReadOnlyDictionary`2.KeyCollection">
<summary>
Represents a read-only collection of the keys of a <see cref="T:J2N.Collections.ObjectModel.ReadOnlyDictionary`2"/> object.
</summary>
</member>
<member name="M:J2N.Collections.ObjectModel.ReadOnlyDictionary`2.KeyCollection.CopyTo(`0[],System.Int32)">
<summary>
Copies the elements of the collection to an array, starting at a specific array index.
</summary>
<param name="array">The one-dimensional array that is the destination of the elements
copied from the collection. The array must have zero-based indexing.</param>
<param name="arrayIndex">The zero-based index in array at which copying begins.</param>
<exception cref="T:System.ArgumentNullException"><paramref name="array"/> is <c>null</c>.</exception>
<exception cref="T:System.ArgumentOutOfRangeException"><paramref name="arrayIndex"/> is less than 0.</exception>
<exception cref="T:System.ArgumentException">
<paramref name="array"/> is multidimensional.
<para/>
-or-
<para/>
The number of elements in the source collection is greater than the available space from
<paramref name="arrayIndex"/> to the end of the destination <paramref name="array"/>.
<para/>
-or-
<para/>
Type <typeparamref name="TKey"/> cannot be cast automatically to the type of the destination <paramref name="array"/>.
</exception>
</member>
<member name="P:J2N.Collections.ObjectModel.ReadOnlyDictionary`2.KeyCollection.Count">
<summary>
Gets the number of elements in the collection.
</summary>
</member>
<member name="M:J2N.Collections.ObjectModel.ReadOnlyDictionary`2.KeyCollection.GetEnumerator">
<summary>
Returns an enumerator that iterates through the collection.
</summary>
<returns>An enumerator that can be used to iterate through the collection.</returns>
</member>
<member name="T:J2N.Collections.ObjectModel.ReadOnlyDictionary`2.ValueCollection">
<summary>
Represents a read-only collection of the values of a <see cref="T:J2N.Collections.ObjectModel.ReadOnlyDictionary`2"/> object.
</summary>
</member>
<member name="M:J2N.Collections.ObjectModel.ReadOnlyDictionary`2.ValueCollection.CopyTo(`1[],System.Int32)">
<summary>
Copies the elements of the collection to an array, starting at a specific array index.
</summary>
<param name="array">The one-dimensional array that is the destination of the elements
copied from the collection. The array must have zero-based indexing.</param>
<param name="arrayIndex">The zero-based index in array at which copying begins.</param>
<exception cref="T:System.ArgumentNullException"><paramref name="array"/> is <c>null</c>.</exception>
<exception cref="T:System.ArgumentOutOfRangeException"><paramref name="arrayIndex"/> is less than 0.</exception>
<exception cref="T:System.ArgumentException">
<paramref name="array"/> is multidimensional.
<para/>
-or-
<para/>
The number of elements in the source collection is greater than the available space from
<paramref name="arrayIndex"/> to the end of the destination <paramref name="array"/>.
<para/>
-or-
<para/>
Type <typeparamref name="TKey"/> cannot be cast automatically to the type of the destination <paramref name="array"/>.
</exception>
</member>
<member name="P:J2N.Collections.ObjectModel.ReadOnlyDictionary`2.ValueCollection.Count">
<summary>
Gets the number of elements in the collection.
</summary>
</member>
<member name="M:J2N.Collections.ObjectModel.ReadOnlyDictionary`2.ValueCollection.GetEnumerator">
<summary>
Returns an enumerator that iterates through the collection.
</summary>
<returns>An enumerator that can be used to iterate through the collection.</returns>
</member>
<member name="T:J2N.Collections.ObjectModel.ReadOnlyList`1">
<summary>
Provides the base class for a generic read-only list that is structurally equatable.
</summary>
<typeparam name="T">The type of elements in the set.</typeparam>
<remarks>
Public static (Shared in Visual Basic) members of this type are thread safe.
Any instance members are not guaranteed to be thread safe.
<para/>
A <see cref="T:J2N.Collections.ObjectModel.ReadOnlyList`1"/> can support multiple readers concurrently, as long
as the collection is not modified. Even so, enumerating through a collection is
intrinsically not a thread-safe procedure. To guarantee thread safety during enumeration,
you can lock the collection during the entire enumeration. To allow the collection to be
accessed by multiple threads for reading and writing, you must implement your own synchronization.
</remarks>
</member>
<member name="M:J2N.Collections.ObjectModel.ReadOnlyList`1.#ctor(System.Collections.Generic.IList{`0})">
<summary>
Initializes a new instance of the <see cref="T:J2N.Collections.ObjectModel.ReadOnlyList`1"/> class that is a read-only wrapper around the specified list.
</summary>
<param name="list">The list to wrap.</param>
<see cref="T:System.ArgumentNullException"><paramref name="list"/> is <c>null</c>.</see>
<remarks>
To prevent any modifications to <paramref name="list"/>, expose <paramref name="list"/> only through this wrapper.
<para/>
A collection that is read-only is simply a collection with a wrapper that prevents modifying the collection;
therefore, if changes are made to the underlying collection, the read-only collection reflects those changes.
<para/>
This constructor is an O(1) operation.
</remarks>
</member>
<member name="M:J2N.Collections.ObjectModel.ReadOnlyList`1.Equals(System.Object,System.Collections.IEqualityComparer)">
<summary>
Determines whether the specified object is structurally equal to the current list
using rules provided by the specified <paramref name="comparer"/>.
</summary>
<param name="other">The object to compare with the current object.</param>
<param name="comparer">The <see cref="T:System.Collections.IEqualityComparer"/> implementation to use to determine
whether the current object and <paramref name="other"/> are structurally equal.</param>
<returns><c>true</c> if <paramref name="other"/> is structurally equal to the current list;
otherwise, <c>false</c>.</returns>
<exception cref="T:System.ArgumentNullException">If <paramref name="comparer"/> is <c>null</c>.</exception>
</member>
<member name="M:J2N.Collections.ObjectModel.ReadOnlyList`1.GetHashCode(System.Collections.IEqualityComparer)">
<summary>
Gets the hash code representing the current list using rules specified by the
provided <paramref name="comparer"/>.
</summary>
<param name="comparer">The <see cref="T:System.Collections.IEqualityComparer"/> implementation to use to generate
the hash code.</param>
<returns>A hash code representing the current list.</returns>
</member>
<member name="M:J2N.Collections.ObjectModel.ReadOnlyList`1.Equals(System.Object)">
<summary>
Determines whether the specified object is structurally equal to the current list
using rules similar to those in the JDK's AbstactList class. Two lists are considered
equal when they both contain the same objects in the same order.
</summary>
<param name="obj">The object to compare with the current object.</param>
<returns><c>true</c> if the specified object implements <see cref="T:System.Collections.Generic.IList`1"/>
and it contains the same elements in the same order; otherwise, <c>false</c>.</returns>
<seealso cref="M:J2N.Collections.ObjectModel.ReadOnlyList`1.Equals(System.Object,System.Collections.IEqualityComparer)"/>
</member>
<member name="M:J2N.Collections.ObjectModel.ReadOnlyList`1.GetHashCode">
<summary>
Gets the hash code for the current list. The hash code is calculated
by taking each nested element's hash code into account.
</summary>
<returns>A hash code for the current object.</returns>
</member>
<member name="M:J2N.Collections.ObjectModel.ReadOnlyList`1.ToString(System.String,System.IFormatProvider)">
<summary>
Returns a string that represents the current list using the specified
<paramref name="format"/> and <paramref name="formatProvider"/>.
</summary>
<returns>A string that represents the current list.</returns>
<exception cref="T:System.ArgumentNullException"><paramref name="format"/> is <c>null</c>.</exception>
<exception cref="T:System.FormatException">
<paramref name="format"/> is invalid.
<para/>
-or-
<para/>
The index of a format item is not zero.
</exception>
</member>
<member name="M:J2N.Collections.ObjectModel.ReadOnlyList`1.ToString">
<summary>
Returns a string that represents the current list using
<see cref="P:J2N.Text.StringFormatter.CurrentCulture"/>.
<para/>
The presentation has a specific format. It is enclosed by square
brackets ("[]"). Elements are separated by ', ' (comma and space).
</summary>
<returns>A string that represents the current list.</returns>
</member>
<member name="M:J2N.Collections.ObjectModel.ReadOnlyList`1.ToString(System.IFormatProvider)">
<summary>
Returns a string that represents the current list using the specified
<paramref name="formatProvider"/>.
</summary>
<returns>A string that represents the current list.</returns>
<exception cref="T:System.ArgumentNullException"><paramref name="formatProvider"/> is <c>null</c>.</exception>
</member>
<member name="M:J2N.Collections.ObjectModel.ReadOnlyList`1.ToString(System.String)">
<summary>
Returns a string that represents the current list using the specified
<paramref name="format"/> and <see cref="P:J2N.Text.StringFormatter.CurrentCulture"/>.
<para/>
The presentation has a specific format. It is enclosed by square
brackets ("[]"). Elements are separated by ', ' (comma and space).
</summary>
<returns>A string that represents the current list.</returns>
<exception cref="T:System.ArgumentNullException"><paramref name="format"/> is <c>null</c>.</exception>
<exception cref="T:System.FormatException">
<paramref name="format"/> is invalid.
<para/>
-or-
<para/>
The index of a format item is not zero.
</exception>
</member>
<member name="T:J2N.Collections.ObjectModel.ReadOnlySet`1">
<summary>
Provides the base class for a generic read-only set that is structurally equatable.
</summary>
<typeparam name="T">The type of elements in the set.</typeparam>
<remarks>
Public static (Shared in Visual Basic) members of this type are thread safe.
Any instance members are not guaranteed to be thread safe.
<para/>
A <see cref="T:J2N.Collections.ObjectModel.ReadOnlySet`1"/> can support multiple readers concurrently, as long
as the collection is not modified. Even so, enumerating through a collection is
intrinsically not a thread-safe procedure. To guarantee thread safety during enumeration,
you can lock the collection during the entire enumeration. To allow the collection to be
accessed by multiple threads for reading and writing, you must implement your own synchronization.
</remarks>
</member>
<member name="M:J2N.Collections.ObjectModel.ReadOnlySet`1.#ctor(System.Collections.Generic.ISet{`0})">
<summary>
Initializes a new instance of the <see cref="T:J2N.Collections.ObjectModel.ReadOnlySet`1"/> class that is a read-only wrapper around the specified set.
</summary>
<param name="set">The set to wrap.</param>
<exception cref="T:System.ArgumentNullException"><paramref name="set"/> is <c>null</c>.</exception>
<remarks>
To prevent any modifications to <paramref name="set"/>, expose <paramref name="set"/> only through this wrapper.
<para/>
A collection that is read-only is simply a collection with a wrapper that prevents modifying the collection;
therefore, if changes are made to the underlying collection, the read-only collection reflects those changes.
<para/>
This constructor is an O(1) operation.
</remarks>
</member>
<member name="P:J2N.Collections.ObjectModel.ReadOnlySet`1.Items">
<summary>
Returns the <see cref="T:System.Collections.Generic.ISet`1"/> that the <see cref="T:J2N.Collections.ObjectModel.ReadOnlySet`1"/> wraps.
</summary>
</member>
<member name="P:J2N.Collections.ObjectModel.ReadOnlySet`1.Count">
<summary>
Gets the number of elements contained in the <see cref="T:J2N.Collections.ObjectModel.ReadOnlySet`1"/> instance.
</summary>
</member>
<member name="M:J2N.Collections.ObjectModel.ReadOnlySet`1.Contains(`0)">
<summary>
Determines whether an element is in the <see cref="T:J2N.Collections.ObjectModel.ReadOnlySet`1"/>.
</summary>
<param name="item">The object to locate in the <see cref="T:J2N.Collections.ObjectModel.ReadOnlySet`1"/>.
The value can be <c>null</c> for reference types.</param>
<returns><c>true</c> if value is found in the <see cref="T:J2N.Collections.ObjectModel.ReadOnlySet`1"/>; otherwise, <c>false</c>.</returns>
<remarks>
This method determines equality using the equality comparer of the wrapped set.
<para/>
This method performs a linear search; therefore, this method is an O(<c>n</c>) operation,
where <c>n</c> is <see cref="P:J2N.Collections.ObjectModel.ReadOnlySet`1.Count"/>.
</remarks>
</member>
<member name="M:J2N.Collections.ObjectModel.ReadOnlySet`1.CopyTo(`0[],System.Int32)">
<summary>
Copies the entire <see cref="T:J2N.Collections.ObjectModel.ReadOnlySet`1"/> to a compatible one-dimensional <see cref="T:System.Array"/>,
starting at the specified index of the target array.
</summary>
<param name="array">The one-dimensional <see cref="T:System.Array"/> that is the destination of the elements
copied from <see cref="T:J2N.Collections.ObjectModel.ReadOnlySet`1"/>. The <see cref="T:System.Array"/> must have zero-based indexing.</param>
<param name="index">The zero-based index in array at which copying begins.</param>
<exception cref="T:System.ArgumentNullException"><paramref name="array"/> is <c>null</c>.</exception>
<exception cref="T:System.ArgumentOutOfRangeException"><paramref name="index"/> is less than zero.</exception>
<exception cref="T:System.ArgumentException">The number of elements in the source <see cref="T:J2N.Collections.ObjectModel.ReadOnlySet`1"/>
is greater than the available space from <paramref name="index"/> to the end of the destination <paramref name="array"/>.</exception>
<remarks>
This method uses <see cref="M:System.Array.Copy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)"/> to copy the elements.
<para/>
The elements are copied to the <see cref="T:System.Array"/> in the same order that the enumerator
iterates through the <see cref="T:J2N.Collections.ObjectModel.ReadOnlySet`1"/>.
<para/>
This method is an O(<c>n</c>) operation, where <c>n</c> is Count.
</remarks>
</member>
<member name="M:J2N.Collections.ObjectModel.ReadOnlySet`1.GetEnumerator">
<summary>
Returns an enumerator that iterates through the <see cref="T:J2N.Collections.ObjectModel.ReadOnlySet`1"/>.
</summary>
<returns>An <see cref="T:System.Collections.Generic.IEnumerator`1"/> for the <see cref="T:J2N.Collections.ObjectModel.ReadOnlySet`1"/>.</returns>
<remarks>
The <c>foreach</c> statement of the C# language (<c>for each</c> in C++, <c>For Each</c> in Visual Basic)
hides the complexity of enumerators. Therefore, using <c>foreach</c> is recommended instead of directly manipulating the enumerator.
<para/>
Enumerators can be used to read the data in the collection, but they cannot be used to modify the underlying collection.
<para/>
Initially, the enumerator is positioned before the first element in the collection. At this position, the
<see cref="P:System.Collections.Generic.IEnumerator`1.Current"/> property is undefined. Therefore, you must call the
<see cref="M:System.Collections.IEnumerator.MoveNext"/> method to advance the enumerator to the first element
of the collection before reading the value of <see cref="P:System.Collections.Generic.IEnumerator`1.Current"/>.
<para/>
The <see cref="P:System.Collections.Generic.IEnumerator`1.Current"/> property returns the same object until
<see cref="M:System.Collections.IEnumerator.MoveNext"/> is called. <see cref="M:System.Collections.IEnumerator.MoveNext"/>
sets <see cref="P:System.Collections.Generic.IEnumerator`1.Current"/> to the next element.
<para/>
If <see cref="M:System.Collections.IEnumerator.MoveNext"/> passes the end of the collection, the enumerator is
positioned after the last element in the collection and <see cref="M:System.Collections.IEnumerator.MoveNext"/>
returns <c>false</c>. When the enumerator is at this position, subsequent calls to <see cref="M:System.Collections.IEnumerator.MoveNext"/>
also return <c>false</c>. If the last call to <see cref="M:System.Collections.IEnumerator.MoveNext"/> returned <c>false</c>,
<see cref="P:System.Collections.Generic.IEnumerator`1.Current"/> is undefined. You cannot set <see cref="P:System.Collections.Generic.IEnumerator`1.Current"/>
to the first element of the collection again; you must create a new enumerator object instead.
<para/>
An enumerator remains valid as long as the collection remains unchanged. If changes are made to the collection,
such as adding, modifying, or deleting elements, the enumerator is irrecoverably invalidated and the next call
to <see cref="M:System.Collections.IEnumerator.MoveNext"/> or <see cref="M:System.Collections.IEnumerator.Reset"/> throws an
<see cref="T:System.InvalidOperationException"/>.
<para/>
The enumerator does not have exclusive access to the collection; therefore, enumerating through a collection is
intrinsically not a thread-safe procedure. To guarantee thread safety during enumeration, you can lock the
collection during the entire enumeration. To allow the collection to be accessed by multiple threads for
reading and writing, you must implement your own synchronization.
<para/>
Default implementations of collections in the <see cref="N:J2N.Collections.Generic"/> namespace are not synchronized.
<para/>
This method is an O(1) operation.
</remarks>
</member>
<member name="M:J2N.Collections.ObjectModel.ReadOnlySet`1.IsProperSubsetOf(System.Collections.Generic.IEnumerable{`0})">
<summary>
Determines whether a <see cref="T:J2N.Collections.ObjectModel.ReadOnlySet`1"/> object is a proper subset of the specified collection.
</summary>
<param name="other">The collection to compare to the current <see cref="T:J2N.Collections.ObjectModel.ReadOnlySet`1"/> object.</param>
<returns><c>true</c> if the <see cref="T:J2N.Collections.ObjectModel.ReadOnlySet`1"/> object is a proper subset of <paramref name="other"/>;
otherwise, <c>false</c>.</returns>
<exception cref="T:System.ArgumentNullException"><paramref name="other"/> is <c>null</c>.</exception>
<remarks>
An empty set is a proper subset of any other collection. Therefore, this method returns <c>true</c> if the
collection represented by the current <see cref="T:J2N.Collections.ObjectModel.ReadOnlySet`1"/> object is empty unless the other
parameter is also an empty set.
<para/>
This method always returns <c>false</c> if <see cref="P:J2N.Collections.ObjectModel.ReadOnlySet`1.Count"/> is greater than or equal to the number of
elements in <paramref name="other"/>.
<para/>
If the collection represented by other is a <see cref="T:J2N.Collections.ObjectModel.ReadOnlySet`1"/> collection with the same equality
comparer as the current <see cref="T:J2N.Collections.ObjectModel.ReadOnlySet`1"/> object, then this method is an O(n) operation. Otherwise,
this method is an O(<c>n</c> + <c>m</c>) operation, where <c>n</c> is <see cref="P:J2N.Collections.ObjectModel.ReadOnlySet`1.Count"/> and <c>m</c> is the
number of elements in other.
</remarks>
</member>
<member name="M:J2N.Collections.ObjectModel.ReadOnlySet`1.IsProperSupersetOf(System.Collections.Generic.IEnumerable{`0})">
<summary>
Determines whether a <see cref="T:J2N.Collections.ObjectModel.ReadOnlySet`1"/> object is a proper superset of the specified collection.
</summary>
<param name="other">The collection to compare to the current <see cref="T:J2N.Collections.ObjectModel.ReadOnlySet`1"/> object.</param>
<returns><c>true</c> if the <see cref="T:J2N.Collections.ObjectModel.ReadOnlySet`1"/> object is a proper superset of other; otherwise, <c>false</c>.</returns>
<exception cref="T:System.ArgumentNullException"><paramref name="other"/> is <c>null</c>.</exception>
<remarks>
An empty set is a proper superset of any other collection. Therefore, this method returns <c>true</c> if the
collection represented by the other parameter is empty unless the current <see cref="T:J2N.Collections.ObjectModel.ReadOnlySet`1"/> collection is also empty.
<para/>
This method always returns <c>false</c> if <see cref="P:J2N.Collections.ObjectModel.ReadOnlySet`1.Count"/> is less than or equal to the number of elements in other.
<para/>
If the collection represented by other is a <see cref="T:J2N.Collections.ObjectModel.ReadOnlySet`1"/> collection with the same equality
comparer as the current <see cref="T:J2N.Collections.ObjectModel.ReadOnlySet`1"/> object, this method is an O(<c>n</c>) operation. Otherwise,
this method is an O(<c>n</c> + <c>m</c>) operation, where <c>n</c> is the number of elements in other and <c>m</c>
is <see cref="P:J2N.Collections.ObjectModel.ReadOnlySet`1.Count"/>.
</remarks>
</member>
<member name="M:J2N.Collections.ObjectModel.ReadOnlySet`1.IsSubsetOf(System.Collections.Generic.IEnumerable{`0})">
<summary>
Determines whether a <see cref="T:J2N.Collections.ObjectModel.ReadOnlySet`1"/> object is a subset of the specified collection.
</summary>
<param name="other">The collection to compare to the current <see cref="T:J2N.Collections.ObjectModel.ReadOnlySet`1"/> object.</param>
<returns><c>true</c> if the <see cref="T:J2N.Collections.ObjectModel.ReadOnlySet`1"/> object is a subset of <paramref name="other"/>;
otherwise, <c>false</c>.</returns>
<exception cref="T:System.ArgumentNullException"><paramref name="other"/> is <c>null</c>.</exception>
<remarks>
An empty set is a subset of any other collection, including an empty set; therefore, this method returns
<c>true</c> if the collection represented by the current <see cref="T:J2N.Collections.ObjectModel.ReadOnlySet`1"/> object is empty,
even if the <paramref name="other"/> parameter is an empty set.
<para/>
This method always returns <c>false</c> if <see cref="P:J2N.Collections.ObjectModel.ReadOnlySet`1.Count"/> is greater than the number of
elements in <paramref name="other"/>.
<para/>
If the collection represented by other is a <see cref="T:J2N.Collections.ObjectModel.ReadOnlySet`1"/> collection with the same
equality comparer as the current <see cref="T:J2N.Collections.ObjectModel.ReadOnlySet`1"/> object, this method is an O(<c>n</c>) operation.
Otherwise, this method is an O(<c>n</c> + <c>m</c>) operation, where <c>n</c> is <see cref="P:J2N.Collections.ObjectModel.ReadOnlySet`1.Count"/> and <c>m</c>
is the number of elements in other.
</remarks>
</member>
<member name="M:J2N.Collections.ObjectModel.ReadOnlySet`1.IsSupersetOf(System.Collections.Generic.IEnumerable{`0})">
<summary>
Determines whether a <see cref="T:J2N.Collections.ObjectModel.ReadOnlySet`1"/> object is a superset of the specified collection.
</summary>
<param name="other">The collection to compare to the current <see cref="T:J2N.Collections.ObjectModel.ReadOnlySet`1"/> object.</param>
<returns><c>true</c> if the <see cref="T:J2N.Collections.ObjectModel.ReadOnlySet`1"/> object is a superset of <paramref name="other"/>;
otherwise, <c>false</c>.</returns>
<exception cref="T:System.ArgumentNullException"><paramref name="other"/> is <c>null</c>.</exception>
<remarks>
All collections, including the empty set, are supersets of the empty set. Therefore, this method returns
<c>true</c> if the collection represented by the other parameter is empty, even if the current
<see cref="T:J2N.Collections.ObjectModel.ReadOnlySet`1"/> object is empty.
<para/>
This method always returns <c>false</c> if <see cref="P:J2N.Collections.ObjectModel.ReadOnlySet`1.Count"/> is less than the number of elements
in <paramref name="other"/>.
<para/>
If the collection represented by other is a <see cref="T:J2N.Collections.ObjectModel.ReadOnlySet`1"/> collection with the same
equality comparer as the current <see cref="T:J2N.Collections.ObjectModel.ReadOnlySet`1"/> object, this method is an O(<c>n</c>) operation.
Otherwise, this method is an O(<c>n</c> + <c>m</c>) operation, where <c>n</c> is the number of elements in other
and <c>m</c> is <see cref="P:J2N.Collections.ObjectModel.ReadOnlySet`1.Count"/>.
</remarks>
</member>
<member name="M:J2N.Collections.ObjectModel.ReadOnlySet`1.Overlaps(System.Collections.Generic.IEnumerable{`0})">
<summary>
Determines whether the current <see cref="T:J2N.Collections.ObjectModel.ReadOnlySet`1"/> object and a specified collection
share common elements.
</summary>
<param name="other">The collection to compare to the current <see cref="T:J2N.Collections.ObjectModel.ReadOnlySet`1"/> object.</param>
<returns><c>true</c> if the <see cref="T:J2N.Collections.ObjectModel.ReadOnlySet`1"/> object and <paramref name="other"/> share
at least one common element; otherwise, <c>false</c>.</returns>
<exception cref="T:System.ArgumentNullException"><paramref name="other"/> is <c>null</c>.</exception>
<remarks>
This method is an O(<c>n</c>) operation, where <c>n</c> is the number of elements in other.
</remarks>
</member>
<member name="M:J2N.Collections.ObjectModel.ReadOnlySet`1.SetEquals(System.Collections.Generic.IEnumerable{`0})">
<summary>
Determines whether a <see cref="T:J2N.Collections.ObjectModel.ReadOnlySet`1"/> object and the specified collection contain the same elements.
</summary>
<param name="other">The collection to compare to the current <see cref="T:J2N.Collections.ObjectModel.ReadOnlySet`1"/> object.</param>
<returns><c>true</c> if the <see cref="T:J2N.Collections.ObjectModel.ReadOnlySet`1"/> object is equal to <paramref name="other"/>;
otherwise, <c>false</c>.</returns>
<exception cref="T:System.ArgumentNullException"><paramref name="other"/> is <c>null</c>.</exception>
<remarks>
The <see cref="M:J2N.Collections.ObjectModel.ReadOnlySet`1.SetEquals(System.Collections.Generic.IEnumerable{`0})"/> method ignores duplicate entries and the order of elements in the
<paramref name="other"/> parameter.
<para/>
If the collection represented by other is a <see cref="T:J2N.Collections.ObjectModel.ReadOnlySet`1"/> collection with the same equality
comparer as the current <see cref="T:J2N.Collections.ObjectModel.ReadOnlySet`1"/> object, this method is an O(<c>n</c>) operation. Otherwise,
this method is an O(<c>n</c> + <c>m</c>) operation, where <c>n</c> is the number of elements in other and
<c>m</c> is <see cref="P:J2N.Collections.ObjectModel.ReadOnlySet`1.Count"/>.
</remarks>
</member>
<member name="M:J2N.Collections.ObjectModel.ReadOnlySet`1.Equals(System.Object,System.Collections.IEqualityComparer)">
<summary>
Determines whether the specified object is structurally equal to the current set
using rules provided by the specified <paramref name="comparer"/>.
</summary>
<param name="other">The object to compare with the current object.</param>
<param name="comparer">The <see cref="T:System.Collections.IEqualityComparer"/> implementation to use to determine
whether the current object and <paramref name="other"/> are structurally equal.</param>
<returns><c>true</c> if <paramref name="other"/> is structurally equal to the current set;
otherwise, <c>false</c>.</returns>
<exception cref="T:System.ArgumentNullException">If <paramref name="comparer"/> is <c>null</c>.</exception>
</member>
<member name="M:J2N.Collections.ObjectModel.ReadOnlySet`1.GetHashCode(System.Collections.IEqualityComparer)">
<summary>
Gets the hash code representing the current set using rules specified by the
provided <paramref name="comparer"/>.
</summary>
<param name="comparer">The <see cref="T:System.Collections.IEqualityComparer"/> implementation to use to generate
the hash code.</param>
<returns>A hash code representing the current set.</returns>
</member>
<member name="M:J2N.Collections.ObjectModel.ReadOnlySet`1.Equals(System.Object)">
<summary>
Determines whether the specified object is structurally equal to the current set
using rules similar to those in the JDK's AbstactSet class. Two sets are considered
equal when they both contain the same objects (in any order).
</summary>
<param name="obj">The object to compare with the current object.</param>
<returns><c>true</c> if the specified object implements <see cref="T:System.Collections.Generic.ISet`1"/>
and it contains the same elements; otherwise, <c>false</c>.</returns>
<seealso cref="M:J2N.Collections.ObjectModel.ReadOnlySet`1.Equals(System.Object,System.Collections.IEqualityComparer)"/>
</member>
<member name="M:J2N.Collections.ObjectModel.ReadOnlySet`1.GetHashCode">
<summary>
Gets the hash code for the current set. The hash code is calculated
by taking each nested element's hash code into account.
</summary>
<returns>A hash code for the current object.</returns>
<seealso cref="M:J2N.Collections.ObjectModel.ReadOnlySet`1.GetHashCode(System.Collections.IEqualityComparer)"/>
</member>
<member name="M:J2N.Collections.ObjectModel.ReadOnlySet`1.ToString(System.String,System.IFormatProvider)">
<summary>
Returns a string that represents the current set using the specified
<paramref name="format"/> and <paramref name="formatProvider"/>.
</summary>
<returns>A string that represents the current set.</returns>
<exception cref="T:System.ArgumentNullException"><paramref name="format"/> is <c>null</c>.</exception>
<exception cref="T:System.FormatException">
<paramref name="format"/> is invalid.
<para/>
-or-
<para/>
The index of a format item is not zero.
</exception>
</member>
<member name="M:J2N.Collections.ObjectModel.ReadOnlySet`1.ToString">
<summary>
Returns a string that represents the current set using
<see cref="P:J2N.Text.StringFormatter.CurrentCulture"/>.
<para/>
The presentation has a specific format. It is enclosed by square
brackets ("[]"). Elements are separated by ', ' (comma and space).
</summary>
<returns>A string that represents the current set.</returns>
</member>
<member name="M:J2N.Collections.ObjectModel.ReadOnlySet`1.ToString(System.IFormatProvider)">
<summary>
Returns a string that represents the current set using the specified
<paramref name="formatProvider"/>.
</summary>
<returns>A string that represents the current set.</returns>
<exception cref="T:System.ArgumentNullException"><paramref name="formatProvider"/> is <c>null</c>.</exception>
</member>
<member name="M:J2N.Collections.ObjectModel.ReadOnlySet`1.ToString(System.String)">
<summary>
Returns a string that represents the current set using the specified
<paramref name="format"/> and <see cref="P:J2N.Text.StringFormatter.CurrentCulture"/>.
<para/>
The presentation has a specific format. It is enclosed by square
brackets ("[]"). Elements are separated by ', ' (comma and space).
</summary>
<returns>A string that represents the current set.</returns>
<exception cref="T:System.ArgumentNullException"><paramref name="format"/> is <c>null</c>.</exception>
<exception cref="T:System.FormatException">
<paramref name="format"/> is invalid.
<para/>
-or-
<para/>
The index of a format item is not zero.
</exception>
</member>
<member name="T:J2N.Collections.OneDimensionalArrayEqualityComparer`1">
<summary>
Provides comparers that use structural equality rules for one dimensional arrays similar to those in Java.
</summary>
<typeparam name="T">The type of objects to compare.</typeparam>
</member>
<member name="P:J2N.Collections.OneDimensionalArrayEqualityComparer`1.Default">
<summary>
Returns a default equality comparer for the type specified by the generic argument with equality rules similar
to those in Java.
</summary>
</member>
<member name="M:J2N.Collections.OneDimensionalArrayEqualityComparer`1.Equals(`0[],`0[])">
<summary>
Compares the two arrays.
</summary>
<param name="array1">The first <typeparamref name="T"/> array.</param>
<param name="array2">The second <typeparamref name="T"/> array.</param>
<returns><c>true</c> if both arrays are <c>null</c> or if the arrays have the
same length and the elements at each index in the two arrays are
equal; otherwise, <c>false</c>.</returns>
</member>
<member name="M:J2N.Collections.OneDimensionalArrayEqualityComparer`1.GetHashCode(`0[])">
<summary>
Returns a hash code based on the contents of the given array. For any two
<typeparamref name="T"/> arrays <c>a</c> and <c>b</c>, if
<c>Equals(a, b)</c> returns <c>true</c>, it means
that the return value of <c>GetHashCode(a)</c> equals <c>GetHashCode(b)</c>.
</summary>
<param name="array">The array whose hash code to compute.</param>
<returns>The hash code for <paramref name="array"/>.</returns>
</member>
<member name="T:J2N.Collections.OneDimensionalArrayEqualityComparer`1.GenericOneDimensionalArrayEqualityComparer">
<summary>
Structural equality comparer for arrays of <typeparamref name="T"/>.
Used if the array type is not primitive.
</summary>
</member>
<member name="M:J2N.Collections.OneDimensionalArrayEqualityComparer`1.GenericOneDimensionalArrayEqualityComparer.Equals(`0[],`0[])">
<summary>
Compares the two arrays.
</summary>
<param name="array1">The first <typeparamref name="T"/> array.</param>
<param name="array2">The second <typeparamref name="T"/> array.</param>
<returns><c>true</c> if both arrays are <c>null</c> or if the arrays have the
same length and the elements at each index in the two arrays are
equal; otherwise, <c>false</c>.</returns>
</member>
<member name="M:J2N.Collections.OneDimensionalArrayEqualityComparer`1.GenericOneDimensionalArrayEqualityComparer.GetHashCode(`0[])">
<summary>
Returns a hash code based on the contents of the given array. For any two
<typeparamref name="T"/> arrays <c>a</c> and <c>b</c>, if
<c>GenericOneDimensionalArrayEqualityComparer.Equals(a, b)</c> returns <c>true</c>, it means
that the return value of <c>GenericOneDimensionalArrayEqualityComparer.GetHashCode(a)</c> equals
<c>GenericOneDimensionalArrayEqualityComparer.GetHashCode(b)</c>.
</summary>
<param name="array">The array whose hash code to compute.</param>
<returns>The hash code for <paramref name="array"/>.</returns>
</member>
<member name="T:J2N.Collections.OneDimensionalArrayEqualityComparer`1.ValueTypeOneDimensionalArrayEqualityComparer">
<summary>
Structural equality comparer for arrays of value types without any special rules
that differ from .NET defaults.
</summary>
</member>
<member name="M:J2N.Collections.OneDimensionalArrayEqualityComparer`1.ValueTypeOneDimensionalArrayEqualityComparer.Equals(`0[],`0[])">
<summary>
Compares the two arrays.
</summary>
<param name="array1">The first <typeparamref name="T"/> array.</param>
<param name="array2">The second <typeparamref name="T"/> array.</param>
<returns><c>true</c> if both arrays are <c>null</c> or if the arrays have the
same length and the elements at each index in the two arrays are
equal; otherwise, <c>false</c>.</returns>
</member>
<member name="M:J2N.Collections.OneDimensionalArrayEqualityComparer`1.ValueTypeOneDimensionalArrayEqualityComparer.GetHashCode(`0[])">
<summary>
Returns a hash code based on the contents of the given array. For any two
<typeparamref name="T"/> arrays <c>a</c> and <c>b</c>, if
<c>ValueTypeOneDimensionalArrayEqualityComparer.Equals(a, b)</c> returns <c>true</c>, it means
that the return value of <c>ValueTypeOneDimensionalArrayEqualityComparer.GetHashCode(a)</c> equals
<c>ValueTypeOneDimensionalArrayEqualityComparer.GetHashCode(b)</c>.
</summary>
<param name="array">The array whose hash code to compute.</param>
<returns>The hash code for <paramref name="array"/>.</returns>
</member>
<member name="T:J2N.Collections.OneDimensionalArrayEqualityComparer`1.StringOneDimensionalArrayEqualityComparer">
<summary>
Structural equality comparer for arrays of <see cref="T:System.String"/>.
</summary>
</member>
<member name="M:J2N.Collections.OneDimensionalArrayEqualityComparer`1.StringOneDimensionalArrayEqualityComparer.Equals(System.String[],System.String[])">
<summary>
Compares the two arrays.
</summary>
<param name="array1">The first <see cref="T:System.String"/> array.</param>
<param name="array2">The second <see cref="T:System.String"/> array.</param>
<returns><c>true</c> if both arrays are <c>null</c> or if the arrays have the
same length and the elements at each index in the two arrays are
equal; otherwise, <c>false</c>.</returns>
</member>
<member name="M:J2N.Collections.OneDimensionalArrayEqualityComparer`1.StringOneDimensionalArrayEqualityComparer.GetHashCode(System.String[])">
<summary>
Returns a hash code based on the contents of the given array. For any two
<see cref="T:System.String"/> arrays <c>a</c> and <c>b</c>, if
<c>StringOneDimensionalArrayEqualityComparer.Equals(a, b)</c> returns <c>true</c>, it means
that the return value of <c>StringOneDimensionalArrayEqualityComparer.GetHashCode(a)</c> equals
<c>StringOneDimensionalArrayEqualityComparer.GetHashCode(b)</c>.
</summary>
<param name="array">The array whose hash code to compute.</param>
<returns>The hash code for <paramref name="array"/>.</returns>
</member>
<member name="T:J2N.Collections.StructuralEqualityComparer">
<summary>
A comparer that provides structural equality rules for collections.
</summary>
</member>
<member name="P:J2N.Collections.StructuralEqualityComparer.Default">
<summary>
Gets a <see cref="T:J2N.Collections.StructuralEqualityComparer"/> object that compares
objects for structural equality using rules similar to those in Java.
Nested elemements that implement <see cref="T:System.Collections.IStructuralEquatable"/> are also compared.
</summary>
</member>
<member name="P:J2N.Collections.StructuralEqualityComparer.Aggressive">
<summary>
Gets a <see cref="T:J2N.Collections.StructuralEqualityComparer"/> object that compares
objects for structural equality using rules similar to those in Java.
Nested elemements are also compared.
<para/>
If a nested object implements <see cref="T:System.Collections.IStructuralEquatable"/>, it will be used
to compare structural equality. If not, a reflection call is made to determine
if the object can be converted to <see cref="T:System.Collections.Generic.IList`1"/>, <see cref="T:System.Collections.Generic.ISet`1"/>, or
<see cref="T:System.Collections.Generic.IDictionary`2"/> and then the object is converted to a <c>dynamic</c>
using <see cref="M:System.Convert.ChangeType(System.Object,System.Type)"/>. The compiler then uses the converted type
to decide which comparison rules to use using method overloading.
<para/>
Usage Note: This comparer can be used to patch standard built-in .NET collections for structural equality,
but it is slower to use built-in .NET collections than ensuring all nested types
implement <see cref="T:System.Collections.IStructuralEquatable"/>. This mode only supports types that
implement <see cref="T:System.Collections.IStructuralEquatable"/>, <see cref="T:System.Collections.Generic.IList`1"/>,
<see cref="T:System.Collections.Generic.ISet`1"/>, or <see cref="T:System.Collections.Generic.IDictionary`2"/>. All other types will
be compared using <see cref="P:System.Collections.Generic.EqualityComparer`1.Default"/>.
</summary>
</member>
<member name="M:J2N.Collections.StructuralEqualityComparer.Equals(System.Object,System.Object)">
<summary>
Compares two objects for structural equality.
Two object are considered structurally equal if
both of them contain the same types.
</summary>
<param name="x">The first object to compare.</param>
<param name="y">The second dictionary to compare.</param>
<returns><c>true</c> if both objects are structurally equivalent; otherwise, <c>false</c>.</returns>
</member>
<member name="M:J2N.Collections.StructuralEqualityComparer.GetHashCode(System.Object)">
<summary>
Returns the structural hash code for the specified object.
<para/>
This implementation iterates over the any nested arrays or collections getting the hash code
for each element.
</summary>
<param name="obj">The object to calculate the hash code for.</param>
<returns>The hash code for <paramref name="obj"/>.</returns>
</member>
<member name="M:J2N.Collections.StructuralEqualityComparer.UnstructuredEquals(System.Object,System.Object)">
<summary>
Overridden in a derived class, handles the equality of types that are not
arrays or collections.
</summary>
<param name="x">The first object to compare.</param>
<param name="y">The second object to compare.</param>
<returns><c>true</c> if the provided objects are equal; otherwise, <c>false</c>.</returns>
</member>
<member name="M:J2N.Collections.StructuralEqualityComparer.GetUnstructuredHashCode(System.Object)">
<summary>
Overridden in a derived class, handles the get hash code of types that are not
arrays or collections.
</summary>
<param name="obj">The object to provide the hash code for.</param>
<returns>The hash code for <paramref name="obj"/>.</returns>
</member>
<member name="T:J2N.Collections.AggressiveStructuralEqualityComparer">
<summary>
In addition to supporting <see cref="T:System.Collections.IStructuralComparable"/>, this comparer patches existing
<see cref="T:System.Collections.Generic.IList`1"/>, <see cref="T:System.Collections.Generic.ISet`1"/>, and <see cref="T:System.Collections.Generic.IDictionary`2"/> collections
to make them structurally comparable (at additional runtime performance cost), even if they
do not implement <see cref="T:System.Collections.IStructuralComparable"/>.
</summary>
</member>
<member name="T:J2N.Collections.StructuralEqualityUtil">
<summary>
Utilities for structural equality of arrays and collections.
</summary>
</member>
<member name="T:J2N.DoubleExtensions">
<summary>
Extensions to the <see cref="T:System.Double"/> structure.
</summary>
</member>
<member name="M:J2N.DoubleExtensions.IsFinite(System.Double)">
<summary>
Determines whether the specified value is finite (zero, subnormal, or normal).
</summary>
<param name="d">A double-precision floating-point number.</param>
<returns><c>true</c> if the value is finite (zero, subnormal or normal); otherwise <c>false</c>.</returns>
</member>
<member name="M:J2N.DoubleExtensions.IsInfinity(System.Double)">
<summary>
Returns a value indicating whether the specified value evaluates to negative or positive infinity.
</summary>
<param name="d">A double-precision floating-point number.</param>
<returns><c>true</c> if the value evaluates to <see cref="F:System.Double.PositiveInfinity"/> or
<see cref="F:System.Double.NegativeInfinity"/>; otherwise, <c>false</c>.</returns>
</member>
<member name="M:J2N.DoubleExtensions.IsNaN(System.Double)">
<summary>
Returns a value that indicates whether the specified value is not a number
(<see cref="F:System.Double.NaN"/>).
</summary>
<param name="d">A double-precision floating-point number.</param>
<returns><c>true</c> if the value evaluates to <see cref="F:System.Double.NaN"/>;
otherwise, <c>false</c>.</returns>
</member>
<member name="M:J2N.DoubleExtensions.IsNegative(System.Double)">
<summary>
Determines whether the specified value is negative.
</summary>
<param name="d">A double-precision floating-point number.</param>
<returns><c>true</c> if the value is negative; otherwise, <c>false</c>.</returns>
</member>
<member name="M:J2N.DoubleExtensions.IsNegativeInfinity(System.Double)">
<summary>
Returns a value indicating whether the specified number evaluates to negative
infinity.
</summary>
<param name="d">A double-precision floating-point number.</param>
<returns><c>true</c> if <paramref name="d"/> evaluates to <see cref="F:System.Double.NegativeInfinity"/>;
otherwise, <c>false</c>.</returns>
</member>
<member name="M:J2N.DoubleExtensions.IsNegativeZero(System.Double)">
<summary>
Gets a value indicating whether the current <see cref="T:System.Double"/> has the value negative zero (<c>-0.0d</c>).
While negative zero is supported by the <see cref="T:System.Double"/> datatype in .NET, comparisons and string formatting ignore
this feature. This method allows a simple way to check whether the current <see cref="T:System.Double"/> has the value negative zero.
</summary>
<param name="d">A double-precision floating-point number.</param>
<returns><c>true</c> if the current value represents negative zero; otherwise, <c>false</c>.</returns>
</member>
<member name="M:J2N.DoubleExtensions.IsNormal(System.Double)">
<summary>
Determines whether the specified value is normal.
</summary>
<param name="d">A double-precision floating-point number.</param>
<returns><c>true</c> if the value is normal; <c>false</c> otherwise.</returns>
</member>
<member name="M:J2N.DoubleExtensions.IsPositiveInfinity(System.Double)">
<summary>
Returns a value indicating whether the specified number evaluates to positive infinity.
</summary>
<param name="d">A double-precision floating-point number.</param>
<returns><c>true</c> if <paramref name="d"/> evaluates to <see cref="F:System.Double.PositiveInfinity"/>; otherwise, <c>false</c>.</returns>
</member>
<member name="M:J2N.DoubleExtensions.IsSubnormal(System.Double)">
<summary>
Determines whether the specified value is subnormal.
</summary>
<param name="d">A double-precision floating-point number.</param>
<returns><c>true</c> if the value is subnormal; <c>false</c> otherwise.</returns>
</member>
<member name="M:J2N.DoubleExtensions.ToHexString(System.Double,System.IFormatProvider)">
<summary>
Returns a hexadecimal string representation of the <see cref="T:System.Double"/> argument. All characters mentioned below are ASCII characters.
<list type="bullet">
<item><description>If the argument is <see cref="F:System.Double.NaN"/>, the result is <see cref="P:System.Globalization.NumberFormatInfo.NumberDecimalSeparator"/>
of the <paramref name="provider"/>.</description></item>
<item><description>Otherwise, the result is a string that represents the sign and magnitude of the argument. If the sign
is negative, it is prefixed by <see cref="P:System.Globalization.NumberFormatInfo.NegativeSign"/> of the <paramref name="provider"/>; if the
sign is positive, no sign character appears in the result. As for the magnitude <i>m</i>: </description>
<list type="bullet">
<item><description>If <i>m</i> is positive infinity, it is represented by <see cref="P:System.Globalization.NumberFormatInfo.PositiveInfinitySymbol"/> of the <paramref name="provider"/>;
if <i>m</i> is negative infinity, it is represented by <see cref="P:System.Globalization.NumberFormatInfo.NegativeInfinitySymbol"/> of the <paramref name="provider"/>.</description></item>
<item><description>If <i>m</i> is zero, it is represented by the string "0x0.0p0"; thus, negative zero produces the result
"-0x0.0p0" and positive zero produces the result "0x0.0p0". The negative symbol is represented by <see cref="P:System.Globalization.NumberFormatInfo.NegativeSign"/>
and decimal separator character is represented by <see cref="P:System.Globalization.NumberFormatInfo.NumberDecimalSeparator"/>.</description></item>
<item><description>If <i>m</i> is a <see cref="T:System.Double"/> value with a normalized representation, substrings are used to represent the significand
and exponent fields. The significand is represented by the characters "0x1" followed by <see cref="P:System.Globalization.NumberFormatInfo.NumberDecimalSeparator"/>,
followed by a lowercase hexadecimal representation of the rest of the significand as a fraction. Trailing zeros in the hexadecimal representation are
removed unless all the digits are zero, in which case a single zero is used. Next, the exponent is represented by "p"
followed by a decimal string of the unbiased exponent as if produced by a call to <see cref="M:System.Int32.ToString"/> with invariant culture on the exponent value. </description></item>
<item><description>If <i>m</i> is a <see cref="T:System.Double"/> value with a subnormal representation, the significand is represented by the characters "0x0"
followed by <see cref="P:System.Globalization.NumberFormatInfo.NumberDecimalSeparator"/>, followed by a hexadecimal representation of the rest of the significand as a fraction.
Trailing zeros in the hexadecimal representation are removed. Next, the exponent is represented by "p-1022". Note that there must be at least one nonzero
digit in a subnormal significand. </description></item>
</list>
</item>
</list>
<para/>
The value of <see cref="P:System.Globalization.NumberFormatInfo.NumberNegativePattern"/> of <paramref name="provider"/> is ignored.
<para/>
<h3>Examples (using <see cref="P:System.Globalization.NumberFormatInfo.InvariantInfo"/>)</h3>
<list type="table">
<listheader>
<term>Floating-point Value</term>
<term>Hexadecimal String</term>
</listheader>
<item>
<term>1.0</term>
<term>0x1.0p0</term>
</item>
<item>
<term>-1.0</term>
<term>-0x1.0p0</term>
</item>
<item>
<term>2.0</term>
<term>0x1.0p1</term>
</item>
<item>
<term>3.0</term>
<term>0x1.8p1</term>
</item>
<item>
<term>0.5</term>
<term>0x1.0p-1</term>
</item>
<item>
<term>0.25</term>
<term>0x1.0p-2</term>
</item>
<item>
<term><see cref="F:System.Double.MaxValue"/></term>
<term>0x1.fffffffffffffp1023</term>
</item>
<item>
<term>Minimum Normal Value</term>
<term>0x1.0p-1022</term>
</item>
<item>
<term>Maximum Subnormal Value</term>
<term>0x0.fffffffffffffp-1022</term>
</item>
<item>
<term><see cref="F:System.Double.Epsilon"/></term>
<term>0x0.0000000000001p-1022</term>
</item>
</list>
<para/>
Usage Note: To exactly match the behavior of the JDK, use <see cref="P:System.Globalization.NumberFormatInfo.InvariantInfo"/>
for <paramref name="provider"/>.
</summary>
<param name="value">The double to be converted.</param>
<param name="provider">An object that supplies culture-specific formatting information.</param>
<returns>A hex string representing <paramref name="value"/>.</returns>
</member>
<member name="T:J2N.Globalization.CultureContext">
<summary>
Allows switching the current thread to a new culture in a using block that will automatically
return the culture to its previous state upon completion.
<para/>
<see cref="T:J2N.Globalization.CultureContext"/> can be used to run arbitrary code within a specific culture without
having to change APIs to pass a culture parameter.
<para/>
<code>
using (var context = new CultureContext("fr-FR"))
{
// Execute code in the french culture
}
</code>
</summary>
</member>
<member name="M:J2N.Globalization.CultureContext.#ctor(System.Int32)">
<summary>
Initializes a new instance of <see cref="T:System.Globalization.CultureInfo"/>
based on the culture specified by the <paramref name="culture"/> identifier.
</summary>
<param name="culture">A predefined <see cref="T:System.Globalization.CultureInfo"/> identifier, <see cref="P:System.Globalization.CultureInfo.LCID"/> property
of an existing <see cref="T:System.Globalization.CultureInfo"/> object, or Windows-only culture identifier. This value will be applied
to the <see cref="P:System.Globalization.CultureInfo.CurrentCulture"/>.</param>
</member>
<member name="M:J2N.Globalization.CultureContext.#ctor(System.Int32,System.Int32)">
<summary>
Initializes a new instance of <see cref="T:System.Globalization.CultureInfo"/>
based on the culture specified by the <paramref name="culture"/> and <paramref name="uiCulture"/> identifiers.
</summary>
<param name="culture">A predefined <see cref="T:System.Globalization.CultureInfo"/> identifier, <see cref="P:System.Globalization.CultureInfo.LCID"/> property
of an existing <see cref="T:System.Globalization.CultureInfo"/> object, or Windows-only culture identifier. This value will be applied
to the <see cref="P:System.Globalization.CultureInfo.CurrentCulture"/>.</param>
<param name="uiCulture">A predefined <see cref="T:System.Globalization.CultureInfo"/> identifier, <see cref="P:System.Globalization.CultureInfo.LCID"/> property
of an existing <see cref="T:System.Globalization.CultureInfo"/> object, or Windows-only culture identifier. This value will be applied
to the <see cref="P:System.Globalization.CultureInfo.CurrentUICulture"/>.</param>
</member>
<member name="M:J2N.Globalization.CultureContext.#ctor(System.String)">
<summary>
Initializes a new instance of <see cref="T:System.Globalization.CultureInfo"/>
based on the culture specified by the <paramref name="cultureName"/> identifier.
</summary>
<param name="cultureName">A predefined <see cref="T:System.Globalization.CultureInfo"/> name, <see cref="P:System.Globalization.CultureInfo.Name"/> of an
existing <see cref="T:System.Globalization.CultureInfo"/>, or Windows-only culture name. name is not case-sensitive. This value will be applied
to the <see cref="P:System.Globalization.CultureInfo.CurrentCulture"/>.
</param>
</member>
<member name="M:J2N.Globalization.CultureContext.#ctor(System.String,System.String)">
<summary>
Initializes a new instance of <see cref="T:System.Globalization.CultureInfo"/>
based on the culture specified by the <paramref name="cultureName"/> identifier.
</summary>
<param name="cultureName">A predefined <see cref="T:System.Globalization.CultureInfo"/> name, <see cref="P:System.Globalization.CultureInfo.Name"/> of an
existing <see cref="T:System.Globalization.CultureInfo"/>, or Windows-only culture name. name is not case-sensitive. This value will be applied
to the <see cref="P:System.Globalization.CultureInfo.CurrentCulture"/>.
</param>
<param name="uiCultureName">A predefined <see cref="T:System.Globalization.CultureInfo"/> name, <see cref="P:System.Globalization.CultureInfo.Name"/> of an
existing <see cref="T:System.Globalization.CultureInfo"/>, or Windows-only culture name. name is not case-sensitive. This value will be applied
to the <see cref="P:System.Globalization.CultureInfo.CurrentUICulture"/>.</param>
</member>
<member name="M:J2N.Globalization.CultureContext.#ctor(System.Globalization.CultureInfo)">
<summary>
Initializes a new instance of <see cref="T:System.Globalization.CultureInfo"/>
based on the <see cref="T:System.Globalization.CultureInfo"/> specified by the <paramref name="culture"/> identifier.
</summary>
<param name="culture">A <see cref="T:System.Globalization.CultureInfo"/> object. This value will be applied
to the <see cref="P:System.Globalization.CultureInfo.CurrentCulture"/>.
</param>
</member>
<member name="M:J2N.Globalization.CultureContext.#ctor(System.Globalization.CultureInfo,System.Globalization.CultureInfo)">
<summary>
Initializes a new instance of <see cref="T:System.Globalization.CultureInfo"/>
based on the <see cref="T:System.Globalization.CultureInfo"/> specified by the <paramref name="culture"/> identifier.
</summary>
<param name="culture">A <see cref="T:System.Globalization.CultureInfo"/> object. This value will be applied
to the <see cref="P:System.Globalization.CultureInfo.CurrentCulture"/>.
</param>
<param name="uiCulture">A <see cref="T:System.Globalization.CultureInfo"/> object. This value will be applied
to the <see cref="P:System.Globalization.CultureInfo.CurrentUICulture"/>.</param>
</member>
<member name="P:J2N.Globalization.CultureContext.OriginalCulture">
<summary>
Gets the original <see cref="P:System.Globalization.CultureInfo.CurrentCulture"/> value that existed on the current
thread when this instance was initialized.
</summary>
</member>
<member name="P:J2N.Globalization.CultureContext.OriginalUICulture">
<summary>
Gets the original <see cref="P:System.Globalization.CultureInfo.CurrentUICulture"/> value that existed on the current
thread when this instance was initialized.
</summary>
</member>
<member name="M:J2N.Globalization.CultureContext.RestoreOriginalCulture">
<summary>
Restores the <see cref="P:System.Globalization.CultureInfo.CurrentCulture"/> and <see cref="P:System.Globalization.CultureInfo.CurrentUICulture"/> to their
original values, <see cref="P:J2N.Globalization.CultureContext.OriginalCulture"/> and <see cref="P:J2N.Globalization.CultureContext.OriginalUICulture"/>, respectively.
</summary>
</member>
<member name="M:J2N.Globalization.CultureContext.Dispose">
<summary>
Restores the <see cref="P:System.Globalization.CultureInfo.CurrentCulture"/> and <see cref="P:System.Globalization.CultureInfo.CurrentUICulture"/> to their
original values, <see cref="P:J2N.Globalization.CultureContext.OriginalCulture"/> and <see cref="P:J2N.Globalization.CultureContext.OriginalUICulture"/>, respectively.
<para/>
This can be called automatically with a using block to ensure the culture is reset even in the event of an exception.
<code>
using (var context = new CultureContext("fr-FR"))
{
// Execute code in the french culture
}
</code>
</summary>
</member>
<member name="T:J2N.Globalization.NumberStyle">
<summary>
Determines the styles permitted in numeric string arguments that are passed to
the Parse and TryParse methods of the integral and floating-point numeric types
in the <see cref="N:J2N.Numerics"/> namespace.
<para/>
Usage Note: This enum is compatible in both symbol and value to <see cref="T:System.Globalization.NumberStyles"/>,
however it is not recommended to cast due to strict flag validation.
To convert from <see cref="T:System.Globalization.NumberStyles"/> to <see cref="T:J2N.Globalization.NumberStyle"/>, call the
<see cref="M:J2N.Globalization.NumberStyleExtensions.ToNumberStyle(System.Globalization.NumberStyles)"/> extension method.
<code>
NumberStyles myStyle = NumberStyles.Float | NumberStyles.AllowParentheses;<br/>
NumberStyle myStyleConverted = myStyle.ToNumberStyle();
</code>
You may convert the other way, as well.
<code>
NumberStyle myStyle = NumberStyle.Float | NumberStyle.AllowParentheses;<br/>
NumberStyles myStyleConverted = myStyle.ToNumberStyles();
</code>
</summary>
</member>
<member name="F:J2N.Globalization.NumberStyle.None">
<summary>
Indicates that no style elements, such as leading or trailing white space, thousands
separators, or a decimal separator, can be present in the parsed string. The
string to be parsed must consist of integral decimal digits only.
</summary>
</member>
<member name="F:J2N.Globalization.NumberStyle.AllowLeadingWhite">
<summary>
Indicates that leading white-space characters can be present in the parsed string.
Valid white-space characters have the Unicode values U+0009, U+000A, U+000B,
U+000C, U+000D, and U+0020. Note that this is a subset of the characters for
which the <see cref="M:System.Char.IsWhiteSpace(System.Char)"/> method returns <c>true</c>.
</summary>
</member>
<member name="F:J2N.Globalization.NumberStyle.AllowTrailingWhite">
<summary>
Indicates that trailing white-space characters can be present in the parsed string.
Valid white-space characters have the Unicode values U+0009, U+000A, U+000B,
U+000C, U+000D, and U+0020. Note that this is a subset of the characters for
which the <see cref="M:System.Char.IsWhiteSpace(System.Char)"/> method returns <c>true</c>.
</summary>
</member>
<member name="F:J2N.Globalization.NumberStyle.AllowLeadingSign">
<summary>
Indicates that the numeric string can have a leading sign. Valid leading sign
characters are determined by the <see cref="P:System.Globalization.NumberFormatInfo.PositiveSign"/>
and <see cref="P:System.Globalization.NumberFormatInfo.NegativeSign"/> properties.
</summary>
</member>
<member name="F:J2N.Globalization.NumberStyle.AllowTrailingSign">
<summary>
Indicates that the numeric string can have a trailing sign. Valid trailing sign
characters are determined by the <see cref="P:System.Globalization.NumberFormatInfo.PositiveSign"/>
and <see cref="P:System.Globalization.NumberFormatInfo.NegativeSign"/>.
</summary>
</member>
<member name="F:J2N.Globalization.NumberStyle.AllowParentheses">
<summary>
Indicates that the numeric string can have one pair of parentheses enclosing
the number. The parentheses indicate that the string to be parsed represents
a negative number.
</summary>
</member>
<member name="F:J2N.Globalization.NumberStyle.AllowDecimalPoint">
<summary>
Indicates that the numeric string can have a decimal point. If the <see cref="T:J2N.Globalization.NumberStyle"/>
value includes the <see cref="F:J2N.Globalization.NumberStyle.AllowCurrencySymbol"/> flag
and the parsed string includes a currency symbol, the decimal separator character
is determined by the <see cref="P:System.Globalization.NumberFormatInfo.CurrencyDecimalSeparator"/>
property. Otherwise, the decimal separator character is determined by the <see cref="P:System.Globalization.NumberFormatInfo.NumberDecimalSeparator"/>
property.
</summary>
</member>
<member name="F:J2N.Globalization.NumberStyle.AllowThousands">
<summary>
Indicates that the numeric string can have group separators, such as symbols
that separate hundreds from thousands. If the <see cref="T:J2N.Globalization.NumberStyle"/>
value includes the <see cref="F:J2N.Globalization.NumberStyle.AllowCurrencySymbol"/> flag
and the string to be parsed includes a currency symbol, the valid group separator
character is determined by the <see cref="P:System.Globalization.NumberFormatInfo.CurrencyGroupSeparator"/>
property. Otherwise, the valid group separator character is determined by the
<see cref="P:System.Globalization.NumberFormatInfo.NumberGroupSeparator"/> property, and the
number of digits in each group is determined by the <see cref="P:System.Globalization.NumberFormatInfo.NumberGroupSizes"/>
property.
</summary>
</member>
<member name="F:J2N.Globalization.NumberStyle.AllowExponent">
<summary>
Indicates that the numeric string can be in exponential notation. The <see cref="F:J2N.Globalization.NumberStyle.AllowExponent"/>
flag allows the parsed string to contain an exponent that begins with the "E"
or "e" character and that is followed by an optional positive or negative sign
and an integer. In other words, it successfully parses strings in the form <i>nnn</i>E<i>xx</i>,
<i>nnn</i>E+<i>xx</i> and <i>nnn</i>E-<i>xx</i>. It does not allow a decimal separator or sign in the significand
or mantissa; to allow these elements in the string to be parsed, use the <see cref="F:J2N.Globalization.NumberStyle.AllowDecimalPoint"/>
style that includes these individual flags.
</summary>
</member>
<member name="F:J2N.Globalization.NumberStyle.AllowCurrencySymbol">
<summary>
Indicates that the numeric string can contain a currency symbol. Valid currency
symbols are determined by the <see cref="P:System.Globalization.NumberFormatInfo.CurrencySymbol"/>
property.
</summary>
</member>
<member name="F:J2N.Globalization.NumberStyle.AllowHexSpecifier">
<summary>
Indicates that the numeric string represents a hexadecimal value. Valid hexadecimal
values include the numeric digits 0-9 and the hexadecimal digits A-F and a-f.
Strings that are parsed using this style can only be prefixed with "0x" or "&amp;h"
when parsing floating point hexadecimal types.
A string that is parsed with the <see cref="F:J2N.Globalization.NumberStyle.AllowHexSpecifier"/>
style will always be interpreted as a hexadecimal value.
The <see cref="T:J2N.Globalization.NumberStyle"/> enumeration includes 2 composite styles,
<see cref="F:J2N.Globalization.NumberStyle.HexNumber"/> and <see cref="F:J2N.Globalization.NumberStyle.HexFloat"/>, that can be used to
specifiy either hexadecimal integral or floating-point types along with
a default set of options that are used in most cases.
</summary>
</member>
<member name="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier">
<summary>
Indicates that the numeric string represents a number expressed as a
C# or Java literal string, such as <c>3.14159f</c>, <c>145L</c> or <c>4.972135238332232d</c>.
This option applies to both floating point numbers and integral numbers.
The
<para/>
If this option is used without <see cref="F:J2N.Globalization.NumberStyle.AllowHexSpecifier"/>, the type suffix
'D', 'd', 'F', 'f', 'M', 'm', 'UL', 'Ul', 'uL', 'ul', 'LU', 'Lu', 'lU', or 'lu'
are all valid for all numeric types.
<para/>
If this option is used with <see cref="F:J2N.Globalization.NumberStyle.AllowHexSpecifier"/>, the destination data type
determines the type specifiers that can be used.
<list type="table">
<item>
<term>Integral Types</term>
<description>Only 'UL', 'Ul', 'uL', 'ul', 'LU', 'Lu', 'lU', or 'lu' are allowed.</description>
</item>
<item>
<term>Floating Point Types</term>
<description>'d', 'D', 'f', or 'F' are all treated as hexadecimal values unless an
exponent (beginning with 'p') is also supplied (i.e. <c>0x1.8p1f</c>). In these cases,
<see cref="F:J2N.Globalization.NumberStyle.AllowExponent"/> is also required.
<para/>
'UL', 'Ul', 'uL', 'ul', 'LU', 'Lu', 'lU', or 'lu' may be used as long as the
numeric representation of the number does not contain a decimal point.
</description>
</item>
</list>
<para/>
Note the type is simply ignored during the parse when you specify this option (which is how it works in Java).
</summary>
</member>
<member name="F:J2N.Globalization.NumberStyle.Integer">
<summary>
Indicates that the <see cref="F:J2N.Globalization.NumberStyle.AllowLeadingWhite"/>, <see cref="F:J2N.Globalization.NumberStyle.AllowTrailingWhite"/>,
and <see cref="F:J2N.Globalization.NumberStyle.AllowLeadingSign"/> styles are used. This
is a composite number style.
</summary>
</member>
<member name="F:J2N.Globalization.NumberStyle.HexNumber">
<summary>
Indicates that <see cref="F:J2N.Globalization.NumberStyle.AllowLeadingWhite"/>, <see cref="F:J2N.Globalization.NumberStyle.AllowTrailingWhite"/>,
and <see cref="F:J2N.Globalization.NumberStyle.AllowHexSpecifier"/> styles are used. This
is a composite number style.
</summary>
</member>
<member name="F:J2N.Globalization.NumberStyle.Number">
<summary>
Indicates that the <see cref="F:J2N.Globalization.NumberStyle.AllowLeadingWhite"/>, <see cref="F:J2N.Globalization.NumberStyle.AllowTrailingWhite"/>,
<see cref="F:J2N.Globalization.NumberStyle.AllowLeadingSign"/>, <see cref="F:J2N.Globalization.NumberStyle.AllowTrailingSign"/>,
<see cref="F:J2N.Globalization.NumberStyle.AllowDecimalPoint"/>, and <see cref="F:J2N.Globalization.NumberStyle.AllowThousands"/>
styles are used. This is a composite number style.
</summary>
</member>
<member name="F:J2N.Globalization.NumberStyle.Float">
<summary>
Indicates that the <see cref="F:J2N.Globalization.NumberStyle.AllowLeadingWhite"/>, <see cref="F:J2N.Globalization.NumberStyle.AllowTrailingWhite"/>,
<see cref="F:J2N.Globalization.NumberStyle.AllowLeadingSign"/>, <see cref="F:J2N.Globalization.NumberStyle.AllowDecimalPoint"/>,
and <see cref="F:J2N.Globalization.NumberStyle.AllowExponent"/> styles are used. This is
a composite number style.
</summary>
</member>
<member name="F:J2N.Globalization.NumberStyle.HexFloat">
<summary>
Indicates that the <see cref="F:J2N.Globalization.NumberStyle.AllowLeadingWhite"/>, <see cref="F:J2N.Globalization.NumberStyle.AllowTrailingWhite"/>,
<see cref="F:J2N.Globalization.NumberStyle.AllowLeadingSign"/>, <see cref="F:J2N.Globalization.NumberStyle.AllowDecimalPoint"/>,
<see cref="F:J2N.Globalization.NumberStyle.AllowExponent"/>, and <see cref="F:J2N.Globalization.NumberStyle.AllowHexSpecifier"/> styles are used. This is
a composite number style.
</summary>
</member>
<member name="F:J2N.Globalization.NumberStyle.Currency">
<summary>
Indicates that all styles except <see cref="F:J2N.Globalization.NumberStyle.AllowExponent"/>
<see cref="F:J2N.Globalization.NumberStyle.AllowHexSpecifier"/> and <see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/> are used. This is a composite
number style.
</summary>
</member>
<member name="F:J2N.Globalization.NumberStyle.Any">
<summary>
Indicates that all styles except <see cref="F:J2N.Globalization.NumberStyle.AllowHexSpecifier"/>
and <see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/>are used. This is a composite number style.
</summary>
</member>
<member name="T:J2N.Globalization.NumberStyleExtensions">
<summary>
Extensions to <see cref="T:J2N.Globalization.NumberStyle"/> and <see cref="T:System.Globalization.NumberStyles"/>.
</summary>
</member>
<member name="F:J2N.Globalization.NumberStyleExtensions.ValidNumberStyles">
<summary>
The <see cref="T:J2N.Globalization.NumberStyle"/> flags that are supported in <see cref="T:System.Globalization.NumberStyles"/> (in .NET).
<para/>
This list should be kept up to date with changes in the .NET platform, but serves as a safety
net to ensure no new flags are considered until we have manually included them.
</summary>
</member>
<member name="F:J2N.Globalization.NumberStyleExtensions.ValidNumberStyle">
<summary>
The <see cref="T:J2N.Globalization.NumberStyle"/> flags that are supported in J2N.
</summary>
</member>
<member name="M:J2N.Globalization.NumberStyleExtensions.ToNumberStyles(J2N.Globalization.NumberStyle)">
<summary>
Converts a <see cref="T:J2N.Globalization.NumberStyle"/> to <see cref="T:System.Globalization.NumberStyles"/> and removes all of the
flags that are not valid on the .NET platform.
</summary>
<param name="style">The flags to convert.</param>
<returns>The flags in <paramref name="style"/> that are supported on the .NET platform.</returns>
</member>
<member name="M:J2N.Globalization.NumberStyleExtensions.ToNumberStyle(System.Globalization.NumberStyles)">
<summary>
Converts a <see cref="T:System.Globalization.NumberStyles"/> to <see cref="T:J2N.Globalization.NumberStyle"/> and removes all of the
flags that are not valid in J2N.
</summary>
<param name="style">The flags to convert.</param>
<returns>The flags in <paramref name="style"/> that are supported in J2N.</returns>
</member>
<member name="T:J2N.IntegralNumberExtensions">
<summary>
Extensions to integral numbers such as <see cref="T:System.Int32"/> or <see cref="T:System.Int64"/>.
</summary>
</member>
<member name="M:J2N.IntegralNumberExtensions.ToBinaryString(System.Char)">
<summary>
Converts the specified <see cref="T:System.Char"/> into its binary string representation. The
returned string is a concatenation of '0' and '1' characters.
</summary>
<param name="value">The <see cref="T:System.Char"/> to convert</param>
<returns>The binary string representation of <paramref name="value"/>.</returns>
</member>
<member name="M:J2N.IntegralNumberExtensions.ToBinaryString(System.Int16)">
<summary>
Converts the specified <see cref="T:System.Int16"/> into its binary string representation. The
returned string is a concatenation of '0' and '1' characters.
</summary>
<param name="value">The <see cref="T:System.Int16"/> to convert</param>
<returns>The binary string representation of <paramref name="value"/>.</returns>
</member>
<member name="M:J2N.IntegralNumberExtensions.ToBinaryString(System.Int32)">
<summary>
Converts the specified <see cref="T:System.Int32"/> into its binary string representation. The
returned string is a concatenation of '0' and '1' characters.
</summary>
<param name="value">The <see cref="T:System.Int32"/> to convert</param>
<returns>The binary string representation of <paramref name="value"/>.</returns>
</member>
<member name="M:J2N.IntegralNumberExtensions.ToBinaryString(System.Int64)">
<summary>
Converts the specified <see cref="T:System.Int64"/> into its binary string representation. The
returned string is a concatenation of '0' and '1' characters.
</summary>
<param name="value">The <see cref="T:System.Int64"/> to convert</param>
<returns>The binary string representation of <paramref name="value"/>.</returns>
</member>
<member name="M:J2N.IntegralNumberExtensions.ToHexString(System.Char)">
<summary>
Converts the current <see cref="T:System.Char"/> into its hexadecimal string
representation (in lowercase). The returned string is a
concatenation of characters from '0' to '9' and 'a' to 'f'.
</summary>
<param name="value">The <see cref="T:System.Char"/> to convert.</param>
<returns>The hexadecimal string representation of <paramref name="value"/>.</returns>
</member>
<member name="M:J2N.IntegralNumberExtensions.ToHexString(System.Int16)">
<summary>
Converts the current <see cref="T:System.Int16"/> into its hexadecimal string
representation (in lowercase). The returned string is a
concatenation of characters from '0' to '9' and 'a' to 'f'.
</summary>
<param name="value">The <see cref="T:System.Int16"/> to convert.</param>
<returns>The hexadecimal string representation of <paramref name="value"/>.</returns>
</member>
<member name="M:J2N.IntegralNumberExtensions.ToHexString(System.Int32)">
<summary>
Converts the current <see cref="T:System.Int32"/> into its hexadecimal string
representation (in lowercase). The returned string is a
concatenation of characters from '0' to '9' and 'a' to 'f'.
</summary>
<param name="value">The <see cref="T:System.Int32"/> to convert.</param>
<returns>The hexadecimal string representation of <paramref name="value"/>.</returns>
</member>
<member name="M:J2N.IntegralNumberExtensions.ToHexString(System.Int64)">
<summary>
Converts the current <see cref="T:System.Int64"/> into its hexadecimal string
representation (in lowercase). The returned string is a
concatenation of characters from '0' to '9' and 'a' to 'f'.
</summary>
<param name="value">The <see cref="T:System.Int64"/> to convert.</param>
<returns>The hexadecimal string representation of <paramref name="value"/>.</returns>
</member>
<member name="M:J2N.IntegralNumberExtensions.ToOctalString(System.Char)">
<summary>
Converts the specified <see cref="T:System.Char"/> into its octal string representation. The
returned string is a concatenation of characters from '0' to '7'.
</summary>
<param name="value">The <see cref="T:System.Char"/> to convert.</param>
<returns>The octal string representation of <paramref name="value"/>.</returns>
</member>
<member name="M:J2N.IntegralNumberExtensions.ToOctalString(System.Int16)">
<summary>
Converts the specified <see cref="T:System.Int16"/> into its octal string representation. The
returned string is a concatenation of characters from '0' to '7'.
</summary>
<param name="value">The <see cref="T:System.Int16"/> to convert.</param>
<returns>The octal string representation of <paramref name="value"/>.</returns>
</member>
<member name="M:J2N.IntegralNumberExtensions.ToOctalString(System.Int32)">
<summary>
Converts the specified <see cref="T:System.Int32"/> into its octal string representation. The
returned string is a concatenation of characters from '0' to '7'.
</summary>
<param name="value">The <see cref="T:System.Int32"/> to convert.</param>
<returns>The octal string representation of <paramref name="value"/>.</returns>
</member>
<member name="M:J2N.IntegralNumberExtensions.ToOctalString(System.Int64)">
<summary>
Converts the specified <see cref="T:System.Int64"/> into its octal string representation. The
returned string is a concatenation of characters from '0' to '7'.
</summary>
<param name="value">The <see cref="T:System.Int64"/> to convert.</param>
<returns>The octal string representation of <paramref name="value"/>.</returns>
</member>
<member name="M:J2N.IntegralNumberExtensions.ToString(System.Int32,System.Int32)">
<summary>
Converts the specified <see cref="T:System.Int32"/> into a string representation based on the
specified radix. The returned string is a concatenation of a minus sign
if the number is negative and characters from '0' to '9' and 'a' to 'z',
depending on the radix. If <paramref name="radix"/> is not in the interval defined
by <see cref="F:J2N.Character.MinRadix"/> and <see cref="F:J2N.Character.MaxRadix"/> then 10 is
used as the base for the conversion.
<para/>
Usage Note: This method is similar to <see cref="M:System.Convert.ToString(System.Int32,System.Int32)"/>, however
there are some key differences:
<list type="bullet">
<item><description>Radix values supported are <see cref="F:J2N.Character.MinRadix"/> (2) to <see cref="F:J2N.Character.MaxRadix"/> (36).
The <see cref="M:System.Convert.ToString(System.Int32,System.Int32)"/> method only supports fromBase (radix) of 2, 8, 10, and 16.</description></item>
<item><description>Negative values are returned as the converted positive representation of the absolute value prefixed with
a '-' character. For base 2, 8, and 16, the <see cref="M:System.Convert.ToString(System.Int32,System.Int32)"/> method uses the two's complement representation.
This means that the high-order bit of the highest-order byte (bit 31) is interpreted as the sign bit. Negative representations
returned from this method
cannot be parsed using <see cref="M:System.Convert.ToInt32(System.String,System.Int32)"/>, however, the <see cref="M:J2N.Numerics.Int32.Parse(System.String,System.Int32)"/>
method and other radix-based overloads support this format while also supporting the two's complement
representation returned from <see cref="M:System.Convert.ToString(System.Int32,System.Int32)"/>.</description></item>
</list>
</summary>
<param name="value">The <see cref="T:System.Int32"/> to convert.</param>
<param name="radix">The base to use for the conversion.</param>
<returns>The string representation of <paramref name="value"/>.</returns>
</member>
<member name="M:J2N.IntegralNumberExtensions.ToString(System.Int64,System.Int32)">
<summary>
Converts the specified <see cref="T:System.Int64"/> value into a string representation based on
the specified radix. The returned string is a concatenation of a minus
sign if the number is negative and characters from '0' to '9' and 'a' to
'z', depending on the radix. If <paramref name="radix"/> is not in the interval
defined by <see cref="F:J2N.Character.MinRadix"/> and <see cref="F:J2N.Character.MaxRadix"/>
then 10 is used as the base for the conversion.
<para/>
Usage Note: This method is similar to <see cref="M:System.Convert.ToString(System.Int64,System.Int32)"/>, however
there are some key differences:
<list type="bullet">
<item><description>Radix values supported are <see cref="F:J2N.Character.MinRadix"/> (2) to <see cref="F:J2N.Character.MaxRadix"/> (36).
The <see cref="M:System.Convert.ToString(System.Int64,System.Int32)"/> method only supports fromBase (radix) of 2, 8, 10, and 16.</description></item>
<item><description>Negative values are returned as the converted positive representation of the absolute value prefixed with a
'-' character. For base 2, 8, and 16, the <see cref="M:System.Convert.ToString(System.Int64,System.Int32)"/> method uses the two's complement representation.
This means that the high-order bit of the highest-order byte (bit 63) is interpreted as the sign bit. Negative representations
returned from this method
cannot be parsed using <see cref="M:System.Convert.ToInt64(System.String,System.Int32)"/>, however, the <see cref="M:J2N.Numerics.Int64.Parse(System.String,System.Int32)"/>
method and other radix-based overloads support this format while also supporting the two's complement
representation returned from <see cref="M:System.Convert.ToString(System.Int64,System.Int32)"/>.</description></item>
</list>
</summary>
<param name="value">The long to convert.</param>
<param name="radix">The base to use for the conversion.</param>
<returns>The string representation of <paramref name="value"/>.</returns>
</member>
<member name="T:J2N.IO.Buffer">
<summary>
A buffer is a list of elements of a specific primitive type.
<para/>
A buffer can be described by the following properties:
<list type="bullet">
<item><description>
Capacity:
The number of elements a buffer can hold. Capacity may not be
negative and never changes.
</description></item>
<item><description>
Position:
A cursor of this buffer. Elements are read or written at the
position if you do not specify an index explicitly. Position may not be
negative and not greater than the limit.
</description></item>
<item><description>
Limit:
Controls the scope of accessible elements. You can only read or
write elements from index zero to <c>limit - 1</c>. Accessing
elements out of the scope will cause an exception. Limit may not be negative
and not greater than capacity.
</description></item>
<item><description>
Mark:
Used to remember the current position, so that you can reset the
position later. Mark may not be negative and no greater than position.
</description></item>
<item><description>
A buffer can be read-only or read-write. Trying to modify the elements
of a read-only buffer will cause a <see cref="T:J2N.IO.ReadOnlyBufferException"/>,
while changing the position, limit and mark of a read-only buffer is OK.
</description></item>
</list>
<para/>
Buffers are not thread-safe. If concurrent access to a buffer instance is
required, then the callers are responsible to take care of the
synchronization issues.
</summary>
</member>
<member name="F:J2N.IO.Buffer.UnsetMark">
<summary>
<c>UnsetMark</c> means the mark has not been set.
</summary>
</member>
<member name="F:J2N.IO.Buffer.capacity">
<summary>
The capacity of this buffer, which never change.
</summary>
</member>
<member name="F:J2N.IO.Buffer.limit">
<summary>
<c>limit - 1</c> is the last element that can be read or written.
Limit must be no less than zero and no greater than <see cref="F:J2N.IO.Buffer.capacity"/>.
</summary>
</member>
<member name="F:J2N.IO.Buffer.mark">
<summary>
Mark is where position will be set when <see cref="M:J2N.IO.Buffer.Reset"/> is called.
Mark is not set by default. Mark is always no less than zero and no
greater than <see cref="F:J2N.IO.Buffer.position"/>.
</summary>
</member>
<member name="F:J2N.IO.Buffer.position">
<summary>
The current position of this buffer. Position is always no less than zero
and no greater than <see cref="F:J2N.IO.Buffer.limit"/>.
</summary>
</member>
<member name="M:J2N.IO.Buffer.#ctor(System.Int32)">
<summary>
Construct a buffer with the specified capacity.
</summary>
<param name="capacity">The capacity of this buffer</param>
<exception cref="T:System.ArgumentOutOfRangeException">If <paramref name="capacity"/> is less than zero.</exception>
</member>
<member name="P:J2N.IO.Buffer.Capacity">
<summary>
Returns the capacity of this buffer.
</summary>
</member>
<member name="M:J2N.IO.Buffer.Clear">
<summary>
Clears this buffer.
<para>
While the content of this buffer is not changed, the following internal
changes take place: the current position is reset back to the start of
the buffer, the value of the buffer limit is made equal to the capacity
and mark is cleared.
</para>
</summary>
<returns>This buffer</returns>
</member>
<member name="M:J2N.IO.Buffer.Flip">
<summary>
Flips this buffer.
<para/>
The limit is set to the current position, then the position is set to
zero, and the mark is cleared.
<para/>
The content of this buffer is not changed.
</summary>
<returns>This buffer</returns>
</member>
<member name="P:J2N.IO.Buffer.HasRemaining">
<summary>
Indicates if there are elements remaining in this buffer, that is if
<c>position &lt; limit</c>.
</summary>
</member>
<member name="P:J2N.IO.Buffer.IsReadOnly">
<summary>
Indicates whether this buffer is read-only.
</summary>
<returns>
<c>true</c> if, this buffer is read-only; otherwise <c>false</c>.
</returns>
</member>
<member name="P:J2N.IO.Buffer.Limit">
<summary>
Gets or Sets the limit of this buffer.
</summary>
</member>
<member name="M:J2N.IO.Buffer.SetLimit(System.Int32)">
<summary>
Sets the limit of this buffer.
<para/>
If the current position in the buffer is in excess of
<paramref name="newLimit"/> then, on returning from this call, it will have
been adjusted to be equivalent to <paramref name="newLimit"/>. If the mark
is set and is greater than the new limit, then it is cleared.
</summary>
<param name="newLimit">The new limit value; must be non-negative and no larger than this buffer's capacity</param>
<returns>This buffer</returns>
<exception cref="T:System.ArgumentOutOfRangeException">If <paramref name="newLimit"/> is less than zero or greater than <see cref="P:J2N.IO.Buffer.Capacity"/>.</exception>
</member>
<member name="M:J2N.IO.Buffer.Mark">
<summary>
Marks the current position, so that the position may return to this point
later by calling <see cref="M:J2N.IO.Buffer.Reset"/>.
</summary>
<returns>This buffer</returns>
</member>
<member name="P:J2N.IO.Buffer.Position">
<summary>
Returns the position of this buffer.
</summary>
</member>
<member name="M:J2N.IO.Buffer.SetPosition(System.Int32)">
<summary>
Sets the position of this buffer.
<para/>
If the mark is set and it is greater than the new position, then it is
cleared.
</summary>
<param name="newPosition">The new position, must be not negative and not greater than limit.</param>
<returns>This buffer</returns>
<exception cref="T:System.ArgumentOutOfRangeException">If <paramref name="newPosition"/> is less than zero or greater than <see cref="P:J2N.IO.Buffer.Limit"/>.</exception>
</member>
<member name="P:J2N.IO.Buffer.Remaining">
<summary>
Returns the number of remaining elements in this buffer, that is
<c>limit - position</c>.
</summary>
</member>
<member name="M:J2N.IO.Buffer.Reset">
<summary>
Resets the position of this buffer to the <see cref="F:J2N.IO.Buffer.mark"/>.
</summary>
<returns>This buffer</returns>
<exception cref="T:J2N.IO.InvalidMarkException">If the mark has not been set.</exception>
</member>
<member name="M:J2N.IO.Buffer.Rewind">
<summary>
Rewinds this buffer.
<para/>
The position is set to zero, and the mark is cleared. The content of this]
buffer is not changed.
</summary>
<returns>This buffer.</returns>
</member>
<member name="T:J2N.IO.BufferOverflowException">
<summary>
A <see cref="T:J2N.IO.BufferOverflowException"/> is thrown when elements are written
to a buffer but there is not enough remaining space in the buffer.
</summary>
</member>
<member name="M:J2N.IO.BufferOverflowException.#ctor">
<summary>
Initializes a new instance of <see cref="T:J2N.IO.BufferOverflowException"/>.
</summary>
</member>
<member name="M:J2N.IO.BufferOverflowException.#ctor(System.String)">
<summary>
Initializes a new instance of <see cref="T:J2N.IO.BufferOverflowException"/>
with the specified <paramref name="message"/>.
</summary>
<param name="message">The message that describes the error.</param>
</member>
<member name="M:J2N.IO.BufferOverflowException.#ctor(System.String,System.Exception)">
<summary>
Initializes a new instance of <see cref="T:J2N.IO.BufferOverflowException"/>
with a specified error message and a reference to the inner exception
that is the cause of this exception.
</summary>
<param name="message">The message that describes the error.</param>
<param name="innerException">The exception that is the cause of the current exception, or a null reference
(<c>Nothing</c> in Visual Basic) if no inner exception is specified.</param>
</member>
<member name="M:J2N.IO.BufferOverflowException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
<summary>
Initializes a new instance of this class with serialized data.
</summary>
<param name="info">The <see cref="T:System.Runtime.Serialization.SerializationInfo"/> that holds the serialized object data about the exception being thrown.</param>
<param name="context">The <see cref="T:System.Runtime.Serialization.StreamingContext"/> that contains contextual information about the source or destination.</param>
</member>
<member name="T:J2N.IO.BufferUnderflowException">
<summary>
A <see cref="T:J2N.IO.BufferUnderflowException"/> is thrown when elements are read
from a buffer but there are not enough remaining elements in the buffer.
</summary>
</member>
<member name="M:J2N.IO.BufferUnderflowException.#ctor">
<summary>
Initializes a new instance of <see cref="T:J2N.IO.BufferUnderflowException"/>.
</summary>
</member>
<member name="M:J2N.IO.BufferUnderflowException.#ctor(System.String)">
<summary>
Initializes a new instance of <see cref="T:J2N.IO.BufferUnderflowException"/>
with the specified <paramref name="message"/>.
</summary>
<param name="message">The message that describes the error.</param>
</member>
<member name="M:J2N.IO.BufferUnderflowException.#ctor(System.String,System.Exception)">
<summary>
Initializes a new instance of <see cref="T:J2N.IO.BufferUnderflowException"/>
with a specified error message and a reference to the inner exception
that is the cause of this exception.
</summary>
<param name="message">The message that describes the error.</param>
<param name="innerException">The exception that is the cause of the current exception, or a null reference
(<c>Nothing</c> in Visual Basic) if no inner exception is specified.</param>
</member>
<member name="M:J2N.IO.BufferUnderflowException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
<summary>
Initializes a new instance of this class with serialized data.
</summary>
<param name="info">The <see cref="T:System.Runtime.Serialization.SerializationInfo"/> that holds the serialized object data about the exception being thrown.</param>
<param name="context">The <see cref="T:System.Runtime.Serialization.StreamingContext"/> that contains contextual information about the source or destination.</param>
</member>
<member name="T:J2N.IO.ByteBuffer">
<summary>
A buffer for <see cref="T:System.Byte"/>s.
<para/>
A byte buffer can be created in either one of the following ways:
<list type="bullet">
<item><description><see cref="M:J2N.IO.ByteBuffer.Allocate(System.Int32)"/> a new byte array and create a
buffer based on it</description></item>
<item><description><see cref="M:J2N.IO.ByteBuffer.Wrap(System.Byte[])"/> an existing byte array to create a new buffer</description></item>
</list>
</summary>
</member>
<member name="M:J2N.IO.ByteBuffer.Allocate(System.Int32)">
<summary>
Creates a byte buffer based on a newly allocated byte array.
</summary>
<param name="capacity">The capacity of the new buffer</param>
<returns>The created byte buffer.</returns>
<exception cref="T:System.ArgumentOutOfRangeException">If the <c>capacity &lt; 0</c>.</exception>
</member>
<member name="M:J2N.IO.ByteBuffer.Wrap(System.Byte[])">
<summary>
Creates a new byte buffer by wrapping the given byte array.
<para/>
Calling this method has the same effect as
<c>Wrap(array, 0, array.Length)</c>.
</summary>
<param name="array">The byte array which the new buffer will be based on</param>
<returns>The new byte buffer</returns>
<exception cref="T:System.ArgumentNullException">If <paramref name="array"/> is <c>null</c>.</exception>
</member>
<member name="M:J2N.IO.ByteBuffer.Wrap(System.Byte[],System.Int32,System.Int32)">
<summary>
Creates a new byte buffer by wrapping the given byte array.
<para/>
The new buffer's position will be <paramref name="startIndex"/>, limit will be
<c>start + len</c>, capacity will be the length of the array.
</summary>
<param name="array">The byte array which the new buffer will be based on.</param>
<param name="startIndex">
The start index, must not be negative and not greater than <c>array.Length</c>.
</param>
<param name="length">
The length, must not be negative and not greater than
<c>array.Length - start</c>.
</param>
<returns>The new byte buffer</returns>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="startIndex"/> plus <paramref name="length"/> indicates a position not within this instance.
<para/>
-or-
<para/>
<paramref name="startIndex"/> or <paramref name="length"/> is less than zero.
</exception>
<exception cref="T:System.ArgumentNullException">If <paramref name="array"/> is <c>null</c>.</exception>
</member>
<member name="F:J2N.IO.ByteBuffer.order">
<summary>
The byte order of this buffer, default is <see cref="F:J2N.IO.ByteOrder.BigEndian"/>.
</summary>
</member>
<member name="M:J2N.IO.ByteBuffer.#ctor(System.Int32)">
<summary>
Constructs a <see cref="T:J2N.IO.ByteBuffer"/> with given capacity.
</summary>
<param name="capacity">The capacity of the buffer.</param>
</member>
<member name="P:J2N.IO.ByteBuffer.Array">
<summary>
Returns the byte array which this buffer is based on, if there is one.
</summary>
<returns>The byte array which this buffer is based on.</returns>
<exception cref="T:J2N.IO.ReadOnlyBufferException">If this buffer is based on a read-only array.</exception>
<exception cref="T:System.NotSupportedException">If this buffer is not based on an array.</exception>
</member>
<member name="P:J2N.IO.ByteBuffer.ArrayOffset">
<summary>
Returns the offset of the byte array which this buffer is based on, if
there is one.
<para/>
The offset is the index of the array which corresponds to the zero
position of the buffer.
</summary>
<exception cref="T:J2N.IO.ReadOnlyBufferException">If this buffer is based on a read-only array.</exception>
<exception cref="T:System.NotSupportedException">If this buffer is not based on an array.</exception>
</member>
<member name="M:J2N.IO.ByteBuffer.AsCharBuffer">
<summary>
Returns a <see cref="T:System.Char"/> buffer which is based on the remaining content of this
byte buffer.
<para/>
The new buffer's position is zero, its limit and capacity is the number
of remaining bytes divided by two, and its mark is not set. The new
buffer's read-only property and byte order are the same as this buffer's.
<para/>
The new buffer shares its content with this buffer, which means either
buffer's change of content will be visible to the other. The two buffer's
position, limit and mark are independent.
</summary>
<returns>A <see cref="T:System.Char"/> buffer which is based on the content of this byte buffer.</returns>
</member>
<member name="M:J2N.IO.ByteBuffer.AsDoubleBuffer">
<summary>
Returns a <see cref="T:System.Double"/> buffer which is based on the remaining content of this
byte buffer.
<para/>
The new buffer's position is zero, its limit and capacity is the number
of remaining bytes divided by eight, and its mark is not set. The new
buffer's read-only property and byte order are the same as this buffer's.
<para/>
The new buffer shares its content with this buffer, which means either
buffer's change of content will be visible to the other. The two buffer's
position, limit and mark are independent.
</summary>
<returns>A <see cref="T:System.Double"/> buffer which is based on the content of this byte buffer.</returns>
</member>
<member name="M:J2N.IO.ByteBuffer.AsSingleBuffer">
<summary>
Returns a <see cref="T:System.Single"/> buffer which is based on the remaining content of this
byte buffer.
<para/>
The new buffer's position is zero, its limit and capacity is the number
of remaining bytes divided by four, and its mark is not set. The new
buffer's read-only property and byte order are the same as this buffer's.
<para/>
The new buffer shares its content with this buffer, which means either
buffer's change of content will be visible to the other. The two buffer's
position, limit and mark are independent.
</summary>
<returns>A <see cref="T:System.Single"/> buffer which is based on the content of this byte buffer.</returns>
</member>
<member name="M:J2N.IO.ByteBuffer.AsInt32Buffer">
<summary>
Returns a <see cref="T:System.Int32"/> buffer which is based on the remaining content of this byte
buffer.
<para/>
The new buffer's position is zero, its limit and capacity is the number
of remaining bytes divided by four, and its mark is not set. The new
buffer's read-only property and byte order are the same as this buffer's.
<para/>
The new buffer shares its content with this buffer, which means either
buffer's change of content will be visible to the other. The two buffer's
position, limit and mark are independent.
</summary>
<returns>A <see cref="T:System.Int32"/> buffer which is based on the content of this byte buffer.</returns>
</member>
<member name="M:J2N.IO.ByteBuffer.AsInt64Buffer">
<summary>
Returns a <see cref="T:System.Int64"/> buffer which is based on the remaining content of this
byte buffer.
<para/>
The new buffer's position is zero, its limit and capacity is the number
of remaining bytes divided by eight, and its mark is not set. The new
buffer's read-only property and byte order are the same as this buffer's.
<para/>
The new buffer shares its content with this buffer, which means either
buffer's change of content will be visible to the other. The two buffer's
position, limit and mark are independent.
</summary>
<returns>A <see cref="T:System.Int64"/> buffer which is based on the content of this byte buffer.</returns>
</member>
<member name="M:J2N.IO.ByteBuffer.AsReadOnlyBuffer">
<summary>
Returns a read-only buffer that shares its content with this buffer.
<para/>
The returned buffer is guaranteed to be a new instance, even if this
buffer is read-only itself. The new buffer's position, limit, capacity
and mark are the same as this buffer.
<para/>
The new buffer shares its content with this buffer, which means this
buffer's change of content will be visible to the new buffer. The two
buffer's position, limit and mark are independent.
</summary>
<returns>A read-only version of this buffer.</returns>
</member>
<member name="M:J2N.IO.ByteBuffer.AsInt16Buffer">
<summary>
Returns a <see cref="T:System.Int16"/> buffer which is based on the remaining content of this
byte buffer.
</summary>
<remarks>
The new buffer's position is zero, its limit and capacity is the number
of remaining bytes divided by two, and its mark is not set. The new
buffer's read-only property and byte order are the same as this buffer's.
<para/>
The new buffer shares its content with this buffer, which means either
buffer's change of content will be visible to the other. The two buffer's
position, limit and mark are independent.
</remarks>
<returns>A <see cref="T:System.Int16"/> buffer which is based on the content of this byte buffer.</returns>
</member>
<member name="M:J2N.IO.ByteBuffer.Compact">
<summary>
Compacts this byte buffer.
<para/>
The remaining bytes will be moved to the head of the
buffer, starting from position zero. Then the position is set to
<see cref="P:J2N.IO.Buffer.Remaining"/>; the limit is set to capacity; the mark is
cleared.
</summary>
<returns>This buffer.</returns>
<exception cref="T:J2N.IO.ReadOnlyBufferException">If no changes may be made to the contents of this buffer.</exception>
</member>
<member name="M:J2N.IO.ByteBuffer.CompareTo(J2N.IO.ByteBuffer)">
<summary>
Compares the remaining bytes of this buffer to another byte buffer's
remaining bytes.
</summary>
<param name="other">another byte buffer.</param>
<returns>
a negative value if this is less than <c>other</c>; 0 if this
equals to <c>other</c>; a positive value if this is greater
than <c>other</c>.
</returns>
</member>
<member name="M:J2N.IO.ByteBuffer.Duplicate">
<summary>
Returns a duplicated buffer that shares its content with this buffer.
<para/>
The duplicated buffer's position, limit, capacity and mark are the same
as this buffer's. The duplicated buffer's read-only property and byte
order are the same as this buffer's too.
<para/>
The new buffer shares its content with this buffer, which means either
buffer's change of content will be visible to the other. The two buffer's
position, limit and mark are independent.
</summary>
<returns>a duplicated buffer that shares its content with this buffer.</returns>
</member>
<member name="M:J2N.IO.ByteBuffer.Equals(System.Object)">
<summary>
Checks whether this byte buffer is equal to another object.
<para/>
If <paramref name="other"/> is not a byte buffer then <c>false</c> is returned. Two
byte buffers are equal if and only if their remaining bytes are exactly
the same. Position, limit, capacity and mark are not considered.
</summary>
<param name="other">The object to compare with this byte buffer.</param>
<returns>
<c>true</c> if this byte buffer is equal to <paramref name="other"/>,
<c>false</c> otherwise.
</returns>
</member>
<member name="M:J2N.IO.ByteBuffer.Get">
<summary>
Returns the byte at the current position and increases the position by 1.
</summary>
<returns>The byte at the current position.</returns>
<exception cref="T:J2N.IO.BufferUnderflowException">If the position is equal or greater than limit.</exception>
</member>
<member name="M:J2N.IO.ByteBuffer.Get(System.Byte[])">
<summary>
Reads bytes from the current position into the specified byte array and
increases the position by the number of bytes read.
<para/>
Calling this method has the same effect as
<c>Get(destination, 0, destination.Length)</c>.
</summary>
<param name="destination">The destination byte array.</param>
<returns>This buffer.</returns>
<exception cref="T:J2N.IO.BufferUnderflowException">If <c>dest.Length</c> is greater than <see cref="P:J2N.IO.Buffer.Remaining"/>.</exception>
<exception cref="T:System.ArgumentNullException">If <paramref name="destination"/> is <c>null</c>.</exception>
</member>
<member name="M:J2N.IO.ByteBuffer.Get(System.Byte[],System.Int32,System.Int32)">
<summary>
Reads bytes from the current position into the specified byte array,
starting at the specified offset, and increases the position by the
number of bytes read.
</summary>
<param name="destination">The target byte array.</param>
<param name="offset">
The offset of the byte array, must not be negative and
not greater than <c>destination.Length</c>.</param>
<param name="length">
The number of bytes to read, must not be negative and not
greater than <c>destination.Length - offset</c>
</param>
<returns>This buffer.</returns>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="offset"/> plus <paramref name="length"/> indicates a position not within this instance.
<para/>
-or-
<para/>
<paramref name="offset"/> or <paramref name="length"/> is less than zero.
</exception>
<exception cref="T:J2N.IO.BufferUnderflowException">If <paramref name="length"/> is greater than <see cref="P:J2N.IO.Buffer.Remaining"/>.</exception>
<exception cref="T:System.ArgumentNullException">If <paramref name="destination"/> is <c>null</c>.</exception>
</member>
<member name="M:J2N.IO.ByteBuffer.Get(System.Int32)">
<summary>
Returns the byte at the specified index and does not change the position.
</summary>
<param name="index">The index, must not be negative and less than limit.</param>
<returns>The byte at the specified index.</returns>
<exception cref="T:System.ArgumentOutOfRangeException">If index is invalid.</exception>
</member>
<member name="M:J2N.IO.ByteBuffer.GetChar">
<summary>
Returns the <see cref="T:System.Char"/> at the current position and increases the position by 2.
<para/>
The 2 bytes starting at the current position are composed into a char
according to the current byte order and returned.
</summary>
<returns>The <see cref="T:System.Char"/> at the current position.</returns>
<exception cref="T:J2N.IO.BufferUnderflowException">If the position is greater than <c>limit - 2</c>.</exception>
</member>
<member name="M:J2N.IO.ByteBuffer.GetChar(System.Int32)">
<summary>
Returns the <see cref="T:System.Char"/> at the specified index.
<para/>
The 2 bytes starting from the specified index are composed into a char
according to the current byte order and returned. The position is not
changed.
</summary>
<param name="index">The index, must not be negative and equal or less than <c>limit - 2</c>.</param>
<returns>The <see cref="T:System.Char"/> at the specified index.</returns>
<exception cref="T:System.ArgumentOutOfRangeException">If <paramref name="index"/> is invalid.</exception>
</member>
<member name="M:J2N.IO.ByteBuffer.GetDouble">
<summary>
Returns the <see cref="T:System.Double"/> at the current position and increases the position by 8.
<para/>
The 8 bytes starting from the current position are composed into a <see cref="T:System.Double"/>
according to the current byte order and returned.
</summary>
<returns>The <see cref="T:System.Double"/> at the current position.</returns>
<exception cref="T:J2N.IO.BufferUnderflowException">If the position is greater than <c>limit - 8</c>.</exception>
</member>
<member name="M:J2N.IO.ByteBuffer.GetDouble(System.Int32)">
<summary>
Returns the <see cref="T:System.Double"/> at the specified index.
<para/>
The 8 bytes starting at the specified index are composed into a <see cref="T:System.Double"/>
according to the current byte order and returned. The position is not
changed.
</summary>
<param name="index">The index, must not be negative and equal or less than <c>limit - 8</c>.</param>
<returns>The <see cref="T:System.Double"/> at the specified index.</returns>
<exception cref="T:System.ArgumentOutOfRangeException">If <paramref name="index"/> is invalid.</exception>
</member>
<member name="M:J2N.IO.ByteBuffer.GetSingle">
<summary>
Returns the <see cref="T:System.Single"/> at the current position and increases the position by 4.
<para/>
The 4 bytes starting at the current position are composed into a <see cref="T:System.Single"/>
according to the current byte order and returned.
<para/>
NOTE: This was getFloat() in the JDK
</summary>
<returns>The <see cref="T:System.Single"/> at the current position.</returns>
<exception cref="T:J2N.IO.BufferUnderflowException">If the position is greater than <c>limit - 4</c>.</exception>
</member>
<member name="M:J2N.IO.ByteBuffer.GetSingle(System.Int32)">
<summary>
Returns the <see cref="T:System.Single"/> at the specified index.
<para/>
The 4 bytes starting at the specified index are composed into a <see cref="T:System.Single"/>
according to the current byte order and returned. The position is not
changed.
<para/>
NOTE: This was getFloat() in the JDK
</summary>
<param name="index">The index, must not be negative and equal or less than <c>limit - 4</c>.</param>
<returns>The <see cref="T:System.Single"/> at the specified index.</returns>
<exception cref="T:System.ArgumentOutOfRangeException">If <paramref name="index"/> is invalid.</exception>
</member>
<member name="M:J2N.IO.ByteBuffer.GetInt32">
<summary>
Returns the <see cref="T:System.Int32"/> at the current position and increases the position by 4.
<para/>
The 4 bytes starting at the current position are composed into a <see cref="T:System.Int32"/>
according to the current byte order and returned.
<para/>
NOTE: This was getInt() in the JDK
</summary>
<returns>The <see cref="T:System.Int32"/> at the current position.</returns>
<exception cref="T:J2N.IO.BufferUnderflowException">If the position is greater than <c>limit - 4</c>.</exception>
</member>
<member name="M:J2N.IO.ByteBuffer.GetInt32(System.Int32)">
<summary>
Returns the <see cref="T:System.Int32"/> at the specified index.
<para/>
The 4 bytes starting at the specified index are composed into a <see cref="T:System.Int32"/>
according to the current byte order and returned. The position is not
changed.
<para/>
NOTE: This was getInt() in the JDK
</summary>
<param name="index">The index, must not be negative and equal or less than <c>limit - 4</c>.</param>
<returns>The <see cref="T:System.Int32"/> at the specified index.</returns>
<exception cref="T:System.ArgumentOutOfRangeException">If <paramref name="index"/> is invalid.</exception>
</member>
<member name="M:J2N.IO.ByteBuffer.GetInt64">
<summary>
Returns the <see cref="T:System.Int64"/> at the current position and increases the position by 8.
<para/>
The 8 bytes starting at the current position are composed into a <see cref="T:System.Int64"/>
according to the current byte order and returned.
<para/>
NOTE: This was getLong() in the JDK
</summary>
<returns>The <see cref="T:System.Int64"/> at the current position.</returns>
<exception cref="T:J2N.IO.BufferUnderflowException">If the position is greater than <c>limit - 8</c>.</exception>
</member>
<member name="M:J2N.IO.ByteBuffer.GetInt64(System.Int32)">
<summary>
Returns the <see cref="T:System.Int64"/> at the specified index.
<para/>
The 8 bytes starting at the specified index are composed into a <see cref="T:System.Int64"/>
according to the current byte order and returned. The position is not
changed.
<para/>
NOTE: This was getLong() in the JDK
</summary>
<param name="index">The index, must not be negative and equal or less than <c>limit - 8</c>.</param>
<returns>The <see cref="T:System.Int64"/> at the specified index.</returns>
<exception cref="T:System.ArgumentOutOfRangeException">If <paramref name="index"/> is invalid.</exception>
</member>
<member name="M:J2N.IO.ByteBuffer.GetInt16">
<summary>
Returns the <see cref="T:System.Int16"/> at the current position and increases the position by 2.
<para/>
The 2 bytes starting at the current position are composed into a <see cref="T:System.Int16"/>
according to the current byte order and returned.
<para/>
NOTE: This was getShort() in the JDK
</summary>
<returns>The <see cref="T:System.Int16"/> at the current position.</returns>
<exception cref="T:J2N.IO.BufferUnderflowException">If the position is greater than <c>limit - 2</c>.</exception>
</member>
<member name="M:J2N.IO.ByteBuffer.GetInt16(System.Int32)">
<summary>
Returns the <see cref="T:System.Int16"/> at the specified index.
<para/>
The 2 bytes starting at the specified index are composed into a <see cref="T:System.Int16"/>
according to the current byte order and returned. The position is not
changed.
<para/>
NOTE: This was getShort() in the JDK
</summary>
<param name="index">The index, must not be negative and equal or less than <c>limit - 2</c>.</param>
<returns>The <see cref="T:System.Int16"/> at the specified index.</returns>
<exception cref="T:System.ArgumentOutOfRangeException">If <paramref name="index"/> is invalid.</exception>
</member>
<member name="P:J2N.IO.ByteBuffer.HasArray">
<summary>
Indicates whether this buffer is based on a byte array and provides
read/write access.
</summary>
</member>
<member name="M:J2N.IO.ByteBuffer.GetHashCode">
<summary>
Calculates this buffer's hash code from the remaining chars. The
position, limit, capacity and mark don't affect the hash code.
</summary>
<returns>The hash code calculated from the remaining bytes.</returns>
</member>
<member name="P:J2N.IO.ByteBuffer.Order">
<summary>
Returns the byte order used by this buffer when converting bytes from/to
other primitive types.
<para/>
The default byte order of byte buffer is always
<see cref="F:J2N.IO.ByteOrder.BigEndian"/>.
</summary>
</member>
<member name="M:J2N.IO.ByteBuffer.SetOrder(J2N.IO.ByteOrder)">
<summary>
Sets the byte order of this buffer.
</summary>
<param name="byteOrder">The byte order to set.</param>
<returns>This buffer.</returns>
</member>
<member name="P:J2N.IO.ByteBuffer.ProtectedArray">
<summary>
Child class implements this method to realize <see cref="P:J2N.IO.ByteBuffer.Array"/>.
</summary>
<seealso cref="P:J2N.IO.ByteBuffer.Array"/>
</member>
<member name="P:J2N.IO.ByteBuffer.ProtectedArrayOffset">
<summary>
Child class implements this method to realize <see cref="P:J2N.IO.ByteBuffer.ArrayOffset"/>.
</summary>
</member>
<member name="P:J2N.IO.ByteBuffer.ProtectedHasArray">
<summary>
Child class implements this method to realize <seealso cref="P:J2N.IO.ByteBuffer.HasArray"/>.
</summary>
</member>
<member name="M:J2N.IO.ByteBuffer.Put(System.Byte)">
<summary>
Writes the given byte to the current position and increases the position
by 1.
</summary>
<param name="b">The byte to write.</param>
<returns>This buffer.</returns>
<exception cref="T:J2N.IO.BufferOverflowException">If position is equal or greater than limit.</exception>
<exception cref="T:J2N.IO.ReadOnlyBufferException">If no changes may be made to the contents of this buffer.</exception>
</member>
<member name="M:J2N.IO.ByteBuffer.Put(System.Byte[])">
<summary>
Writes bytes in the given byte array to the current position and
increases the position by the number of bytes written.
<para/>
Calling this method has the same effect as
<c>Put(source, 0, source.Length)</c>.
</summary>
<param name="source">The source byte array.</param>
<returns>This buffer.</returns>
<exception cref="T:J2N.IO.BufferOverflowException">If <see cref="P:J2N.IO.Buffer.Remaining"/> is less than <c>src.Length</c>.</exception>
<exception cref="T:J2N.IO.ReadOnlyBufferException">If no changes may be made to the contents of this buffer.</exception>
<exception cref="T:System.ArgumentNullException">If <paramref name="source"/> is <c>null</c>.</exception>
</member>
<member name="M:J2N.IO.ByteBuffer.Put(System.Byte[],System.Int32,System.Int32)">
<summary>
Writes bytes in the given byte array, starting from the specified offset,
to the current position and increases the position by the number of bytes
written.
</summary>
<param name="source">The source byte array.</param>
<param name="offset">
the offset of byte array, must not be negative and not greater
than <c>source.Length</c>.
</param>
<param name="length">
the number of bytes to write, must not be negative and not
greater than <c>source.Length - offset</c>.
</param>
<returns>This buffer.</returns>
<exception cref="T:J2N.IO.BufferOverflowException">If <see cref="P:J2N.IO.Buffer.Remaining"/> is less than <paramref name="length"/>.</exception>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="offset"/> plus <paramref name="length"/> indicates a position not within this instance.
<para/>
-or-
<para/>
<paramref name="offset"/> or <paramref name="length"/> is less than zero.
</exception>
<exception cref="T:J2N.IO.ReadOnlyBufferException">If no changes may be made to the contents of this buffer.</exception>
<exception cref="T:System.ArgumentNullException">If <paramref name="source"/> is <c>null</c>.</exception>
</member>
<member name="M:J2N.IO.ByteBuffer.Put(J2N.IO.ByteBuffer)">
<summary>
Writes all the remaining bytes of the <paramref name="source"/> byte buffer to this
buffer's current position, and increases both buffers' position by the
number of bytes copied.
</summary>
<param name="source">The source byte buffer.</param>
<returns>This buffer.</returns>
<exception cref="T:J2N.IO.BufferOverflowException">If <c>source.Remaining</c> is greater than this buffer's <see cref="P:J2N.IO.Buffer.Remaining"/>.</exception>
<exception cref="T:System.ArgumentException">If <paramref name="source"/> is this buffer.</exception>
<exception cref="T:J2N.IO.ReadOnlyBufferException">If no changes may be made to the contents of this buffer.</exception>
<exception cref="T:System.ArgumentNullException">If <paramref name="source"/> is <c>null</c>.</exception>
</member>
<member name="M:J2N.IO.ByteBuffer.Put(System.Int32,System.Byte)">
<summary>
Write a <see cref="T:System.Byte"/> to the specified index of this buffer without changing the
position.
</summary>
<param name="index">The index, must not be negative and less than the limit.</param>
<param name="value">The <see cref="T:System.Byte"/> to write.</param>
<returns>This buffer.</returns>
<exception cref="T:System.ArgumentOutOfRangeException">If <paramref name="index"/> is invalid.</exception>
<exception cref="T:J2N.IO.ReadOnlyBufferException">If no changes may be made to the contents of this buffer.</exception>
</member>
<member name="M:J2N.IO.ByteBuffer.PutChar(System.Char)">
<summary>
Writes the given <see cref="T:System.Char"/> to the current position and increases the position
by 2.
<para/>
The <see cref="T:System.Char"/> is converted to bytes using the current byte order.
</summary>
<param name="value">The <see cref="T:System.Char"/> to write.</param>
<returns>This buffer.</returns>
<exception cref="T:J2N.IO.BufferOverflowException">If position is greater than <c>limit - 2</c>.</exception>
<exception cref="T:J2N.IO.ReadOnlyBufferException">If no changes may be made to the contents of this buffer.</exception>
</member>
<member name="M:J2N.IO.ByteBuffer.PutChar(System.Int32,System.Char)">
<summary>
Writes the given <see cref="T:System.Char"/> to the specified index of this buffer.
<para/>
The <see cref="T:System.Char"/> is converted to bytes using the current byte order. The position
is not changed.
</summary>
<param name="index">The index, must not be negative and equal or less than <c>limit - 2</c>.</param>
<param name="value">The <see cref="T:System.Char"/> to write.</param>
<returns>This buffer.</returns>
<exception cref="T:System.ArgumentOutOfRangeException">If <paramref name="index"/> is invalid.</exception>
<exception cref="T:J2N.IO.ReadOnlyBufferException">If no changes may be made to the contents of this buffer.</exception>
</member>
<member name="M:J2N.IO.ByteBuffer.PutDouble(System.Double)">
<summary>
Writes the given <see cref="T:System.Double"/> to the current position and increases the position
by 8.
<para/>
The <see cref="T:System.Double"/> is converted to bytes using the current byte order.
</summary>
<param name="value">The <see cref="T:System.Double"/> to write.</param>
<returns>This buffer.</returns>
<exception cref="T:J2N.IO.BufferOverflowException">If position is greater than <c>limit - 8</c>.</exception>
<exception cref="T:J2N.IO.ReadOnlyBufferException">If no changes may be made to the contents of this buffer.</exception>
</member>
<member name="M:J2N.IO.ByteBuffer.PutDouble(System.Int32,System.Double)">
<summary>
Writes the given <see cref="T:System.Double"/> to the specified index of this buffer.
<para/>
The <see cref="T:System.Double"/> is converted to bytes using the current byte order. The
position is not changed.
</summary>
<param name="index">The index, must not be negative and equal or less than <c>limit - 8</c>.</param>
<param name="value">The <see cref="T:System.Double"/> to write.</param>
<returns></returns>
<exception cref="T:System.ArgumentOutOfRangeException">If <paramref name="index"/> is invalid.</exception>
<exception cref="T:J2N.IO.ReadOnlyBufferException">If no changes may be made to the contents of this buffer.</exception>
</member>
<member name="M:J2N.IO.ByteBuffer.PutSingle(System.Single)">
<summary>
Writes the given <see cref="T:System.Single"/> to the current position and increases the position
by 4.
<para/>
The <see cref="T:System.Single"/> is converted to bytes using the current byte order.
<para/>
NOTE: This was putSingle() in the JDK
</summary>
<param name="value">The <see cref="T:System.Single"/> to write.</param>
<returns>This buffer.</returns>
<exception cref="T:J2N.IO.BufferOverflowException">If position is greater than <c>limit - 4</c>.</exception>
<exception cref="T:J2N.IO.ReadOnlyBufferException">If no changes may be made to the contents of this buffer.</exception>
</member>
<member name="M:J2N.IO.ByteBuffer.PutSingle(System.Int32,System.Single)">
<summary>
Writes the given <see cref="T:System.Single"/> to the specified index of this buffer.
<para/>
The <see cref="T:System.Single"/> is converted to bytes using the current byte order. The
position is not changed.
<para/>
NOTE: This was putSingle() in the JDK
</summary>
<param name="index">The index, must not be negative and equal or less than <c>limit - 4</c>.</param>
<param name="value">The <see cref="T:System.Single"/> to write.</param>
<returns></returns>
<exception cref="T:System.ArgumentOutOfRangeException">If <paramref name="index"/> is invalid.</exception>
<exception cref="T:J2N.IO.ReadOnlyBufferException">If no changes may be made to the contents of this buffer.</exception>
</member>
<member name="M:J2N.IO.ByteBuffer.PutInt32(System.Int32)">
<summary>
Writes the given <see cref="T:System.Int32"/> to the current position and increases the position by
4.
<para/>
The <see cref="T:System.Int32"/> is converted to bytes using the current byte order.
<para/>
NOTE: This was putInt() in the JDK
</summary>
<param name="value">The <see cref="T:System.Int32"/> to write.</param>
<returns>This buffer.</returns>
<exception cref="T:J2N.IO.BufferOverflowException">If position is greater than <c>limit - 4</c>.</exception>
<exception cref="T:J2N.IO.ReadOnlyBufferException">If no changes may be made to the contents of this buffer.</exception>
</member>
<member name="M:J2N.IO.ByteBuffer.PutInt32(System.Int32,System.Int32)">
<summary>
Writes the given <see cref="T:System.Int32"/> to the specified index of this buffer.
<para/>
The <see cref="T:System.Int32"/> is converted to bytes using the current byte order. The position
is not changed.
<para/>
NOTE: This was putInt() in the JDK
</summary>
<param name="index">The index, must not be negative and equal or less than <c>limit - 4</c>.</param>
<param name="value">The <see cref="T:System.Int32"/> to write.</param>
<returns>This buffer.</returns>
<exception cref="T:System.ArgumentOutOfRangeException">If <paramref name="index"/> is invalid.</exception>
<exception cref="T:J2N.IO.ReadOnlyBufferException">If no changes may be made to the contents of this buffer.</exception>
</member>
<member name="M:J2N.IO.ByteBuffer.PutInt64(System.Int64)">
<summary>
Writes the given <see cref="T:System.Int64"/> to the current position and increases the position
by 8.
<para/>
The <see cref="T:System.Int64"/> is converted to bytes using the current byte order.
<para/>
NOTE: This was putLong() in the JDK
</summary>
<param name="value">The <see cref="T:System.Int64"/> to write.</param>
<returns>This buffer.</returns>
<exception cref="T:J2N.IO.BufferOverflowException">If position is greater than <c>limit - 8</c>.</exception>
<exception cref="T:J2N.IO.ReadOnlyBufferException">If no changes may be made to the contents of this buffer.</exception>
</member>
<member name="M:J2N.IO.ByteBuffer.PutInt64(System.Int32,System.Int64)">
<summary>
Writes the given <see cref="T:System.Int64"/> to the specified index of this buffer.
<para/>
The <see cref="T:System.Int64"/> is converted to bytes using the current byte order. The position
is not changed.
<para/>
NOTE: This was putLong() in the JDK
</summary>
<param name="index">The index, must not be negative and equal or less than <c>limit - 8</c>.</param>
<param name="value">The <see cref="T:System.Int64"/> to write.</param>
<returns>This buffer.</returns>
<exception cref="T:System.ArgumentOutOfRangeException">If <paramref name="index"/> is invalid.</exception>
<exception cref="T:J2N.IO.ReadOnlyBufferException">If no changes may be made to the contents of this buffer.</exception>
</member>
<member name="M:J2N.IO.ByteBuffer.PutInt16(System.Int16)">
<summary>
Writes the given <see cref="T:System.Int16"/> to the current position and increases the position
by 2.
<para/>
The <see cref="T:System.Int16"/> is converted to bytes using the current byte order.
<para/>
NOTE: This was putShort() in the JDK
</summary>
<param name="value">The <see cref="T:System.Int16"/> to write.</param>
<returns>This buffer.</returns>
<exception cref="T:J2N.IO.BufferOverflowException">If position is greater than <c>limit - 2</c>.</exception>
<exception cref="T:J2N.IO.ReadOnlyBufferException">If no changes may be made to the contents of this buffer.</exception>
</member>
<member name="M:J2N.IO.ByteBuffer.PutInt16(System.Int32,System.Int16)">
<summary>
Writes the given <see cref="T:System.Int16"/> to the specified index of this buffer.
<para/>
The <see cref="T:System.Int16"/> is converted to bytes using the current byte order. The
position is not changed.
<para/>
NOTE: This was putShort() in the JDK
</summary>
<param name="index">The index, must not be negative and equal or less than <c>limit - 2</c>.</param>
<param name="value">The <see cref="T:System.Int16"/> to write.</param>
<returns>This buffer.</returns>
<exception cref="T:System.ArgumentOutOfRangeException">If <paramref name="index"/> is invalid.</exception>
<exception cref="T:J2N.IO.ReadOnlyBufferException">If no changes may be made to the contents of this buffer.</exception>
</member>
<member name="M:J2N.IO.ByteBuffer.Slice">
<summary>
Returns a sliced buffer that shares its content with this buffer.
<para/>
The sliced buffer's capacity will be this buffer's
<see cref="P:J2N.IO.Buffer.Remaining"/>, and it's zero position will correspond to
this buffer's current position. The new buffer's position will be 0,
limit will be its capacity, and its mark is cleared. The new buffer's
read-only property and byte order are the same as this buffer's.
<para/>
The new buffer shares its content with this buffer, which means either
buffer's change of content will be visible to the other. The two buffer's
position, limit and mark are independent.
</summary>
<returns>A sliced buffer that shares its content with this buffer.</returns>
</member>
<member name="M:J2N.IO.ByteBuffer.ToString">
<summary>
Returns a string representing the state of this byte buffer.
</summary>
<returns>A string representing the state of this byte buffer.</returns>
</member>
<member name="T:J2N.IO.ByteOrder">
<summary>
Defines byte order constants.
</summary>
</member>
<member name="F:J2N.IO.ByteOrder.BigEndian">
<summary>
This constant represents big endian.
</summary>
</member>
<member name="F:J2N.IO.ByteOrder.LittleEndian">
<summary>
This constant represents little endian.
</summary>
</member>
<member name="P:J2N.IO.ByteOrder.NativeOrder">
<summary>
Returns the current platform byte order.
</summary>
</member>
<member name="M:J2N.IO.ByteOrder.ToString">
<summary>
Returns a string that describes this object.
</summary>
<returns>
"BigEndian" for <see cref="F:J2N.IO.ByteOrder.BigEndian"/> objects,
"LittleEndian" for <see cref="F:J2N.IO.ByteOrder.LittleEndian"/> objects.
</returns>
</member>
<member name="T:J2N.IO.CharArrayBuffer">
<summary>
<see cref="T:J2N.IO.CharArrayBuffer"/>, <see cref="T:J2N.IO.ReadWriteCharArrayBuffer"/> and <see cref="T:J2N.IO.ReadOnlyCharArrayBuffer"/> compose
the implementation of array based char buffers.
<para/>
<see cref="T:J2N.IO.CharArrayBuffer"/> implements all the shared readonly methods and is extended by
the other two classes.
<para/>
All methods are marked sealed for runtime performance.
</summary>
</member>
<member name="T:J2N.IO.CharBuffer">
<summary>
A buffer of chars.
</summary>
<remarks>
A char buffer can be created in either one of the following ways:
<list type="bullet">
<item><description><see cref="M:J2N.IO.CharBuffer.Allocate(System.Int32)"/> a new char array and create a buffer based on it;</description></item>
<item><description><see cref="M:J2N.IO.CharBuffer.Wrap(System.Char[])"/> an existing <see cref="T:char[]"/> to create a new buffer;</description></item>
<item><description><see cref="M:J2N.IO.CharBuffer.Wrap(System.String)"/> an existing <see cref="T:System.String"/> to create a new buffer;</description></item>
<item><description><see cref="M:J2N.IO.CharBuffer.Wrap(System.Text.StringBuilder)"/> an existing <see cref="T:System.Text.StringBuilder"/> to create a new buffer;</description></item>
<item><description><see cref="M:J2N.IO.CharBuffer.Wrap(J2N.Text.ICharSequence)"/> an existing char sequence to create a new buffer;</description></item>
<item><description>Use <see cref="M:J2N.IO.ByteBuffer.AsCharBuffer"/> to create a char buffer based on a byte buffer.</description></item>
</list>
</remarks>
</member>
<member name="M:J2N.IO.CharBuffer.Allocate(System.Int32)">
<summary>
Creates a char buffer based on a newly allocated char array.
</summary>
<param name="capacity">The capacity of the new buffer.</param>
<returns>The created char buffer.</returns>
<exception cref="T:System.ArgumentOutOfRangeException">If <paramref name="capacity"/> is less than 0.</exception>
</member>
<member name="M:J2N.IO.CharBuffer.Wrap(System.Char[])">
<summary>
Creates a new char buffer by wrapping the given char array.
<para/>
Calling this method has the same effect as
<c>Wrap(array, 0, array.Length)</c>.
</summary>
<param name="array">The char array which the new buffer will be based on.</param>
<returns>The created char buffer.</returns>
<exception cref="T:System.ArgumentNullException">If <paramref name="array"/> is <c>null</c>.</exception>
</member>
<member name="M:J2N.IO.CharBuffer.Wrap(System.Char[],System.Int32,System.Int32)">
<summary>
Creates a new char buffer by wrapping the given char array.
<para/>
The new buffer's position will be <paramref name="startIndex"/>, limit will be
<c>start + length</c>, capacity will be the length of the array.
</summary>
<param name="array">The char array which the new buffer will be based on.</param>
<param name="startIndex">The start index, must not be negative and not greater than
<c>array.Length</c>.</param>
<param name="length">The length, must not be negative and not greater than
<c>array.Length - <paramref name="startIndex"/></c>.</param>
<returns>The created char buffer.</returns>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="startIndex"/> plus <paramref name="length"/> indicates a position not within this instance.
<para/>
-or-
<para/>
<paramref name="startIndex"/> or <paramref name="length"/> is less than zero.
</exception>
<exception cref="T:System.ArgumentNullException">If <paramref name="array"/> is <c>null</c>.</exception>
</member>
<member name="M:J2N.IO.CharBuffer.Wrap(System.String)">
<summary>
Creates a new char buffer by wrapping the given <see cref="T:System.String"/>.
<para/>
Calling this method has the same effect as
<c>Wrap(characterSequence, 0, characterSequence.Length)</c>.
</summary>
<param name="characterSequence">The <see cref="T:System.String"/> which the new buffer will be based on.</param>
<returns>The created char buffer.</returns>
<exception cref="T:System.ArgumentNullException">If <paramref name="characterSequence"/> is <c>null</c>.</exception>
</member>
<member name="M:J2N.IO.CharBuffer.Wrap(System.String,System.Int32,System.Int32)">
<summary>
Creates a new char buffer by wrapping the given <see cref="T:System.String"/>, <paramref name="characterSequence"/>.
<para/>
The new buffer's position will be <paramref name="startIndex"/>, limit will be
<paramref name="length"/>, capacity will be the length of the <see cref="T:System.String"/>. The new
buffer is read-only.
<para/>
IMPORTANT: This method has .NET semantics, that is, the second parameter is a length,
not an exclusive end index as it would be in Java. To translate from Java to .NET,
callers must account for this by subtracting (end - start) for the <paramref name="length"/>.
</summary>
<param name="characterSequence">The <see cref="T:System.String"/> which the new buffer will be based on.</param>
<param name="startIndex">The start index, must not be negative and not greater than <c>characterSequence.Length</c>.</param>
<param name="length">The end index, must be no less than <paramref name="startIndex"/> and no
greater than <c>characterSequence.Length</c>.</param>
<returns>The created char buffer.</returns>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="startIndex"/> plus <paramref name="length"/> indicates a position not within this instance.
<para/>
-or-
<para/>
<paramref name="startIndex"/> or <paramref name="length"/> is less than zero.
</exception>
<exception cref="T:System.ArgumentNullException">If <paramref name="characterSequence"/> is <c>null</c>.</exception>
</member>
<member name="M:J2N.IO.CharBuffer.Wrap(System.Text.StringBuilder)">
<summary>
Creates a new char buffer by wrapping the given <see cref="T:System.Text.StringBuilder"/>.
<para/>
Calling this method has the same effect as
<c>Wrap(characterSequence, 0, characterSequence.Length)</c>.
</summary>
<param name="characterSequence">The <see cref="T:System.Text.StringBuilder"/> which the new buffer will be based on.</param>
<returns>The created char buffer.</returns>
<exception cref="T:System.ArgumentNullException">If <paramref name="characterSequence"/> is <c>null</c>.</exception>
</member>
<member name="M:J2N.IO.CharBuffer.Wrap(System.Text.StringBuilder,System.Int32,System.Int32)">
<summary>
Creates a new char buffer by wrapping the given <see cref="T:System.Text.StringBuilder"/>, <paramref name="characterSequence"/>.
<para/>
The new buffer's position will be <paramref name="startIndex"/>, limit will be
<paramref name="length"/>, capacity will be the length of the <see cref="T:System.Text.StringBuilder"/>. The new
buffer is read-only.
<para/>
IMPORTANT: This method has .NET semantics, that is, the second parameter is a length,
not an exclusive end index as it would be in Java. To translate from Java to .NET,
callers must account for this by subtracting (end - start) for the <paramref name="length"/>.
</summary>
<param name="characterSequence">The <see cref="T:System.Text.StringBuilder"/> which the new buffer will be based on.</param>
<param name="startIndex">The start index, must not be negative and not greater than <c>characterSequence.Length</c>.</param>
<param name="length">The end index, must be no less than <paramref name="startIndex"/> and no
greater than <c>characterSequence.Length</c>.</param>
<returns>The created char buffer.</returns>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="startIndex"/> plus <paramref name="length"/> indicates a position not within this instance.
<para/>
-or-
<para/>
<paramref name="startIndex"/> or <paramref name="length"/> is less than zero.
</exception>
<exception cref="T:System.ArgumentNullException">If <paramref name="characterSequence"/> is <c>null</c>.</exception>
</member>
<member name="M:J2N.IO.CharBuffer.Wrap(J2N.Text.ICharSequence)">
<summary>
Creates a new char buffer by wrapping the given char sequence.
<para/>
Calling this method has the same effect as
<c>Wrap(characterSequence, 0, characterSequence.Length)</c>.
</summary>
<param name="characterSequence">The char sequence which the new buffer will be based on.</param>
<returns>The created char buffer.</returns>
<exception cref="T:System.ArgumentNullException">If <paramref name="characterSequence"/> is <c>null</c>.</exception>
</member>
<member name="M:J2N.IO.CharBuffer.Wrap(J2N.Text.ICharSequence,System.Int32,System.Int32)">
<summary>
Creates a new char buffer by wrapping the given char sequence, <paramref name="characterSequence"/>.
<para/>
The new buffer's position will be <paramref name="startIndex"/>, limit will be
<paramref name="length"/>, capacity will be the length of the char sequence. The new
buffer is read-only.
<para/>
IMPORTANT: This method has .NET semantics, that is, the second parameter is a length,
not an exclusive end index as it would be in Java. To translate from Java to .NET,
callers must account for this by subtracting (end - start) for the <paramref name="length"/>.
</summary>
<param name="characterSequence">The char sequence which the new buffer will be based on.</param>
<param name="startIndex">The start index, must not be negative and not greater than <c>characterSequence.Length</c>.</param>
<param name="length">The end index, must be no less than <paramref name="startIndex"/> and no
greater than <c>characterSequence.Length</c>.</param>
<returns>The created char buffer.</returns>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="startIndex"/> plus <paramref name="length"/> indicates a position not within this instance.
<para/>
-or-
<para/>
<paramref name="startIndex"/> or <paramref name="length"/> is less than zero.
</exception>
<exception cref="T:System.ArgumentNullException">If <paramref name="characterSequence"/> is <c>null</c>.</exception>
</member>
<member name="M:J2N.IO.CharBuffer.#ctor(System.Int32)">
<summary>
Constructs a <see cref="T:J2N.IO.CharBuffer"/> with given capacity.
</summary>
<param name="capacity">The capacity of the buffer.</param>
</member>
<member name="P:J2N.IO.CharBuffer.Array">
<summary>
Gets the char array which this buffer is based on, if there is one.
</summary>
<exception cref="T:J2N.IO.ReadOnlyBufferException">If this buffer is based on an array, but it is read-only.</exception>
<exception cref="T:System.NotSupportedException">If this buffer is not based on an array.</exception>
</member>
<member name="P:J2N.IO.CharBuffer.ArrayOffset">
<summary>
Gets the offset of the char array which this buffer is based on, if
there is one.
<para/>
The offset is the index of the array corresponds to the zero position of
the buffer.
</summary>
<exception cref="T:J2N.IO.ReadOnlyBufferException">If this buffer is based on an array but it is read-only.</exception>
<exception cref="T:System.NotSupportedException">If this buffer is not based on an array.</exception>
</member>
<member name="M:J2N.IO.CharBuffer.AsReadOnlyBuffer">
<summary>
Returns a read-only buffer that shares its content with this buffer.
<para/>
The returned buffer is guaranteed to be a new instance, even if this
buffer is read-only itself. The new buffer's position, limit, capacity
and mark are the same as this buffer's.
<para/>
The new buffer shares its content with this buffer, which means this
buffer's change of content will be visible to the new buffer. The two
buffer's position, limit and mark are independent.
</summary>
<returns>A read-only version of this buffer.</returns>
</member>
<member name="P:J2N.IO.CharBuffer.Item(System.Int32)">
<summary>
Returns the character located at the specified <paramref name="index"/> in the buffer. The
<paramref name="index"/> value is referenced from the current buffer position.
</summary>
<param name="index">The index referenced from the current buffer position. It must
not be less than zero but less than the value obtained from a
call to <see cref="P:J2N.IO.Buffer.Remaining"/>.</param>
<returns>The character located at the specified <paramref name="index"/> (referenced from the
current position) in the buffer.</returns>
<exception cref="T:System.ArgumentOutOfRangeException">If the <paramref name="index"/> is invalid.</exception>
</member>
<member name="M:J2N.IO.CharBuffer.Compact">
<summary>
Compacts this char buffer.
<para/>
The remaining chars will be moved to the head of the buffer,
starting from position zero. Then the position is set to
<see cref="P:J2N.IO.Buffer.Remaining"/>; the limit is set to capacity; the mark is cleared.
</summary>
<returns>This buffer.</returns>
<exception cref="T:J2N.IO.ReadOnlyBufferException">If no changes may be made to the contents of this buffer.</exception>
</member>
<member name="M:J2N.IO.CharBuffer.CompareTo(J2N.IO.CharBuffer)">
<summary>
Compare the remaining chars of this buffer to another char
buffer's remaining chars.
</summary>
<param name="other">Another char buffer.</param>
<returns>A negative value if this is less than <paramref name="other"/>; 0 if
this equals to <paramref name="other"/>; a positive valie if this is
greater than <paramref name="other"/>.</returns>
</member>
<member name="M:J2N.IO.CharBuffer.Duplicate">
<summary>
Returns a duplicated buffer that shares its content with this buffer.
<para/>
The duplicated buffer's initial position, limit, capacity and mark are
the same as this buffer's. The duplicated buffer's read-only property and
byte order are the same as this buffer's, too.
<para/>
The new buffer shares its content with this buffer, which means either
buffer's change of content will be visible to the other. The two buffer's
position, limit and mark are independent.
</summary>
<returns>A duplicated buffer that shares its content with this buffer.</returns>
</member>
<member name="M:J2N.IO.CharBuffer.Equals(System.Object)">
<summary>
Checks whether this char buffer is equal to another object.
<para/>
If <paramref name="other"/> is not a char buffer then <c>false</c> is returned. Two
char buffers are equal if and only if their remaining chars are exactly
the same. Position, limit, capacity and mark are not considered.
</summary>
<param name="other">The object to compare with this char buffer.</param>
<returns><c>true</c> if this char buffer is equal to <paramref name="other"/>, <c>false</c> otherwise.</returns>
</member>
<member name="M:J2N.IO.CharBuffer.Get">
<summary>
Returns the char at the current position and increases the position by 1.
</summary>
<returns>The char at the current position.</returns>
<exception cref="T:J2N.IO.BufferUnderflowException">If the position is equal or greater than limit.</exception>
</member>
<member name="M:J2N.IO.CharBuffer.Get(System.Char[])">
<summary>
Reads chars from the current position into the specified char array and
increases the position by the number of chars read.
<para/>
Calling this method has the same effect as <c>Get(destination, 0, destination.Length)</c>.
</summary>
<param name="destination">The destination char array.</param>
<returns>This buffer.</returns>
<exception cref="T:J2N.IO.BufferUnderflowException">If <c>destination.Length</c> is greater than <see cref="P:J2N.IO.Buffer.Remaining"/>.</exception>
<exception cref="T:System.ArgumentNullException">If <paramref name="destination"/> is <c>null</c>.</exception>
</member>
<member name="M:J2N.IO.CharBuffer.Get(System.Char[],System.Int32,System.Int32)">
<summary>
Reads chars from the current position into the specified char array,
starting from the specified offset, and increases the position by the
number of chars read.
</summary>
<param name="destination">The target char array.</param>
<param name="offset">The offset of the char array, must not be negative and not
greater than <c>destination.Length</c>.</param>
<param name="length">The number of chars to read, must be no less than zero and no
greater than <c>destination.Length - offset</c>.</param>
<returns>This buffer.</returns>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="offset"/> plus <paramref name="length"/> indicates a position not within this instance.
<para/>
-or-
<para/>
<paramref name="offset"/> or <paramref name="length"/> is less than zero.
</exception>
<exception cref="T:J2N.IO.BufferUnderflowException">If <paramref name="length"/> is greater than <see cref="P:J2N.IO.Buffer.Remaining"/>.</exception>
<exception cref="T:System.ArgumentNullException">If <paramref name="destination"/> is <c>null</c>.</exception>
</member>
<member name="M:J2N.IO.CharBuffer.Get(System.Int32)">
<summary>
Returns a char at the specified <paramref name="index"/>; the position is not changed.
</summary>
<param name="index">The index, must not be negative and less than limit.</param>
<returns>A char at the specified <paramref name="index"/>.</returns>
<exception cref="T:System.ArgumentOutOfRangeException">If <paramref name="index"/> is invalid.</exception>
</member>
<member name="P:J2N.IO.CharBuffer.HasArray">
<summary>
Indicates whether this buffer is based on a char array and is read/write.
<para/>
Returns <c>true</c> if this buffer is based on a byte array and provides
read/write access, <c>false</c> otherwise.
</summary>
</member>
<member name="P:J2N.IO.CharBuffer.J2N#Text#ICharSequence#HasValue">
<summary>
Gets a value indicating whether the current <see cref="T:J2N.Text.ICharSequence"/>
has a valid value of its underlying type.
</summary>
</member>
<member name="M:J2N.IO.CharBuffer.GetHashCode">
<summary>
Calculates this buffer's hash code from the remaining chars. The
position, limit, capacity and mark don't affect the hash code.
</summary>
<returns>The hash code calculated from the remaining chars.</returns>
</member>
<member name="P:J2N.IO.CharBuffer.Length">
<summary>
Gets the number of remaining chars.
</summary>
</member>
<member name="P:J2N.IO.CharBuffer.Order">
<summary>
Gets the byte order used by this buffer when converting chars from/to
bytes.
<para/>
If this buffer is not based on a byte buffer, then this always returns
the platform's native byte order.
</summary>
</member>
<member name="P:J2N.IO.CharBuffer.ProtectedArray">
<summary>
Child class implements this method to realize <see cref="P:J2N.IO.CharBuffer.Array"/>.
</summary>
<seealso cref="P:J2N.IO.CharBuffer.Array"/>
</member>
<member name="P:J2N.IO.CharBuffer.ProtectedArrayOffset">
<summary>
Child class implements this method to realize <see cref="P:J2N.IO.CharBuffer.ArrayOffset"/>.
</summary>
<seealso cref="P:J2N.IO.CharBuffer.ArrayOffset"/>
</member>
<member name="P:J2N.IO.CharBuffer.ProtectedHasArray">
<summary>
Child class implements this method to realize <see cref="P:J2N.IO.CharBuffer.HasArray"/>.
</summary>
<seealso cref="P:J2N.IO.CharBuffer.HasArray"/>
</member>
<member name="M:J2N.IO.CharBuffer.Put(System.Char)">
<summary>
Writes the given char to the current position and increases the position
by 1.
</summary>
<param name="c">The char to write.</param>
<returns>This buffer.</returns>
<exception cref="T:J2N.IO.BufferOverflowException">If position is equal or greater than limit.</exception>
<exception cref="T:J2N.IO.ReadOnlyBufferException">If no changes may be made to the contents of this buffer.</exception>
</member>
<member name="M:J2N.IO.CharBuffer.Put(System.Char[])">
<summary>
Writes chars from the given char array <paramref name="source"/> to the current position and
increases the position by the number of chars written.
<para/>
Calling this method has the same effect as
<c>Put(source, 0, source.Length)</c>.
</summary>
<param name="source">The source char array.</param>
<returns>This buffer.</returns>
<exception cref="T:J2N.IO.BufferOverflowException">If <see cref="P:J2N.IO.Buffer.Remaining"/> is less than <c>source.Length</c>.</exception>
<exception cref="T:J2N.IO.ReadOnlyBufferException">If no changes may be made to the contents of this buffer.</exception>
<exception cref="T:System.ArgumentNullException"><paramref name="source"/> is <c>null</c>.</exception>
</member>
<member name="M:J2N.IO.CharBuffer.Put(System.Char[],System.Int32,System.Int32)">
<summary>
Writes chars from the given char array <paramref name="source"/>, starting from the specified <paramref name="offset"/>,
to the current position and increases the position by the number of chars
written.
</summary>
<param name="source">The source char array.</param>
<param name="offset">The offset of char array, must not be negative and not greater
than <c>source.Length</c>.</param>
<param name="length">The number of chars to write, must be no less than zero and no
greater than <c>source.Length - offset</c>.</param>
<returns>This buffer.</returns>
<exception cref="T:J2N.IO.BufferOverflowException">If <see cref="P:J2N.IO.Buffer.Remaining"/> is less than <paramref name="length"/>.</exception>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="offset"/> plus <paramref name="length"/> indicates a position not within this instance.
<para/>
-or-
<para/>
<paramref name="offset"/> or <paramref name="length"/> is less than zero.
</exception>
<exception cref="T:J2N.IO.ReadOnlyBufferException">If no changes may be made to the contents of this buffer.</exception>
<exception cref="T:System.ArgumentNullException"><paramref name="source"/> is <c>null</c>.</exception>
</member>
<member name="M:J2N.IO.CharBuffer.Put(J2N.IO.CharBuffer)">
<summary>
Writes all the remaining chars of the <paramref name="source"/> char buffer to this
buffer's current position, and increases both buffers' position by the
number of chars copied.
</summary>
<param name="source">The source char buffer.</param>
<returns>This buffer.</returns>
<exception cref="T:J2N.IO.BufferOverflowException">If <c>src.Remaining</c> is greater than this buffer's <see cref="P:J2N.IO.Buffer.Remaining"/>.</exception>
<exception cref="T:System.ArgumentException">If <paramref name="source"/> is this buffer.</exception>
<exception cref="T:J2N.IO.ReadOnlyBufferException">If no changes may be made to the contents of this buffer.</exception>
<exception cref="T:System.ArgumentNullException">If <paramref name="source"/> is <c>null</c>.</exception>
</member>
<member name="M:J2N.IO.CharBuffer.Put(System.Int32,System.Char)">
<summary>
Writes a char to the specified index of this buffer; the position is not
changed.
</summary>
<param name="index">The index, must be no less than zero and less than the limit.</param>
<param name="value">The char to write.</param>
<returns>This buffer.</returns>
<exception cref="T:System.ArgumentOutOfRangeException">If <paramref name="index"/> is invalid.</exception>
<exception cref="T:J2N.IO.ReadOnlyBufferException">If no changes may be made to the contents of this buffer.</exception>
</member>
<member name="M:J2N.IO.CharBuffer.Put(System.String)">
<summary>
Writes all chars of the given string to the current position of this
buffer, and increases the position by the length of string.
<para/>
Calling this method has the same effect as
<c>Put(source, 0, source.Length)</c>.
</summary>
<param name="source">The string to write.</param>
<returns>This buffer.</returns>
<exception cref="T:J2N.IO.BufferOverflowException">If <see cref="P:J2N.IO.Buffer.Remaining"/> is less than the length of string.</exception>
<exception cref="T:J2N.IO.ReadOnlyBufferException">If no changes may be made to the contents of this buffer.</exception>
<exception cref="T:System.ArgumentNullException"><paramref name="source"/> is <c>null</c>.</exception>
</member>
<member name="M:J2N.IO.CharBuffer.Put(System.String,System.Int32,System.Int32)">
<summary>
Writes chars of the given string to the current position of this buffer,
and increases the position by the number of chars written.
<para/>
IMPORTANT: This method has .NET semantics, that is, the third parameter is a length,
not an exclusive end index as it would be in Java. To translate from Java to .NET,
callers must account for this by subtracting (end - start) for the <paramref name="length"/>.
</summary>
<param name="source">The string to write.</param>
<param name="startIndex">The first char to write, must not be negative and not greater
than <c>str.Length</c>.</param>
<param name="length">The last char to write (excluding), must be less than
<paramref name="startIndex"/> and not greater than <c>source.Length</c>.</param>
<returns>This buffer.</returns>
<exception cref="T:J2N.IO.BufferOverflowException">If <see cref="P:J2N.IO.Buffer.Remaining"/> is less than <c>end - start</c>.</exception>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="startIndex"/> plus <paramref name="length"/> indicates a position not within this instance.
<para/>
-or-
<para/>
<paramref name="startIndex"/> or <paramref name="length"/> is less than zero.
</exception>
<exception cref="T:J2N.IO.ReadOnlyBufferException">If no changes may be made to the contents of this buffer.</exception>
<exception cref="T:System.ArgumentNullException"><paramref name="source"/> is <c>null</c>.</exception>
</member>
<member name="M:J2N.IO.CharBuffer.Slice">
<summary>
Returns a sliced buffer that shares its content with this buffer.
<para/>
The sliced buffer's capacity will be this buffer's <see cref="P:J2N.IO.Buffer.Remaining"/>,
and its zero position will correspond to this buffer's current position.
The new buffer's position will be 0, limit will be its capacity, and its
mark is cleared. The new buffer's read-only property and byte order are
same as this buffer.
<para/>
The new buffer shares its content with this buffer, which means either
buffer's change of content will be visible to the other. The two buffer's
position, limit and mark are independent.
</summary>
<returns>A sliced buffer that shares its content with this buffer.</returns>
</member>
<member name="M:J2N.IO.CharBuffer.Subsequence(System.Int32,System.Int32)">
<summary>
Returns a new char buffer representing a sub-sequence of this buffer's
current remaining content.
<para/>
The new buffer's position will be <c>Position + <paramref name="startIndex"/></c>, limit will
be <c>Position + <paramref name="startIndex"/> + <paramref name="length"/></c>, capacity will be the same as this buffer.
The new buffer's read-only property and byte order are the same as this
buffer.
<para/>
The new buffer shares its content with this buffer, which means either
buffer's change of content will be visible to the other. The two buffer's
position, limit and mark are independent.
<para/>
IMPORTANT: This method has .NET semantics, that is, the second parameter is a length,
not an exclusive end index as it would be in Java. To translate from Java to .NET,
callers must account for this by subtracting (end - start) for the <paramref name="length"/>.
</summary>
<param name="startIndex">
The start index of the sub-sequence, referenced from the
current buffer position. Must not be less than zero and not
greater than the value obtained from a call to <see cref="P:J2N.IO.Buffer.Remaining"/>.
</param>
<param name="length">
The length of the sub-sequence including <paramref name="startIndex"/>.
Must not be less than zero and <paramref name="startIndex"/> + <paramref name="length"/>
must not be greater than the value obtained from a call to
<see cref="P:J2N.IO.Buffer.Remaining"/>.
</param>
<returns>A new char buffer represents a sub-sequence of this buffer's
current remaining content.</returns>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="startIndex"/> plus <paramref name="length"/> indicates a position not within this instance.
<para/>
-or-
<para/>
<paramref name="startIndex"/> or <paramref name="length"/> is less than zero.
</exception>
</member>
<member name="M:J2N.IO.CharBuffer.ToString">
<summary>
Returns a string representing the current remaining chars of this buffer.
</summary>
<returns>A string representing the current remaining chars of this buffer.</returns>
</member>
<member name="M:J2N.IO.CharBuffer.Append(System.Char)">
<summary>
Writes the given char <paramref name="value"/> to the current position and increases the position
by 1.
</summary>
<param name="value">The char to write.</param>
<returns>This buffer.</returns>
<exception cref="T:J2N.IO.BufferOverflowException">If position is equal or greater than limit.</exception>
<exception cref="T:J2N.IO.ReadOnlyBufferException">If no changes may be made to the contents of this buffer.</exception>
</member>
<member name="M:J2N.IO.CharBuffer.Append(System.Char[])">
<summary>
Writes all chars of the given character sequence <paramref name="value"/> to the
current position of this buffer, and increases the position by the length
of the <paramref name="value"/>.
<para/>
Calling this method has the same effect as <c>Append(value)</c>.
If the <see cref="T:char[]"/> is <c>null</c> the string "null" will be
written to the buffer.
</summary>
<param name="value">The <see cref="T:char[]"/> to write.</param>
<returns>This buffer.</returns>
<exception cref="T:J2N.IO.BufferOverflowException">If <see cref="P:J2N.IO.Buffer.Remaining"/> is less than the length of <paramref name="value"/>.</exception>
<exception cref="T:J2N.IO.ReadOnlyBufferException">If no changes may be made to the contents of this buffer.</exception>
</member>
<member name="M:J2N.IO.CharBuffer.Append(System.Char[],System.Int32,System.Int32)">
<summary>
Writes chars of the given <see cref="T:char[]"/> to the current position of
this buffer, and increases the position by the number of chars written.
<para/>
IMPORTANT: This method has .NET semantics, that is, the third parameter is a length,
not an exclusive end index as it would be in Java. To translate from Java to .NET,
callers must account for this by subtracting (end - start) for the <paramref name="count"/>.
</summary>
<param name="value">The <see cref="T:char[]"/> to write.</param>
<param name="startIndex">The first char to write, must not be negative and not greater
than <c>csq.Length</c>.</param>
<param name="count">The last char to write (excluding), must be less than
<paramref name="startIndex"/> and not greater than <c>value.Length</c>.</param>
<returns>This buffer.</returns>
<exception cref="T:J2N.IO.BufferOverflowException">If <see cref="P:J2N.IO.Buffer.Remaining"/> is less than <paramref name="count"/>.</exception>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="startIndex"/> plus <paramref name="count"/> indicates a position not within this instance.
<para/>
-or-
<para/>
<paramref name="startIndex"/> or <paramref name="count"/> is less than zero.
</exception>
<exception cref="T:J2N.IO.ReadOnlyBufferException">If no changes may be made to the contents of this buffer.</exception>
</member>
<member name="M:J2N.IO.CharBuffer.Append(System.Text.StringBuilder)">
<summary>
Writes all chars of the given character sequence <paramref name="value"/> to the
current position of this buffer, and increases the position by the length
of the <paramref name="value"/>.
<para/>
Calling this method has the same effect as <c>Append(value.ToString())</c>.
If the <see cref="T:System.Text.StringBuilder"/> is <c>null</c> the string "null" will be
written to the buffer.
</summary>
<param name="value">The <see cref="T:System.Text.StringBuilder"/> to write.</param>
<returns>This buffer.</returns>
<exception cref="T:J2N.IO.BufferOverflowException">If <see cref="P:J2N.IO.Buffer.Remaining"/> is less than the length of <paramref name="value"/>.</exception>
<exception cref="T:J2N.IO.ReadOnlyBufferException">If no changes may be made to the contents of this buffer.</exception>
</member>
<member name="M:J2N.IO.CharBuffer.Append(System.Text.StringBuilder,System.Int32,System.Int32)">
<summary>
Writes chars of the given <see cref="T:System.Text.StringBuilder"/> to the current position of
this buffer, and increases the position by the number of chars written.
<para/>
IMPORTANT: This method has .NET semantics, that is, the third parameter is a length,
not an exclusive end index as it would be in Java. To translate from Java to .NET,
callers must account for this by subtracting (end - start) for the <paramref name="count"/>.
</summary>
<param name="value">The <see cref="T:System.Text.StringBuilder"/> to write.</param>
<param name="startIndex">The first char to write, must not be negative and not greater
than <c>csq.Length</c>.</param>
<param name="count">The last char to write (excluding), must be less than
<paramref name="startIndex"/> and not greater than <c>value.Length</c>.</param>
<returns>This buffer.</returns>
<exception cref="T:J2N.IO.BufferOverflowException">If <see cref="P:J2N.IO.Buffer.Remaining"/> is less than <paramref name="count"/>.</exception>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="startIndex"/> plus <paramref name="count"/> indicates a position not within this instance.
<para/>
-or-
<para/>
<paramref name="startIndex"/> or <paramref name="count"/> is less than zero.
</exception>
<exception cref="T:J2N.IO.ReadOnlyBufferException">If no changes may be made to the contents of this buffer.</exception>
</member>
<member name="M:J2N.IO.CharBuffer.Append(System.String)">
<summary>
Writes all chars of the given character sequence <paramref name="value"/> to the
current position of this buffer, and increases the position by the length
of the <paramref name="value"/>.
<para/>
Calling this method has the same effect as <c>Append(value)</c>.
If the <see cref="T:System.String"/> is <c>null</c> the string "null" will be
written to the buffer.
</summary>
<param name="value">The <see cref="T:System.String"/> to write.</param>
<returns>This buffer.</returns>
<exception cref="T:J2N.IO.BufferOverflowException">If <see cref="P:J2N.IO.Buffer.Remaining"/> is less than the length of <paramref name="value"/>.</exception>
<exception cref="T:J2N.IO.ReadOnlyBufferException">If no changes may be made to the contents of this buffer.</exception>
</member>
<member name="M:J2N.IO.CharBuffer.Append(System.String,System.Int32,System.Int32)">
<summary>
Writes chars of the given <see cref="T:System.String"/> to the current position of
this buffer, and increases the position by the number of chars written.
<para/>
IMPORTANT: This method has .NET semantics, that is, the third parameter is a length,
not an exclusive end index as it would be in Java. To translate from Java to .NET,
callers must account for this by subtracting (end - start) for the <paramref name="count"/>.
</summary>
<param name="value">The <see cref="T:System.String"/> to write.</param>
<param name="startIndex">The first char to write, must not be negative and not greater
than <c>csq.Length</c>.</param>
<param name="count">The last char to write (excluding), must be less than
<paramref name="startIndex"/> and not greater than <c>value.Length</c>.</param>
<returns>This buffer.</returns>
<exception cref="T:J2N.IO.BufferOverflowException">If <see cref="P:J2N.IO.Buffer.Remaining"/> is less than <paramref name="count"/>.</exception>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="startIndex"/> plus <paramref name="count"/> indicates a position not within this instance.
<para/>
-or-
<para/>
<paramref name="startIndex"/> or <paramref name="count"/> is less than zero.
</exception>
<exception cref="T:J2N.IO.ReadOnlyBufferException">If no changes may be made to the contents of this buffer.</exception>
</member>
<member name="M:J2N.IO.CharBuffer.Append(J2N.Text.ICharSequence)">
<summary>
Writes all chars of the given character sequence <paramref name="value"/> to the
current position of this buffer, and increases the position by the length
of the <paramref name="value"/>.
<para/>
Calling this method has the same effect as <c>Append(value.ToString())</c>.
If the <see cref="T:J2N.Text.ICharSequence"/> is <c>null</c> the string "null" will be
written to the buffer.
</summary>
<param name="value">The <see cref="T:J2N.Text.ICharSequence"/> to write.</param>
<returns>This buffer.</returns>
<exception cref="T:J2N.IO.BufferOverflowException">If <see cref="P:J2N.IO.Buffer.Remaining"/> is less than the length of <paramref name="value"/>.</exception>
<exception cref="T:J2N.IO.ReadOnlyBufferException">If no changes may be made to the contents of this buffer.</exception>
</member>
<member name="M:J2N.IO.CharBuffer.Append(J2N.Text.ICharSequence,System.Int32,System.Int32)">
<summary>
Writes chars of the given <see cref="T:J2N.Text.ICharSequence"/> to the current position of
this buffer, and increases the position by the number of chars written.
<para/>
IMPORTANT: This method has .NET semantics, that is, the third parameter is a length,
not an exclusive end index as it would be in Java. To translate from Java to .NET,
callers must account for this by subtracting (end - start) for the <paramref name="count"/>.
</summary>
<param name="value">The <see cref="T:J2N.Text.ICharSequence"/> to write.</param>
<param name="startIndex">The first char to write, must not be negative and not greater
than <c>csq.Length</c>.</param>
<param name="count">The last char to write (excluding), must be less than
<paramref name="startIndex"/> and not greater than <c>value.Length</c>.</param>
<returns>This buffer.</returns>
<exception cref="T:J2N.IO.BufferOverflowException">If <see cref="P:J2N.IO.Buffer.Remaining"/> is less than <paramref name="count"/>.</exception>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="startIndex"/> plus <paramref name="count"/> indicates a position not within this instance.
<para/>
-or-
<para/>
<paramref name="startIndex"/> or <paramref name="count"/> is less than zero.
</exception>
<exception cref="T:J2N.IO.ReadOnlyBufferException">If no changes may be made to the contents of this buffer.</exception>
</member>
<member name="M:J2N.IO.CharBuffer.Read(J2N.IO.CharBuffer)">
<summary>
Reads characters from this buffer and puts them into <paramref name="target"/>. The
number of chars that are copied is either the number of remaining chars
in this buffer or the number of remaining chars in <paramref name="target"/>,
whichever is smaller.
</summary>
<param name="target">The target char buffer.</param>
<returns>The number of chars copied or -1 if there are no chars left to be
read from this buffer.</returns>
<exception cref="T:System.ArgumentException">If <paramref name="target"/> is this buffer.</exception>
<exception cref="T:System.IO.IOException">If an I/O error occurs.</exception>
<exception cref="T:J2N.IO.ReadOnlyBufferException">If no changes may be made to the contents of <paramref name="target"/>.</exception>
<exception cref="T:System.ArgumentNullException">If <paramref name="target"/> is <c>null</c>.</exception>
</member>
<member name="T:J2N.IO.CharSequenceAdapter">
<summary>
This class wraps a char sequence to be a <see cref="T:System.Char"/> buffer.
<para/>
Implementation notice:
<list type="bullet">
<item><description>Char sequence based buffer is always readonly.</description></item>
</list>
</summary>
</member>
<member name="T:J2N.IO.CharToByteBufferAdapter">
<summary>
This class wraps a byte buffer to be a <see cref="T:System.Char"/> buffer.
</summary>
<remarks>
Implementation notice:
<list type="bullet">
<item><description>
After a byte buffer instance is wrapped, it becomes privately owned by
the adapter. It must NOT be accessed outside the adapter any more.
</description></item>
<item><description>
The byte buffer's position and limit are NOT linked with the adapter.
The adapter extends <see cref="T:J2N.IO.Buffer"/>, thus has its own position and limit.
</description></item>
</list>
</remarks>
</member>
<member name="T:J2N.IO.DataInputStream">
<summary>
Wraps an existing <see cref="T:System.IO.Stream"/> and reads typed data from it.
Typically, this stream has been written by a DataOutputStream. Types that can
be read include byte, 16-bit short, 32-bit int, 32-bit float, 64-bit long,
64-bit double, byte strings, and strings encoded in
<see cref="T:J2N.IO.IDataInput"/> modified UTF-8 (MUTF-8 Encoding).
<para/>
Java's <see cref="T:J2N.IO.DataInputStream"/> is similar to .NET's <see cref="T:System.IO.BinaryReader"/>. However, it reads
using a modified UTF-8 format (MUTF-8 Encoding) and also reads bytes in big endian order.
This is a port of <see cref="T:J2N.IO.DataInputStream"/> that is fully compatible with Java's <see cref="T:J2N.IO.DataOutputStream"/>.
<para>
Usage Note: Always favor <see cref="T:System.IO.BinaryReader"/> over <see cref="T:J2N.IO.DataInputStream"/> unless you specifically need
the modified UTF-8 format and/or the <see cref="M:J2N.IO.DataInputStream.ReadUTF"/> or <see cref="M:J2N.IO.DataInputStream.ReadUTF(J2N.IO.IDataInput)"/> methods.
</para>
</summary>
</member>
<member name="M:J2N.IO.DataInputStream.#ctor(System.IO.Stream)">
<summary>
Constructs a new <see cref="T:J2N.IO.DataInputStream"/> on the <see cref="T:System.IO.Stream"/> <paramref name="input"/>. All
reads are then filtered through this stream. Note that data read by this
stream is not in a human readable format and was most likely created by a
<see cref="T:J2N.IO.DataOutputStream"/>.
</summary>
<param name="input">the source <see cref="T:System.IO.Stream"/> the filter reads from.</param>
<exception cref="T:System.ArgumentNullException">If <paramref name="input"/> is <c>null</c>.</exception>
<seealso cref="T:J2N.IO.DataOutputStream"/>
</member>
<member name="M:J2N.IO.DataInputStream.#ctor(System.IO.Stream,System.Boolean)">
<summary>
Constructs a new <see cref="T:J2N.IO.DataInputStream"/> on the <see cref="T:System.IO.Stream"/> <paramref name="input"/>. All
reads are then filtered through this stream. Note that data read by this
stream is not in a human readable format and was most likely created by a
<see cref="T:J2N.IO.DataOutputStream"/>.
</summary>
<param name="input">the source <see cref="T:System.IO.Stream"/> the filter reads from.</param>
<param name="leaveOpen"><c>true</c> to leave the stream open after the <see cref="T:J2N.IO.DataInputStream"/> object is disposed; otherwise, <c>false</c>.</param>
<exception cref="T:System.ArgumentNullException">If <paramref name="input"/> is <c>null</c>.</exception>
<seealso cref="T:J2N.IO.DataOutputStream"/>
</member>
<member name="P:J2N.IO.DataInputStream.Available">
<summary>
Gets the number of bytes available to read. If the <see cref="P:System.IO.Stream.CanSeek"/> property
of the underlying stream is <c>false</c>, zero will be returned.
</summary>
</member>
<member name="M:J2N.IO.DataInputStream.Read(System.Byte[])">
<summary>
Reads bytes from this stream into the byte array <paramref name="buffer"/>. Returns
the number of bytes that have been read.
<para/>
IMPORTANT: This method has .NET semantics. That is, it returns <c>0</c> rather than <c>-1</c> when
the end of the stream is reached.
</summary>
<param name="buffer">The buffer to read bytes into.</param>
<returns>The number of bytes read into <paramref name="buffer"/>. This might be less
than the number of bytes requested if that many bytes are not available, or it might
be zero if the end of the stream is reached.</returns>
<exception cref="T:System.IO.IOException">If a problem occurs while reading from this stream.</exception>
<exception cref="T:System.ArgumentNullException">If <paramref name="buffer"/> is <c>null</c>.</exception>
<see cref="M:J2N.IO.IDataOutput.Write(System.Byte[])"/>
<see cref="M:J2N.IO.IDataOutput.Write(System.Byte[],System.Int32,System.Int32)"/>
</member>
<member name="M:J2N.IO.DataInputStream.Read(System.Byte[],System.Int32,System.Int32)">
<summary>
Reads at most <paramref name="length"/> bytes from this stream and stores them in
the byte array <paramref name="buffer"/> starting at <paramref name="offset"/>. Returns the
number of bytes that have been read or zero if no bytes have been read and
the end of the stream has been reached.
<para/>
IMPORTANT: This method has .NET semantics. That is, it returns <c>0</c> rather than <c>-1</c> when
the end of the stream is reached.
</summary>
<param name="buffer">The byte array in which to store the bytes read.</param>
<param name="offset">The initial position in <paramref name="buffer"/> to store the bytes
read from this stream.</param>
<param name="length">the maximum number of bytes to store in <paramref name="buffer"/>.</param>
<returns>The number of bytes read into <paramref name="buffer"/>. This might be less
than the number of bytes requested if that many bytes are not available, or it might
be zero if the end of the stream is reached.</returns>
<exception cref="T:System.IO.IOException">If a problem occurs while reading from this stream.</exception>
<exception cref="T:System.ArgumentNullException">If <paramref name="buffer"/> is <c>null</c>.</exception>
<see cref="M:J2N.IO.IDataOutput.Write(System.Byte[])"/>
<see cref="M:J2N.IO.IDataOutput.Write(System.Byte[],System.Int32,System.Int32)"/>
</member>
<member name="M:J2N.IO.DataInputStream.ReadBoolean">
<summary>
Reads a boolean from this stream.
</summary>
<returns>The next boolean value from the source stream.</returns>
<exception cref="T:System.IO.EndOfStreamException">If the end of the stream is reached before one byte
has been read.</exception>
<exception cref="T:System.IO.IOException">If a problem occurs while reading from this stream.</exception>
<seealso cref="M:J2N.IO.IDataOutput.WriteBoolean(System.Boolean)"/>
</member>
<member name="M:J2N.IO.DataInputStream.ReadSByte">
<summary>
Reads an 8-bit byte value from this stream.
<para/>
NOTE: This was readByte() in Java
</summary>
<returns>The next byte value from the source stream.</returns>
<exception cref="T:System.IO.EndOfStreamException">If the end of the stream is reached before one byte
has been read.</exception>
<exception cref="T:System.IO.IOException">If a problem occurs while reading from this stream.</exception>
<seealso cref="M:J2N.IO.IDataOutput.WriteByte(System.Int32)"/>
</member>
<member name="M:J2N.IO.DataInputStream.ReadChar">
<summary>
Reads a 16-bit character value from this stream.
</summary>
<returns>The next <see cref="T:System.Char"/> value from the source stream.</returns>
<exception cref="T:System.IO.EndOfStreamException">If the end of the stream is reached before two bytes
have been read.</exception>
<exception cref="T:System.IO.IOException">If a problem occurs while reading from this stream.</exception>
<seealso cref="M:J2N.IO.IDataOutput.WriteChar(System.Int32)"/>
</member>
<member name="M:J2N.IO.DataInputStream.ReadDouble">
<summary>
Reads a 64-bit <see cref="T:System.Double"/> value from this stream.
</summary>
<returns>The next <see cref="T:System.Double"/> value from the source stream.</returns>
<exception cref="T:System.IO.EndOfStreamException">If the end of the stream is reached before eight bytes
have been read.</exception>
<exception cref="T:System.IO.IOException">If a problem occurs while reading from this stream.</exception>
<seealso cref="M:J2N.IO.IDataOutput.WriteDouble(System.Double)"/>
</member>
<member name="M:J2N.IO.DataInputStream.ReadSingle">
<summary>
Reads a 32-bit <see cref="T:System.Single"/> value from this stream.
<para/>
NOTE: This was readFloat() in Java
</summary>
<returns>The next <see cref="T:System.Single"/> value from the source stream.</returns>
<exception cref="T:System.IO.EndOfStreamException">If the end of the stream is reached before four bytes
have been read.</exception>
<exception cref="T:System.IO.IOException">If a problem occurs while reading from this stream.</exception>
<seealso cref="M:J2N.IO.IDataOutput.WriteSingle(System.Single)"/>
</member>
<member name="M:J2N.IO.DataInputStream.ReadFully(System.Byte[])">
<summary>
Reads bytes from this stream into the byte array <paramref name="buffer"/>. This
method will block until <c><paramref name="buffer"/>.Length</c> number of bytes have been
read.
</summary>
<param name="buffer">Buffer to read bytes into.</param>
<exception cref="T:System.IO.EndOfStreamException">If the end of the stream is reached before enough bytes
have been read.</exception>
<exception cref="T:System.IO.IOException">If a problem occurs while reading from this stream.</exception>
<exception cref="T:System.ArgumentNullException">If <paramref name="buffer"/> is <c>null</c>.</exception>
<seealso cref="M:J2N.IO.IDataOutput.Write(System.Byte[])"/>
<seealso cref="M:J2N.IO.IDataOutput.Write(System.Byte[],System.Int32,System.Int32)"/>
</member>
<member name="M:J2N.IO.DataInputStream.ReadFully(System.Byte[],System.Int32,System.Int32)">
<summary>
Reads bytes from this stream and stores them in the byte array <paramref name="buffer"/>
starting at the position <paramref name="offset"/>. This method blocks until
<paramref name="length"/> bytes have been read. If <paramref name="length"/> is zero, then this
method returns without reading any bytes.
</summary>
<param name="buffer">The byte array into which the data is read.</param>
<param name="offset">The offset in <paramref name="buffer"/> from where to store the bytes read.</param>
<param name="length">The maximum number of bytes to read.</param>
<exception cref="T:System.IO.EndOfStreamException">If the end of the stream is reached before enough bytes
have been read.</exception>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="offset"/> plus <paramref name="length"/> indicates a position not within this instance.
<para/>
-or-
<para/>
<paramref name="offset"/> or <paramref name="length"/> is less than zero.
</exception>
<exception cref="T:System.IO.IOException">If a problem occurs while reading from this stream.</exception>
<exception cref="T:System.ArgumentNullException">If <paramref name="buffer"/> is <c>null</c>.</exception>
<seealso cref="M:J2N.IO.IDataOutput.Write(System.Byte[])"/>
<seealso cref="M:J2N.IO.IDataOutput.Write(System.Byte[],System.Int32,System.Int32)"/>
</member>
<member name="M:J2N.IO.DataInputStream.ReadInt32">
<summary>
Reads a 32-bit integer value from this stream.
<para/>
NOTE: This was readInt() in Java
</summary>
<returns>The next <see cref="T:System.Int32"/> value from the source stream.</returns>
<exception cref="T:System.IO.EndOfStreamException">If the end of the stream is reached before four bytes
have been read.</exception>
<exception cref="T:System.IO.IOException">If a problem occurs while reading from this stream.</exception>
<seealso cref="M:J2N.IO.IDataOutput.WriteInt32(System.Int32)"/>
</member>
<member name="M:J2N.IO.DataInputStream.ReadLine">
<summary>
Returns a string that contains the next line of text available from the
source stream. A line is represented by zero or more characters followed
by <c>'\n'</c>, <c>'\r'</c>, <c>"\r\n"</c> or the end of the stream.
The string does not include the newline sequence.
</summary>
<returns>The contents of the line or <c>null</c> if no characters were
read before the end of the source stream has been reached.</returns>
<exception cref="T:System.IO.IOException">If a problem occurs while reading from this stream.</exception>
</member>
<member name="M:J2N.IO.DataInputStream.ReadInt64">
<summary>
Reads a 64-bit <see cref="T:System.Int64"/> value from this stream.
<para/>
NOTE: This was readLong() in Java
</summary>
<returns>The next <see cref="T:System.Int64"/> value from the source stream.</returns>
<exception cref="T:System.IO.EndOfStreamException">If the end of the stream is reached before four eight
have been read.</exception>
<exception cref="T:System.IO.IOException">If a problem occurs while reading from this stream.</exception>
<seealso cref="M:J2N.IO.IDataOutput.WriteInt64(System.Int64)"/>
</member>
<member name="M:J2N.IO.DataInputStream.ReadInt16">
<summary>
Reads a 16-bit <see cref="T:System.Int16"/> value from this stream.
<para/>
NOTE: This was readShort() in Java
</summary>
<returns>The next <see cref="T:System.Int16"/> value from the source stream.</returns>
<exception cref="T:System.IO.EndOfStreamException">If the end of the stream is reached before two bytes
have been read.</exception>
<exception cref="T:System.IO.IOException">If a problem occurs while reading from this stream.</exception>
<seealso cref="M:J2N.IO.IDataOutput.WriteInt16(System.Int32)"/>
</member>
<member name="M:J2N.IO.DataInputStream.ReadByte">
<summary>
Reads an unsigned 8-bit <see cref="T:System.Byte"/> value from this stream and returns it as an
<see cref="T:System.Int32"/>.
<para/>
NOTE: This was readUnsignedByte() in Java
</summary>
<returns>The next unsigned <see cref="T:System.Byte"/> value from the source stream.</returns>
<exception cref="T:System.IO.EndOfStreamException">If the end of the stream is reached before one byte
has been read.</exception>
<exception cref="T:System.IO.IOException">If a problem occurs while reading from this stream.</exception>
<seealso cref="M:J2N.IO.IDataOutput.WriteByte(System.Int32)"/>
</member>
<member name="M:J2N.IO.DataInputStream.ReadUInt16">
<summary>
Reads a 16-bit <see cref="T:System.UInt16"/> value from this stream and returns it as an
<see cref="T:System.Int32"/>.
<para/>
NOTE: This was readUnsignedShort() in Java
</summary>
<returns>The next <see cref="T:System.UInt16"/> value from the source stream.</returns>
<exception cref="T:System.IO.EndOfStreamException">If the end of the stream is reached before two bytes
have been read.</exception>
<exception cref="T:System.IO.IOException">If a problem occurs while reading from this stream.</exception>
<seealso cref="M:J2N.IO.IDataOutput.WriteInt16(System.Int32)"/>
</member>
<member name="M:J2N.IO.DataInputStream.ReadUTF">
<summary>
Reads an string encoded in DataInput modified UTF-8 from this
stream.
</summary>
<returns>The next DataInput MUTF-8 encoded string read from the
source stream.</returns>
<exception cref="T:System.IO.EndOfStreamException">If the end of the stream is reached before the read
request can be satisfied.</exception>
<exception cref="T:System.IO.IOException">If a problem occurs while reading from this stream.</exception>
<seealso cref="M:J2N.IO.IDataOutput.WriteUTF(System.String)"/>
</member>
<member name="M:J2N.IO.DataInputStream.ReadUTF(J2N.IO.IDataInput)">
<summary>
Reads a string encoded in DataInput modified UTF-8 from the
<see cref="T:J2N.IO.IDataInput"/> stream <paramref name="input"/>.
</summary>
<param name="input">The input stream to read from.</param>
<returns>The next DataInput modified UTF-8 encoded string from the source stream.</returns>
<exception cref="T:System.IO.IOException">If a problem occurs while reading from the stream.</exception>
<exception cref="T:System.ArgumentNullException">If <paramref name="input"/> is <c>null</c>.</exception>
<seealso cref="M:J2N.IO.DataOutputStream.WriteUTF(System.String)"/>
</member>
<member name="M:J2N.IO.DataInputStream.SkipBytes(System.Int32)">
<summary>
Skips <paramref name="count"/> number of bytes in this stream. Subsequent
<see cref="M:J2N.IO.DataInputStream.Read(System.Byte[])"/>s will not return these bytes.
<para/>
This method will not throw an <see cref="T:System.IO.EndOfStreamException"/> if the end of the
input is reached before <paramref name="count"/> bytes where skipped.
</summary>
<param name="count">The number of bytes to skip.</param>
<returns>The number of bytes actually skipped.</returns>
<exception cref="T:System.IO.IOException">If a problem occurs while skipping.</exception>
</member>
<member name="M:J2N.IO.DataInputStream.Skip(System.IO.Stream,System.Int32)">
<summary>
Helper method for SkipBytes, since Position and Seek do not work on
non-seekable streams.
</summary>
</member>
<member name="M:J2N.IO.DataInputStream.Dispose">
<summary>
Releases all resources used by the current instance of the <see cref="T:J2N.IO.DataInputStream"/> class.
</summary>
</member>
<member name="M:J2N.IO.DataInputStream.Dispose(System.Boolean)">
<summary>
Releases the unmanaged resources used by the <see cref="T:J2N.IO.DataInputStream"/> class and optionally releases the managed resources.
</summary>
<param name="disposing"><c>true</c> to release both managed and unmanaged resources; <c>false</c> to release only unmanaged resources.</param>
</member>
<member name="M:J2N.IO.DataInputStream.Read">
<summary>
Reads a single byte from the stream and returns it as an integer
in the range from 0 to 255. Returns -1 if the end of this stream has been
reached.
</summary>
<returns>The byte read or -1 if the end of the filtered stream has been reached.</returns>
<exception cref="T:System.IO.IOException">If the stream is disposed or another <see cref="T:System.IO.IOException"/> occurs.</exception>
</member>
<member name="T:J2N.IO.DataOutputStream">
<summary>
Wraps an existing <see cref="T:System.IO.Stream"/> and writes typed data to it.
Typically, this stream can be read in by <see cref="T:J2N.IO.DataInputStream"/>. Types that can be
written include byte, 16-bit short, 32-bit int, 32-bit float, 64-bit long,
64-bit double, byte strings, and DataInput MUTF-8 encoded strings.
<para/>
Java's <see cref="T:J2N.IO.DataOutputStream"/> is similar to .NET's <see cref="T:System.IO.BinaryWriter"/>. However, it writes
in a modified UTF-8 format that is written in big-endian byte order.
This is a port of <see cref="T:J2N.IO.DataOutputStream"/> that is fully compatible with Java's <see cref="T:J2N.IO.DataInputStream"/>.
<para>
Usage Note: Always favor <see cref="T:System.IO.BinaryWriter"/> over <see cref="T:J2N.IO.DataOutputStream"/> unless you specifically need
the modified UTF-8 format and/or the <see cref="M:J2N.IO.DataOutputStream.WriteUTF(System.String)"/> method.
</para>
</summary>
<seealso cref="T:J2N.IO.DataInputStream"/>
</member>
<member name="F:J2N.IO.DataOutputStream.written">
<summary>
The number of bytes written out so far.
</summary>
</member>
<member name="M:J2N.IO.DataOutputStream.#ctor(System.IO.Stream)">
<summary>
Constructs a new <see cref="T:J2N.IO.DataOutputStream"/> on the <see cref="T:System.IO.Stream"/>
<paramref name="output"/>. Note that data written by this stream is not in a human
readable form but can be reconstructed by using a <see cref="T:J2N.IO.DataInputStream"/>
on the resulting output.
</summary>
<param name="output">The target stream for writing.</param>
<exception cref="T:System.ArgumentNullException">If <paramref name="output"/> is <c>null</c>.</exception>
<seealso cref="T:J2N.IO.DataInputStream"/>
</member>
<member name="M:J2N.IO.DataOutputStream.#ctor(System.IO.Stream,System.Boolean)">
<summary>
Constructs a new <see cref="T:J2N.IO.DataOutputStream"/> on the <see cref="T:System.IO.Stream"/>
<paramref name="output"/>. Note that data written by this stream is not in a human
readable form but can be reconstructed by using a <see cref="T:J2N.IO.DataInputStream"/>
on the resulting output.
</summary>
<param name="output">The target stream for writing.</param>
<param name="leaveOpen"><c>true</c> to leave the stream open after the <see cref="T:J2N.IO.DataOutputStream"/> object is disposed; otherwise, <c>false</c>.</param>
<exception cref="T:System.ArgumentNullException">If <paramref name="output"/> is <c>null</c>.</exception>
<seealso cref="T:J2N.IO.DataInputStream"/>
</member>
<member name="M:J2N.IO.DataOutputStream.Flush">
<summary>
Flushes this stream to ensure all pending data is sent out to the target
stream. This implementation then also flushes the target stream.
</summary>
<exception cref="T:System.IO.IOException">If an error occurs attempting to flush this stream.</exception>
</member>
<member name="P:J2N.IO.DataOutputStream.Length">
<summary>
Gets the total number of bytes written to the target stream so far.
</summary>
</member>
<member name="M:J2N.IO.DataOutputStream.Write(System.Byte[],System.Int32,System.Int32)">
<summary>
Writes <paramref name="count"/> bytes from the byte array <paramref name="buffer"/> starting at
<paramref name="offset"/> to the target stream.
</summary>
<param name="buffer">The buffer to write to the target stream.</param>
<param name="offset">The index of the first byte in <paramref name="buffer"/> to write.</param>
<param name="count">The number of bytes from the <paramref name="buffer"/> to write.</param>
<exception cref="T:System.IO.IOException">If an error occurs while writing to the target stream.</exception>
<exception cref="T:System.ArgumentNullException">If <paramref name="buffer"/> is <c>null</c>.</exception>
<seealso cref="M:J2N.IO.DataInputStream.ReadFully(System.Byte[])"/>
<seealso cref="M:J2N.IO.DataInputStream.ReadFully(System.Byte[],System.Int32,System.Int32)"/>
</member>
<member name="M:J2N.IO.DataOutputStream.Write(System.Int32)">
<summary>
Writes a <see cref="T:System.Byte"/> to the target stream. Only the least significant byte of
the integer <paramref name="oneByte"/> is written.
</summary>
<param name="oneByte">The <see cref="T:System.Byte"/> to write to the target stream.</param>
</member>
<member name="M:J2N.IO.DataOutputStream.WriteBoolean(System.Boolean)">
<summary>
Writes a <see cref="T:System.Boolean"/> to the target stream.
</summary>
<param name="value">The <see cref="T:System.Boolean"/> value to write to the target stream.</param>
<exception cref="T:System.IO.IOException">If an error occurs while writing to the target stream.</exception>
<seealso cref="M:J2N.IO.DataInputStream.ReadBoolean"/>
</member>
<member name="M:J2N.IO.DataOutputStream.WriteByte(System.Int32)">
<summary>
Writes an 8-bit <see cref="T:System.Byte"/> to the target stream. Only the least significant
byte of the integer <paramref name="value"/> is written.
</summary>
<param name="value">The <see cref="T:System.Byte"/> value to write to the target stream.</param>
<exception cref="T:System.IO.IOException">If an error occurs while writing to the target stream.</exception>
<seealso cref="M:J2N.IO.DataInputStream.ReadSByte"/>
<seealso cref="M:J2N.IO.DataInputStream.ReadByte"/>
</member>
<member name="M:J2N.IO.DataOutputStream.WriteBytes(System.String)">
<summary>
Writes the low order bytes from a string to the target stream.
</summary>
<param name="value">The string containing the bytes to write to the target stream.</param>
<exception cref="T:System.IO.IOException">If an error occurs while writing to the target stream.</exception>
<exception cref="T:System.ArgumentNullException">If <paramref name="value"/> is <c>null</c>.</exception>
<seealso cref="M:J2N.IO.DataInputStream.ReadFully(System.Byte[])"/>
<seealso cref="M:J2N.IO.DataInputStream.ReadFully(System.Byte[],System.Int32,System.Int32)"/>
</member>
<member name="M:J2N.IO.DataOutputStream.WriteChar(System.Int32)">
<summary>
Writes a 16-bit character to the target stream. Only the two lower bytes
of the integer <paramref name="value"/> are written, with the higher one written
are written, with the higher one written <paramref name="value"/>.
</summary>
<param name="value">The character to write to the target stream.</param>
<exception cref="T:System.IO.IOException">If an error occurs while writing to the target stream.</exception>
<seealso cref="M:J2N.IO.DataInputStream.ReadChar"/>
</member>
<member name="M:J2N.IO.DataOutputStream.WriteChars(System.String)">
<summary>
Writes the 16-bit characters contained in <paramref name="value"/> to the target
stream.
</summary>
<param name="value">The string that contains the characters to write to this
stream.</param>
<exception cref="T:System.IO.IOException">If an error occurs while writing to the target stream.</exception>
<exception cref="T:System.ArgumentNullException">If <paramref name="value"/> is <c>null</c>.</exception>
<seealso cref="M:J2N.IO.DataInputStream.ReadChar"/>
</member>
<member name="M:J2N.IO.DataOutputStream.WriteDouble(System.Double)">
<summary>
Writes a 64-bit <see cref="T:System.Double"/> to the target stream. The resulting output is the
eight bytes resulting from calling <see cref="M:J2N.BitConversion.DoubleToInt64Bits(System.Double)"/>.
</summary>
<param name="value">The <see cref="T:System.Double"/> to write to the target stream.</param>
<exception cref="T:System.IO.IOException">If an error occurs while writing to the target stream.</exception>
<seealso cref="M:J2N.IO.DataInputStream.ReadDouble"/>
</member>
<member name="M:J2N.IO.DataOutputStream.WriteSingle(System.Single)">
<summary>
Writes a 32-bit <see cref="T:System.Single"/> to the target stream. The resulting output is the
four bytes resulting from calling <see cref="M:J2N.BitConversion.SingleToInt32Bits(System.Single)"/>.
<para/>
NOTE: This was writeFloat() in Java
</summary>
<param name="value">The <see cref="T:System.Single"/> to write to the target stream.</param>
<exception cref="T:System.IO.IOException">If an error occurs while writing to the target stream.</exception>
<seealso cref="M:J2N.IO.DataInputStream.ReadSingle"/>
</member>
<member name="M:J2N.IO.DataOutputStream.WriteInt32(System.Int32)">
<summary>
Writes a 32-bit <see cref="T:System.Int32"/> to the target stream. The resulting output is the
four bytes, highest order first, of <paramref name="value"/>.
<para/>
NOTE: This was writeInt() in Java
</summary>
<param name="value">The <see cref="T:System.Int32"/> to write to the target stream.</param>
<exception cref="T:System.IO.IOException">If an error occurs while writing to the target stream.</exception>
<seealso cref="M:J2N.IO.DataInputStream.ReadInt32"/>
</member>
<member name="M:J2N.IO.DataOutputStream.WriteInt64(System.Int64)">
<summary>
Writes a 64-bit <see cref="T:System.Int64"/> to the target stream. The resulting output is the
eight bytes, highest order first, of <paramref name="value"/>.
<para/>
NOTE: This was writeLong() in Java
</summary>
<param name="value">The <see cref="T:System.Int64"/> to write to the target stream.</param>
<exception cref="T:System.IO.IOException">If an error occurs while writing to the target stream.</exception>
<seealso cref="M:J2N.IO.DataInputStream.ReadInt64"/>
</member>
<member name="M:J2N.IO.DataOutputStream.WriteInt16(System.Int32)">
<summary>
Writes the specified 16-bit <see cref="T:System.Int16"/> to the target stream. Only the lower
two bytes of the integer <paramref name="value"/> are written, with the higher one
written first.
<para/>
NOTE: This was writeShort() in Java
</summary>
<param name="value">The <see cref="T:System.Int16"/> to write to the target stream.</param>
<exception cref="T:System.IO.IOException">If an error occurs while writing to the target stream.</exception>
<seealso cref="M:J2N.IO.DataInputStream.ReadInt16"/>
</member>
<member name="M:J2N.IO.DataOutputStream.WriteUTF(System.String)">
<summary>
Writes the specified encoded in DataInput modified UTF-8 to this
stream.
</summary>
<param name="value">The string to write to the target stream encoded in
DataInput modified UTF-8.</param>
<exception cref="T:System.IO.IOException">If an error occurs while writing to the target stream.</exception>
<exception cref="T:System.FormatException">If the encoded string is longer than 65535 bytes.</exception>
<exception cref="T:System.ArgumentNullException">If <paramref name="value"/> is <c>null</c>.</exception>
<seealso cref="M:J2N.IO.DataInputStream.ReadUTF"/>
</member>
<member name="M:J2N.IO.DataOutputStream.Write(System.Byte[])">
<summary>
Writes the entire contents of the byte array <paramref name="buffer"/> to this
stream. This implementation writes the <paramref name="buffer"/> to the target
stream.
</summary>
<param name="buffer">The buffer to be written.</param>
<exception cref="T:System.IO.IOException">If an I/O error occurs while writing to this stream.</exception>
<exception cref="T:System.ArgumentNullException">If <paramref name="buffer"/> is <c>null</c>.</exception>
</member>
<member name="M:J2N.IO.DataOutputStream.Dispose">
<summary>
</summary>
</member>
<member name="M:J2N.IO.DataOutputStream.Dispose(System.Boolean)">
<summary>
</summary>
<param name="disposing"></param>
</member>
<member name="T:J2N.IO.DoubleArrayBuffer">
<summary>
<see cref="T:J2N.IO.DoubleArrayBuffer"/>, <see cref="T:J2N.IO.ReadWriteDoubleArrayBuffer"/>, and <see cref="T:J2N.IO.ReadOnlyDoubleArrayBuffer"/>
compose the implementation of array based float buffers.
<para/>
<see cref="T:J2N.IO.DoubleArrayBuffer"/> implements all the shared readonly methods and is extended
by the other two classes.
<para/>
All methods are marked sealed for runtime performance.
</summary>
</member>
<member name="T:J2N.IO.DoubleBuffer">
<summary>
A buffer of <see cref="T:System.Double"/>s.
<para/>
A short buffer can be created in either of the following ways:
<list type="bullet">
<item><description><see cref="M:J2N.IO.DoubleBuffer.Allocate(System.Int32)"/> a new <see cref="T:System.Double"/> array and create a buffer
based on it</description></item>
<item><description><see cref="M:J2N.IO.DoubleBuffer.Wrap(System.Double[])"/> an existing <see cref="T:System.Double"/> array to create a new
buffer</description></item>
<item><description>Use <see cref="M:J2N.IO.ByteBuffer.AsDoubleBuffer"/> to create a <see cref="T:System.Double"/>
buffer based on a byte buffer.</description></item>
</list>
</summary>
</member>
<member name="M:J2N.IO.DoubleBuffer.Allocate(System.Int32)">
<summary>
Creates a <see cref="T:J2N.IO.DoubleBuffer"/> based on a newly allocated <see cref="T:System.Double"/> array.
</summary>
<param name="capacity">The capacity of the new buffer.</param>
<returns>The created <see cref="T:J2N.IO.DoubleBuffer"/>.</returns>
<exception cref="T:System.ArgumentOutOfRangeException">If <paramref name="capacity"/> is less than zero.</exception>
</member>
<member name="M:J2N.IO.DoubleBuffer.Wrap(System.Double[])">
<summary>
Creates a new <see cref="T:J2N.IO.DoubleBuffer"/> by wrapping the given <see cref="T:System.Double"/> array.
<para/>
Calling this method has the same effect as
<c>Wrap(array, 0, array.Length)</c>.
</summary>
<param name="array">The <see cref="T:System.Double"/> array which the new buffer will be based on.</param>
<returns>The created <see cref="T:J2N.IO.DoubleBuffer"/>.</returns>
<exception cref="T:System.ArgumentNullException">If <paramref name="array"/> is <c>null</c>.</exception>
</member>
<member name="M:J2N.IO.DoubleBuffer.Wrap(System.Double[],System.Int32,System.Int32)">
<summary>
Creates a new <see cref="T:J2N.IO.DoubleBuffer"/> by wrapping the given <see cref="T:System.Double"/> array.
<para/>
The new buffer's position will be <paramref name="startIndex"/>, limit will be
<c>startIndex + length</c>, capacity will be the length of the array.
</summary>
<param name="array">The <see cref="T:System.Double"/> array which the new buffer will be based on.</param>
<param name="startIndex">The start index, must not be negative and not greater than
<c>array.Length</c>.</param>
<param name="length">The length, must not be negative and not greater than <c>array.Length - start</c>.</param>
<returns>The created <see cref="T:J2N.IO.DoubleBuffer"/>.</returns>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="startIndex"/> plus <paramref name="length"/> indicates a position not within this instance.
<para/>
-or-
<para/>
<paramref name="startIndex"/> or <paramref name="length"/> is less than zero.
</exception>
<exception cref="T:System.ArgumentNullException">If <paramref name="array"/> is <c>null</c>.</exception>
</member>
<member name="M:J2N.IO.DoubleBuffer.#ctor(System.Int32)">
<summary>
Constructs a <see cref="T:J2N.IO.DoubleBuffer"/> with given capacity.
</summary>
<param name="capacity">The capacity of the buffer.</param>
</member>
<member name="P:J2N.IO.DoubleBuffer.Array">
<summary>
Gets the <see cref="T:System.Double"/> array which this buffer is based on, if there is one.
</summary>
<exception cref="T:J2N.IO.ReadOnlyBufferException">If this buffer is based on an array, but it is read-only.</exception>
<exception cref="T:System.NotSupportedException">If this buffer is not based on an array.</exception>
</member>
<member name="P:J2N.IO.DoubleBuffer.ArrayOffset">
<summary>
Gets the offset of the <see cref="T:System.Double"/> array which this buffer is based on, if
there is one.
<para/>
The offset is the index of the array corresponds to the zero position of
the buffer.
</summary>
<exception cref="T:J2N.IO.ReadOnlyBufferException">If this buffer is based on an array, but it is read-only.</exception>
<exception cref="T:System.NotSupportedException">If this buffer is not based on an array.</exception>
</member>
<member name="M:J2N.IO.DoubleBuffer.AsReadOnlyBuffer">
<summary>
Returns a read-only buffer that shares its content with this buffer.
<para/>
The returned buffer is guaranteed to be a new instance, even this buffer
is read-only itself. The new buffer's position, limit, capacity and mark
are the same as this buffer's.
<para/>
The new buffer shares its content with this buffer, which means this
buffer's change of content will be visible to the new buffer. The two
buffer's position, limit and mark are independent.
</summary>
<returns>A read-only version of this buffer.</returns>
</member>
<member name="M:J2N.IO.DoubleBuffer.Compact">
<summary>
Compacts this <see cref="T:J2N.IO.DoubleBuffer"/>.
<para/>
The remaining <see cref="T:System.Double"/>s will be moved to the head of the buffer, starting from
position zero. Then the position is set to <see cref="P:J2N.IO.Buffer.Remaining"/>; the
limit is set to capacity; the mark is cleared.
</summary>
<returns>This buffer.</returns>
<exception cref="T:J2N.IO.ReadOnlyBufferException">If no changes may be made to the contents of this buffer.</exception>
</member>
<member name="M:J2N.IO.DoubleBuffer.CompareTo(J2N.IO.DoubleBuffer)">
<summary>
Compares the remaining <see cref="T:System.Double"/>s of this buffer to another <see cref="T:J2N.IO.DoubleBuffer"/>'s
remaining <see cref="T:System.Double"/>s.
</summary>
<param name="other">Another <see cref="T:J2N.IO.DoubleBuffer"/>.</param>
<returns>A negative value if this is less than <paramref name="other"/>; 0 if this
equals to <paramref name="other"/>; a positive value if this is greater
than <paramref name="other"/>.</returns>
</member>
<member name="M:J2N.IO.DoubleBuffer.Duplicate">
<summary>
Returns a duplicated buffer that shares its content with this buffer.
<para/>
The duplicated buffer's position, limit, capacity and mark are the same
as this buffer. The duplicated buffer's read-only property and byte order
are the same as this buffer's.
<para/>
The new buffer shares its content with this buffer, which means either
buffer's change of content will be visible to the other. The two buffer's
position, limit and mark are independent.
</summary>
<returns>A duplicated buffer that shares its content with this buffer.</returns>
</member>
<member name="M:J2N.IO.DoubleBuffer.Equals(System.Object)">
<summary>
Checks whether this <see cref="T:J2N.IO.DoubleBuffer"/> is equal to another object.
<para/>
If <paramref name="other"/> is not a <see cref="T:J2N.IO.DoubleBuffer"/> then <c>false</c> is returned. Two
<see cref="T:J2N.IO.DoubleBuffer"/>s are equal if and only if their remaining <see cref="T:System.Double"/>s are exactly the
same. Position, limit, capacity and mark are not considered.
</summary>
<param name="other">The object to compare with this <see cref="T:J2N.IO.DoubleBuffer"/>.</param>
<returns><c>true</c> if this <see cref="T:J2N.IO.DoubleBuffer"/> is equal to <paramref name="other"/>,
<c>false</c> otherwise.</returns>
</member>
<member name="M:J2N.IO.DoubleBuffer.Get">
<summary>
Returns the <see cref="T:System.Double"/> at the current position and increases the position by 1.
</summary>
<returns>The <see cref="T:System.Double"/> at the current position.</returns>
<exception cref="T:J2N.IO.BufferUnderflowException">If the position is equal or greater than limit.</exception>
</member>
<member name="M:J2N.IO.DoubleBuffer.Get(System.Double[])">
<summary>
Reads <see cref="T:System.Double"/>s from the current position into the specified int array and
increases the position by the number of <see cref="T:System.Double"/>s read.
<para/>
Calling this method has the same effect as
<c>Get(destination, 0, destination.Length)</c>.
</summary>
<param name="destination">The destination <see cref="T:System.Double"/> array.</param>
<returns>This buffer.</returns>
<exception cref="T:J2N.IO.BufferUnderflowException">If <c>destination.Length</c> is greater than <see cref="P:J2N.IO.Buffer.Remaining"/>.</exception>
<exception cref="T:System.ArgumentNullException">If <paramref name="destination"/> is <c>null</c>.</exception>
</member>
<member name="M:J2N.IO.DoubleBuffer.Get(System.Double[],System.Int32,System.Int32)">
<summary>
Reads <see cref="T:System.Double"/>s from the current position into the specified <see cref="T:System.Double"/> array,
starting from the specified offset, and increases the position by the
number of <see cref="T:System.Double"/>s read.
</summary>
<param name="destination">The target <see cref="T:System.Double"/> array.</param>
<param name="offset">the offset of the <see cref="T:System.Double"/> array, must not be negative and not
greater than <c>destination.Length</c>.</param>
<param name="length">The number of <see cref="T:System.Double"/>s to read, must be no less than zero and not
greater than <c>destination.Length - offset</c>.</param>
<returns>This buffer.</returns>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="offset"/> plus <paramref name="length"/> indicates a position not within this instance.
<para/>
-or-
<para/>
<paramref name="offset"/> or <paramref name="length"/> is less than zero.
</exception>
<exception cref="T:J2N.IO.BufferUnderflowException">If <paramref name="length"/> is greater than <see cref="P:J2N.IO.Buffer.Remaining"/>.</exception>
<exception cref="T:System.ArgumentNullException">If <paramref name="destination"/> is <c>null</c>.</exception>
</member>
<member name="M:J2N.IO.DoubleBuffer.Get(System.Int32)">
<summary>
Returns an <see cref="T:System.Double"/> at the specified <paramref name="index"/>; the position is not changed.
</summary>
<param name="index">The index, must not be negative and less than limit.</param>
<returns>The <see cref="T:System.Double"/> at the specified index.</returns>
<exception cref="T:System.ArgumentOutOfRangeException">If <paramref name="index"/> is invalid.</exception>
</member>
<member name="P:J2N.IO.DoubleBuffer.HasArray">
<summary>
Indicates whether this buffer is based on a <see cref="T:System.Double"/> array and is read/write.
<para/>
Returns <c>true</c> if this buffer is based on a <see cref="T:System.Double"/> array and provides
read/write access, <c>false</c> otherwise.
</summary>
</member>
<member name="M:J2N.IO.DoubleBuffer.GetHashCode">
<summary>
Calculates this buffer's hash code from the remaining chars. The
position, limit, capacity and mark don't affect the hash code.
</summary>
<returns>The hash code calculated from the remaining <see cref="T:System.Double"/>s.</returns>
</member>
<member name="P:J2N.IO.DoubleBuffer.Order">
<summary>
Gets the byte order used by this buffer when converting ints from/to
bytes.
<para/>
If this buffer is not based on a byte buffer, then always return the
platform's native byte order.
</summary>
</member>
<member name="P:J2N.IO.DoubleBuffer.ProtectedArray">
<summary>
Child class implements this property to realize <see cref="P:J2N.IO.DoubleBuffer.Array"/>.
</summary>
<seealso cref="P:J2N.IO.DoubleBuffer.Array"/>
</member>
<member name="P:J2N.IO.DoubleBuffer.ProtectedArrayOffset">
<summary>
Child class implements this property to realize <see cref="P:J2N.IO.DoubleBuffer.ArrayOffset"/>.
</summary>
<seealso cref="P:J2N.IO.DoubleBuffer.ArrayOffset"/>
</member>
<member name="P:J2N.IO.DoubleBuffer.ProtectedHasArray">
<summary>
Child class implements this property to realize <see cref="P:J2N.IO.DoubleBuffer.HasArray"/>.
</summary>
<seealso cref="P:J2N.IO.DoubleBuffer.HasArray"/>
</member>
<member name="M:J2N.IO.DoubleBuffer.Put(System.Double)">
<summary>
Writes the given <see cref="T:System.Double"/> to the current position and increases the position
by 1.
</summary>
<param name="source">The <see cref="T:System.Double"/> to write.</param>
<returns>This buffer.</returns>
<exception cref="T:J2N.IO.BufferOverflowException">If position is equal or greater than limit.</exception>
<exception cref="T:J2N.IO.ReadOnlyBufferException">If no changes may be made to the contents of this buffer.</exception>
</member>
<member name="M:J2N.IO.DoubleBuffer.Put(System.Double[])">
<summary>
Writes <see cref="T:System.Double"/>s from the given <see cref="T:System.Double"/> array to the current position and
increases the position by the number of <see cref="T:System.Double"/>s written.
<para/>
Calling this method has the same effect as
<c>Put(source, 0, source.Length)</c>.
</summary>
<param name="source">The source <see cref="T:System.Double"/> array.</param>
<returns>This buffer.</returns>
<exception cref="T:J2N.IO.BufferOverflowException">If <see cref="P:J2N.IO.Buffer.Remaining"/> is less than <c>source.Length</c>.</exception>
<exception cref="T:J2N.IO.ReadOnlyBufferException">If no changes may be made to the contents of this buffer.</exception>
<exception cref="T:System.ArgumentNullException">If <paramref name="source"/> is <c>null</c>.</exception>
</member>
<member name="M:J2N.IO.DoubleBuffer.Put(System.Double[],System.Int32,System.Int32)">
<summary>
Writes <see cref="T:System.Double"/>s from the given int array, starting from the specified offset,
to the current position and increases the position by the number of <see cref="T:System.Double"/>s
written.
</summary>
<param name="source">The source <see cref="T:System.Double"/> array.</param>
<param name="offset">The offset of <see cref="T:System.Double"/> array, must not be negative and not greater than <c>source.Length</c>.</param>
<param name="length">The number of <see cref="T:System.Double"/>s to write, must be no less than zero and not
greater than <c>source.Length - offset</c>.</param>
<returns>This buffer.</returns>
<exception cref="T:J2N.IO.BufferOverflowException">If <see cref="P:J2N.IO.Buffer.Remaining"/> is less than <paramref name="length"/>.</exception>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="offset"/> plus <paramref name="length"/> indicates a position not within this instance.
<para/>
-or-
<para/>
<paramref name="offset"/> or <paramref name="length"/> is less than zero.
</exception>
<exception cref="T:J2N.IO.ReadOnlyBufferException">If no changes may be made to the contents of this buffer.</exception>
<exception cref="T:System.ArgumentNullException">If <paramref name="source"/> is <c>null</c>.</exception>
</member>
<member name="M:J2N.IO.DoubleBuffer.Put(J2N.IO.DoubleBuffer)">
<summary>
Writes all the remaining <see cref="T:System.Double"/>s of the <paramref name="source"/> <see cref="T:J2N.IO.DoubleBuffer"/> to this
buffer's current position, and increases both buffers' position by the
number of <see cref="T:System.Double"/>s copied.
</summary>
<param name="source">The source <see cref="T:J2N.IO.DoubleBuffer"/>.</param>
<returns>This buffer.</returns>
<exception cref="T:J2N.IO.BufferOverflowException">If <c>source.Remaining</c> is greater than this buffer's <see cref="P:J2N.IO.Buffer.Remaining"/>.</exception>
<exception cref="T:System.ArgumentException">If <paramref name="source"/> is this buffer.</exception>
<exception cref="T:J2N.IO.ReadOnlyBufferException">If no changes may be made to the contents of this buffer.</exception>
<exception cref="T:System.ArgumentNullException">If <paramref name="source"/> is <c>null</c>.</exception>
</member>
<member name="M:J2N.IO.DoubleBuffer.Put(System.Int32,System.Double)">
<summary>
Write a <see cref="T:System.Double"/> to the specified <paramref name="index"/> of this buffer; the position is not
changed.
</summary>
<param name="index">The index, must not be negative and less than the limit.</param>
<param name="value">The <see cref="T:System.Double"/> to write.</param>
<returns>This buffer.</returns>
<exception cref="T:System.ArgumentOutOfRangeException">If <paramref name="index"/> is invalid.</exception>
<exception cref="T:J2N.IO.ReadOnlyBufferException">If no changes may be made to the contents of this buffer.</exception>
</member>
<member name="M:J2N.IO.DoubleBuffer.Slice">
<summary>
Returns a sliced buffer that shares its content with this buffer.
<para/>
The sliced buffer's capacity will be this buffer's <see cref="P:J2N.IO.Buffer.Remaining"/>,
and its zero position will correspond to this buffer's current position.
The new buffer's position will be 0, limit will be its capacity, and its
mark is cleared. The new buffer's read-only property and byte order are
same as this buffer's.
<para/>
The new buffer shares its content with this buffer, which means either
buffer's change of content will be visible to the other. The two buffer's
position, limit and mark are independent.
</summary>
<returns>A sliced buffer that shares its content with this buffer.</returns>
</member>
<member name="M:J2N.IO.DoubleBuffer.ToString">
<summary>
Returns a string represents of the state of this <see cref="T:J2N.IO.DoubleBuffer"/>.
</summary>
<returns>A string represents of the state of this <see cref="T:J2N.IO.DoubleBuffer"/>.</returns>
</member>
<member name="T:J2N.IO.DoubleToByteBufferAdapter">
<summary>
This class wraps a byte buffer to be a <see cref="T:System.Double"/> buffer.
<para/>
Implementation notice:
<list type="bullet">
<item><description>After a byte buffer instance is wrapped, it becomes privately owned by
the adapter. It must NOT be accessed outside the adapter any more.</description></item>
<item><description>The byte buffer's position and limit are NOT linked with the adapter.
The adapter extends <see cref="T:J2N.IO.Buffer"/>, thus has its own position and limit.</description></item>
</list>
</summary>
</member>
<member name="T:J2N.IO.Endianness">
<summary>
Endianness
</summary>
</member>
<member name="F:J2N.IO.Endianness.LittleEndian">
<summary>
Read-only mapping mode.
</summary>
</member>
<member name="F:J2N.IO.Endianness.BigEndian">
<summary>
Private mapping mode (equivalent to copy on write).
</summary>
</member>
<member name="T:J2N.IO.HeapByteBuffer">
<summary>
<see cref="T:J2N.IO.HeapByteBuffer"/>, <see cref="T:J2N.IO.ReadWriteHeapByteBuffer"/> and <see cref="T:J2N.IO.ReadOnlyHeapByteBuffer"/> compose
the implementation of array based <see cref="T:System.Byte"/> buffers.
<para/>
<see cref="T:J2N.IO.HeapByteBuffer"/> implements all the shared readonly methods and is extended by
the other two classes.
<para/>
All methods are sealed for runtime performance.
</summary>
</member>
<member name="M:J2N.IO.HeapByteBuffer.Get(System.Byte[],System.Int32,System.Int32)">
<seealso cref="M:J2N.IO.ByteBuffer.Get(System.Byte[],System.Int32,System.Int32)"/>
</member>
<member name="T:J2N.IO.IDataInput">
<summary>
Defines an interface for classes that are able to read typed data from some
source. Typically, this data has been written by a class which implements
<see cref="T:J2N.IO.IDataOutput"/>. Types that can be read include byte, 16-bit short, 32-bit
int, 32-bit float, 64-bit long, 64-bit double, byte strings, and MUTF-8
strings.
<para/>
<h3>MUTF-8 (Modified UTF-8) Encoding</h3>
<para/>
When encoding strings as UTF, implementations of <see cref="T:J2N.IO.IDataInput"/> and
<see cref="T:J2N.IO.IDataOutput"/> use a slightly modified form of UTF-8, hereafter referred
to as MUTF-8. This form is identical to standard UTF-8, except:
<list type="bullet">
<item><description>Only the one-, two-, and three-byte encodings are used.</description></item>
<item><description>Code points in the range <code>U+10000</code> &#8230;
<code>U+10ffff</code> are encoded as a surrogate pair, each of which is
represented as a three-byte encoded value.</description></item>
<item><description>The code point <code>U+0000</code> is encoded in two-byte form.</description></item>
</list>
<para/>
Please refer to <a href="http://unicode.org">The Unicode Standard</a> for
further information about character encoding. MUTF-8 is actually closer to
the (relatively less well-known) encoding <a
href="http://www.unicode.org/reports/tr26/">CESU-8</a> than to UTF-8 per se.
<para/>
Equivalent to Java's DataInput interface
</summary>
<seealso cref="T:J2N.IO.DataInputStream"/>
</member>
<member name="M:J2N.IO.IDataInput.ReadBoolean">
<summary>
Reads a boolean.
</summary>
<returns>The next boolean value.</returns>
<exception cref="T:System.IO.EndOfStreamException">If the end of the input is reached before the read
request can be satisfied.</exception>
<exception cref="T:System.IO.IOException">If an I/O error occurs while reading.</exception>
<seealso cref="M:J2N.IO.IDataOutput.WriteBoolean(System.Boolean)"/>
</member>
<member name="M:J2N.IO.IDataInput.ReadSByte">
<summary>
Reads an 8-bit byte value and returns it as an <see cref="T:System.Int32"/>.
<para/>
NOTE: This was readByte() in Java
</summary>
<returns>The next 8-bit <see cref="T:System.Byte"/> value.</returns>
<exception cref="T:System.IO.EndOfStreamException">If the end of the input is reached before the read
request can be satisfied.</exception>
<exception cref="T:System.IO.IOException">If an I/O error occurs while reading.</exception>
<seealso cref="M:J2N.IO.IDataOutput.WriteByte(System.Int32)"/>
</member>
<member name="M:J2N.IO.IDataInput.ReadByte">
<summary>
Reads an unsigned 8-bit <see cref="T:System.Byte"/> value and returns it as an <see cref="T:System.Int32"/>.
<para/>
NOTE: This was readUnsignedByte() in Java
</summary>
<returns>The next unsigned <see cref="T:System.Byte"/> value.</returns>
<exception cref="T:System.IO.EndOfStreamException">If the end of the input is reached before the read
request can be satisfied.</exception>
<exception cref="T:System.IO.IOException">If an I/O error occurs while reading.</exception>
<seealso cref="M:J2N.IO.IDataOutput.WriteByte(System.Int32)"/>
</member>
<member name="M:J2N.IO.IDataInput.ReadChar">
<summary>
Reads a 16-bit character value.
</summary>
<returns>The next <see cref="T:System.Char"/> value.</returns>
<exception cref="T:System.IO.EndOfStreamException">If the end of the input is reached before the read
request can be satisfied.</exception>
<exception cref="T:System.IO.IOException">If an I/O error occurs while reading.</exception>
<seealso cref="M:J2N.IO.IDataOutput.WriteChar(System.Int32)"/>
</member>
<member name="M:J2N.IO.IDataInput.ReadDouble">
<summary>
Reads a 64-bit <see cref="T:System.Double"/> value.
</summary>
<returns>The next <see cref="T:System.Double"/> value.</returns>
<exception cref="T:System.IO.EndOfStreamException">If the end of the input is reached before the read
request can be satisfied.</exception>
<exception cref="T:System.IO.IOException">If an I/O error occurs while reading.</exception>
<seealso cref="M:J2N.IO.IDataOutput.WriteDouble(System.Double)"/>
</member>
<member name="M:J2N.IO.IDataInput.ReadSingle">
<summary>
Reads a 32-bit <see cref="T:System.Single"/> value.
<para/>
NOTE: This was readFloat() in Java
</summary>
<returns>The next <see cref="T:System.Single"/> value.</returns>
<exception cref="T:System.IO.EndOfStreamException">If the end of the input is reached before the read
request can be satisfied.</exception>
<exception cref="T:System.IO.IOException">If an I/O error occurs while reading.</exception>
<seealso cref="M:J2N.IO.IDataOutput.WriteSingle(System.Single)"/>
</member>
<member name="M:J2N.IO.IDataInput.ReadFully(System.Byte[])">
<summary>
Reads bytes into the byte array <paramref name="buffer"/>. This method will block
until <c><paramref name="buffer"/>.Length</c> number of bytes have been read.
</summary>
<param name="buffer">The buffer to read bytes into.</param>
<exception cref="T:System.IO.EndOfStreamException">If the end of the input is reached before the read
request can be satisfied.</exception>
<exception cref="T:System.IO.IOException">If an I/O error occurs while reading.</exception>
<exception cref="T:System.ArgumentNullException">If <paramref name="buffer"/> is <c>null</c>.</exception>
<seealso cref="M:J2N.IO.IDataOutput.Write(System.Byte[])"/>
<seealso cref="M:J2N.IO.IDataOutput.Write(System.Byte[],System.Int32,System.Int32)"/>
</member>
<member name="M:J2N.IO.IDataInput.ReadFully(System.Byte[],System.Int32,System.Int32)">
<summary>
Reads bytes and stores them in the byte array <paramref name="buffer"/> starting at
offset <paramref name="offset"/>. This method blocks until <paramref name="count"/> number of
bytes have been read.
</summary>
<param name="buffer">The byte array in which to store the bytes read.</param>
<param name="offset">The initial position in <paramref name="buffer"/> to store the bytes
read.</param>
<param name="count">The maximum number of bytes to store in <paramref name="buffer"/>.</param>
<exception cref="T:System.IO.EndOfStreamException">If the end of the input is reached before the read
request can be satisfied.</exception>
<exception cref="T:System.IO.IOException">If an I/O error occurs while reading.</exception>
<exception cref="T:System.ArgumentNullException">If <paramref name="buffer"/> is <c>null</c>.</exception>
<seealso cref="M:J2N.IO.IDataOutput.Write(System.Byte[])"/>
<seealso cref="M:J2N.IO.IDataOutput.Write(System.Byte[],System.Int32,System.Int32)"/>
</member>
<member name="M:J2N.IO.IDataInput.ReadInt16">
<summary>
NOTE: This was readShort() in Java
</summary>
</member>
<member name="M:J2N.IO.IDataInput.ReadUInt16">
<summary>
Reads a 16-bit <see cref="T:System.UInt16"/> value.
<para/>
NOTE: This was readUnsignedShort() in Java
</summary>
<returns>The next <see cref="T:System.UInt16"/> value.</returns>
</member>
<member name="M:J2N.IO.IDataInput.ReadInt32">
<summary>
Reads a 32-bit integer value.
<para/>
NOTE: This was readInt() in Java
</summary>
<returns>The next <see cref="T:System.Int32"/> value.</returns>
<exception cref="T:System.IO.EndOfStreamException">If the end of the input is reached before the read
request can be satisfied.</exception>
<exception cref="T:System.IO.IOException">If an I/O error occurs while reading.</exception>
<seealso cref="M:J2N.IO.IDataOutput.WriteInt32(System.Int32)"/>
</member>
<member name="M:J2N.IO.IDataInput.ReadInt64">
<summary>
Reads a 64-bit <see cref="T:System.Int64"/> value.
<para/>
NOTE: This was readLong() in Java
</summary>
<returns>The next <see cref="T:System.Int64"/> value.</returns>
<exception cref="T:System.IO.EndOfStreamException">If the end of the input is reached before the read
request can be satisfied.</exception>
<exception cref="T:System.IO.IOException">If an I/O error occurs while reading.</exception>
<seealso cref="M:J2N.IO.IDataOutput.WriteInt64(System.Int64)"/>
</member>
<member name="M:J2N.IO.IDataInput.ReadLine">
<summary>
Returns a string containing the next line of text available from this
stream. A line is made of zero or more characters followed by
<c>'\n'</c>, <c>'\r'</c>, <c>"\r\n"</c> or the end of the stream. The string
does not include the newline sequence.
</summary>
<returns>The contents of the line or <c>null</c> if no characters have been read
before the end of the stream.</returns>
<exception cref="T:System.IO.EndOfStreamException">If the end of the input is reached before the read
request can be satisfied.</exception>
<exception cref="T:System.IO.IOException">If an I/O error occurs while reading.</exception>
</member>
<member name="M:J2N.IO.IDataInput.ReadUTF">
<summary>
Reads a string encoded with <see cref="T:J2N.IO.IDataInput"/> modified UTF-8.
</summary>
<returns>The next string encoded with <see cref="T:J2N.IO.IDataInput"/> modified UTF-8.</returns>
<exception cref="T:System.IO.EndOfStreamException">If the end of the input is reached before the read
request can be satisfied.</exception>
<exception cref="T:System.IO.IOException">If an I/O error occurs while reading.</exception>
<seealso cref="M:J2N.IO.IDataOutput.WriteUTF(System.String)"/>
</member>
<member name="M:J2N.IO.IDataInput.SkipBytes(System.Int32)">
<summary>
Skips <paramref name="count"/> number of bytes. This method will not throw an
<see cref="T:System.IO.EndOfStreamException"/> if the end of the input is reached before
<paramref name="count"/> bytes were skipped.
</summary>
<param name="count">The number of bytes to skip.</param>
<returns>The number of bytes actually skipped.</returns>
<exception cref="T:System.IO.IOException">If an I/O error occurs while reading.</exception>
</member>
<member name="T:J2N.IO.IDataOutput">
<summary>
Defines an interface for classes that are able to write typed data to some
target. Typically, this data can be read in by a class which implements
DataInput. Types that can be written include byte, 16-bit short, 32-bit int,
32-bit float, 64-bit long, 64-bit double, byte strings, and DataInput MUTF-8
encoded strings.
<para/>
Equivalent to Java's DataOutut interface.
</summary>
<seealso cref="T:J2N.IO.DataOutputStream"/>
</member>
<member name="M:J2N.IO.IDataOutput.Write(System.Byte[])">
<summary>
Writes the entire contents of the byte array <paramref name="buffer"/> to this
stream.
</summary>
<param name="buffer">The buffer to write.</param>
<exception cref="T:System.IO.IOException">If an I/O error occurs while writing.</exception>
<seealso cref="M:J2N.IO.IDataInput.ReadFully(System.Byte[])"/>
<seealso cref="M:J2N.IO.IDataInput.ReadFully(System.Byte[],System.Int32,System.Int32)"/>
</member>
<member name="M:J2N.IO.IDataOutput.Write(System.Byte[],System.Int32,System.Int32)">
<summary>
Writes <paramref name="count"/> bytes from the byte array <paramref name="buffer"/> starting at
<paramref name="offset"/>.
</summary>
<param name="buffer">The buffer to write.</param>
<param name="offset">The index of the first byte in <paramref name="buffer"/> to write.</param>
<param name="count">The number of bytes from the <paramref name="buffer"/> to write.</param>
<exception cref="T:System.IO.IOException">If an I/O error occurs while writing.</exception>
<seealso cref="M:J2N.IO.IDataInput.ReadFully(System.Byte[])"/>
<seealso cref="M:J2N.IO.IDataInput.ReadFully(System.Byte[],System.Int32,System.Int32)"/>
</member>
<member name="M:J2N.IO.IDataOutput.Write(System.Int32)">
<summary>
Writes the specified 8-bit <see cref="T:System.Byte"/>.
</summary>
<param name="oneByte">The <see cref="T:System.Byte"/> to write.</param>
<exception cref="T:System.IO.IOException">If an I/O error occurs while writing.</exception>
<seealso cref="M:J2N.IO.IDataInput.ReadByte"/>
</member>
<member name="M:J2N.IO.IDataOutput.WriteBoolean(System.Boolean)">
<summary>
Writes the specified <see cref="T:System.Boolean"/>.
</summary>
<param name="value">The boolean value to write.</param>
<exception cref="T:System.IO.IOException">If an I/O error occurs while writing.</exception>
<seealso cref="M:J2N.IO.IDataInput.ReadBoolean"/>
</member>
<member name="M:J2N.IO.IDataOutput.WriteByte(System.Int32)">
<summary>
Writes the specified 8-bit <see cref="T:System.Byte"/>.
</summary>
<param name="value">The <see cref="T:System.Byte"/> value to write.</param>
<exception cref="T:System.IO.IOException">If an I/O error occurs while writing.</exception>
<seealso cref="M:J2N.IO.IDataInput.ReadByte"/>
<seealso cref="M:J2N.IO.IDataInput.ReadUInt16"/>
</member>
<member name="M:J2N.IO.IDataOutput.WriteBytes(System.String)">
<summary>
Writes the low order 8-bit bytes from the specified string.
</summary>
<param name="value">The string containing the bytes to write.</param>
<exception cref="T:System.IO.IOException">If an I/O error occurs while writing.</exception>
<seealso cref="M:J2N.IO.IDataInput.ReadFully(System.Byte[])"/>
<seealso cref="M:J2N.IO.IDataInput.ReadFully(System.Byte[],System.Int32,System.Int32)"/>
</member>
<member name="M:J2N.IO.IDataOutput.WriteChar(System.Int32)">
<summary>
Writes the specified 16-bit character. Only the two least significant
bytes of the integer <paramref name="value"/> are written, with the higher one
written first. This represents the Unicode value of the char.
</summary>
<param name="value">The character to write.</param>
<exception cref="T:System.IO.IOException">If an I/O error occurs while writing.</exception>
<seealso cref="M:J2N.IO.IDataInput.ReadChar"/>
</member>
<member name="M:J2N.IO.IDataOutput.WriteChars(System.String)">
<summary>
Writes the 16-bit characters contained in <paramref name="str"/>.
</summary>
<param name="str">The string that contains the characters to write.</param>
<exception cref="T:System.IO.IOException">If an I/O error occurs while writing.</exception>
<seealso cref="M:J2N.IO.IDataInput.ReadChar"/>
</member>
<member name="M:J2N.IO.IDataOutput.WriteDouble(System.Double)">
<summary>
Writes the specified 64-bit <see cref="T:System.Double"/>. The resulting output is the eight
bytes returned by <see cref="M:J2N.BitConversion.DoubleToInt64Bits(System.Double)"/>.
</summary>
<param name="value">The <see cref="T:System.Double"/> to write.</param>
<exception cref="T:System.IO.IOException">If an I/O error occurs while writing.</exception>
<seealso cref="M:J2N.IO.IDataInput.ReadDouble"/>
</member>
<member name="M:J2N.IO.IDataOutput.WriteSingle(System.Single)">
<summary>
Writes the specified 32-bit <see cref="T:System.Single"/>. The resulting output is the four bytes
returned by <see cref="M:J2N.BitConversion.Int32BitsToSingle(System.Int32)"/>.
<para/>
NOTE: This was writeFloat() in Java
</summary>
<param name="value">The <see cref="T:System.Single"/> to write.</param>
<exception cref="T:System.IO.IOException">If an I/O error occurs while writing.</exception>
<seealso cref="M:J2N.IO.IDataInput.ReadSingle"/>
</member>
<member name="M:J2N.IO.IDataOutput.WriteInt32(System.Int32)">
<summary>
Writes the specified 32-bit <see cref="T:System.Int32"/>. The resulting output is the four bytes,
highest order first, of <paramref name="value"/>.
<para/>
NOTE: This was writeInt() in Java
</summary>
<param name="value">The <see cref="T:System.Int32"/> to write.</param>
<exception cref="T:System.IO.IOException">If an I/O error occurs while writing.</exception>
<seealso cref="M:J2N.IO.IDataInput.ReadInt32"/>
</member>
<member name="M:J2N.IO.IDataOutput.WriteInt64(System.Int64)">
<summary>
Writes the specified 64-bit <see cref="T:System.Int64"/>. The resulting output is the eight
bytes, highest order first, of <paramref name="value"/>.
<para/>
NOTE: This was writeInt64() in Java
</summary>
<param name="value">The <see cref="T:System.Int64"/> to write.</param>
<exception cref="T:System.IO.IOException">If an I/O error occurs while writing.</exception>
<seealso cref="M:J2N.IO.IDataInput.ReadInt64"/>
</member>
<member name="M:J2N.IO.IDataOutput.WriteInt16(System.Int32)">
<summary>
Writes the specified 16-bit <see cref="T:System.Int16"/>. Only the lower two bytes of <paramref name="value"/>
are written with the higher one written first.
<para/>
NOTE: This was writeShort() in Java
</summary>
<param name="value">The <see cref="T:System.Int16"/> to write.</param>
<exception cref="T:System.IO.IOException">If an I/O error occurs while writing.</exception>
<seealso cref="M:J2N.IO.IDataInput.ReadInt16"/>
<seealso cref="M:J2N.IO.IDataInput.ReadUInt16"/>
</member>
<member name="M:J2N.IO.IDataOutput.WriteUTF(System.String)">
<summary>
Writes the specified <see cref="T:System.String"/> encoded in DataInput modified UTF-8.
</summary>
<param name="value">The <see cref="T:System.String"/> to write encoded in DataInput modified UTF-8.</param>
<exception cref="T:System.IO.IOException">If an I/O error occurs while writing.</exception>
<seealso cref="M:J2N.IO.IDataInput.ReadUTF"/>
</member>
<member name="T:J2N.IO.Int16ArrayBuffer">
<summary>
<see cref="T:J2N.IO.Int16ArrayBuffer"/>, <see cref="T:J2N.IO.ReadWriteInt16ArrayBuffer"/> and <see cref="T:J2N.IO.ReadOnlyInt16ArrayBuffer"/>
compose the implementation of array based <see cref="T:System.Int16"/> buffers.
<para/>
<see cref="T:J2N.IO.Int16ArrayBuffer"/> implements all the shared readonly methods and is extended
by the other two classes.
<para/>
All methods are marked sealed for runtime performance.
</summary>
</member>
<member name="T:J2N.IO.Int16Buffer">
<summary>
A buffer of <see cref="T:System.Int16"/>s.
<para/>
A short buffer can be created in either of the following ways:
<list type="bullet">
<item><description><see cref="M:J2N.IO.Int16Buffer.Allocate(System.Int32)"/> a new <see cref="T:System.Int16"/> array and create a buffer
based on it</description></item>
<item><description><see cref="M:J2N.IO.Int16Buffer.Wrap(System.Int16[])"/> an existing <see cref="T:System.Int16"/> array to create a new
buffer</description></item>
<item><description>Use <see cref="M:J2N.IO.ByteBuffer.AsInt16Buffer"/> to create a <see cref="T:System.Int16"/>
buffer based on a byte buffer.</description></item>
</list>
</summary>
</member>
<member name="M:J2N.IO.Int16Buffer.Allocate(System.Int32)">
<summary>
Creates a <see cref="T:J2N.IO.Int16Buffer"/> based on a newly allocated <see cref="T:System.Int16"/> array.
</summary>
<param name="capacity">The capacity of the new buffer.</param>
<returns>The created <see cref="T:J2N.IO.Int16Buffer"/>.</returns>
<exception cref="T:System.ArgumentOutOfRangeException">If <paramref name="capacity"/> is less than zero.</exception>
</member>
<member name="M:J2N.IO.Int16Buffer.Wrap(System.Int16[])">
<summary>
Creates a new <see cref="T:J2N.IO.Int16Buffer"/> by wrapping the given <see cref="T:System.Int16"/> array.
<para/>
Calling this method has the same effect as
<c>Wrap(array, 0, array.Length)</c>.
</summary>
<param name="array">The <see cref="T:System.Int16"/> array which the new buffer will be based on.</param>
<returns>The created <see cref="T:J2N.IO.Int16Buffer"/>.</returns>
<exception cref="T:System.ArgumentNullException">If <paramref name="array"/> is <c>null</c>.</exception>
</member>
<member name="M:J2N.IO.Int16Buffer.Wrap(System.Int16[],System.Int32,System.Int32)">
<summary>
Creates a new <see cref="T:J2N.IO.Int16Buffer"/> by wrapping the given <see cref="T:System.Int16"/> array.
<para/>
The new buffer's position will be <paramref name="startIndex"/>, limit will be
<c>start + length</c>, capacity will be the length of the array.
</summary>
<param name="array">The <see cref="T:System.Int16"/> array which the new buffer will be based on.</param>
<param name="startIndex">The start index, must not be negative and not greater than <c>array.Length</c>.</param>
<param name="length">The length, must not be negative and not greater than <c>array.Length - start</c>.</param>
<returns>The created <see cref="T:J2N.IO.Int16Buffer"/>.</returns>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="startIndex"/> plus <paramref name="length"/> indicates a position not within this instance.
<para/>
-or-
<para/>
<paramref name="startIndex"/> or <paramref name="length"/> is less than zero.
</exception>
<exception cref="T:System.ArgumentNullException">If <paramref name="array"/> is <c>null</c>.</exception>
</member>
<member name="M:J2N.IO.Int16Buffer.#ctor(System.Int32)">
<summary>
Constructs a <see cref="T:J2N.IO.Int16Buffer"/> with given <paramref name="capacity"/>.
</summary>
<param name="capacity">The capacity of the buffer.</param>
</member>
<member name="P:J2N.IO.Int16Buffer.Array">
<summary>
Returns the <see cref="T:System.Int16"/> array which this buffer is based on, if there is one.
</summary>
<exception cref="T:J2N.IO.ReadOnlyBufferException">If this buffer is based on an array, but it is read-only.</exception>
<exception cref="T:System.NotSupportedException">If this buffer is not based on an array.</exception>
</member>
<member name="P:J2N.IO.Int16Buffer.ArrayOffset">
<summary>
Returns the offset of the <see cref="T:System.Int16"/> array which this buffer is based on, if
there is one.
<para/>
The offset is the index of the array corresponding to the zero position
of the buffer.
</summary>
<exception cref="T:J2N.IO.ReadOnlyBufferException">If this buffer is based on an array, but it is read-only.</exception>
<exception cref="T:System.NotSupportedException">If this buffer is not based on an array.</exception>
</member>
<member name="M:J2N.IO.Int16Buffer.AsReadOnlyBuffer">
<summary>
Returns a read-only buffer that shares its content with this buffer.
<para/>
The returned buffer is guaranteed to be a new instance, even if this
buffer is read-only itself. The new buffer's position, limit, capacity
and mark are the same as this buffer's.
<para/>
The new buffer shares its content with this buffer, which means this
buffer's change of content will be visible to the new buffer. The two
buffer's position, limit and mark are independent.
</summary>
<returns>A read-only version of this buffer.</returns>
</member>
<member name="M:J2N.IO.Int16Buffer.Compact">
<summary>
Compacts this <see cref="T:J2N.IO.Int16Buffer"/>.
<para/>
The remaining <see cref="T:System.Int16"/>s will be moved to the head of the buffer, starting
from position zero. Then the position is set to <see cref="P:J2N.IO.Buffer.Remaining"/>; the
limit is set to capacity; the mark is cleared.
</summary>
<returns>This buffer.</returns>
<exception cref="T:J2N.IO.ReadOnlyBufferException">If no changes may be made to the contents of this buffer.</exception>
</member>
<member name="M:J2N.IO.Int16Buffer.CompareTo(J2N.IO.Int16Buffer)">
<summary>
Compare the remaining <see cref="T:System.Int16"/>s of this buffer to another <see cref="T:J2N.IO.Int16Buffer"/>'s
remaining <see cref="T:System.Int16"/>s.
</summary>
<param name="other">Another <see cref="T:J2N.IO.Int16Buffer"/>.</param>
<returns>A negative value if this is less than <paramref name="other"/>; 0 if
this equals to <paramref name="other"/>; a positive value if this is
greater than <paramref name="other"/>.</returns>
</member>
<member name="M:J2N.IO.Int16Buffer.Duplicate">
<summary>
Returns a duplicated buffer that shares its content with this buffer.
<para/>
The duplicated buffer's position, limit, capacity and mark are the same
as this buffer. The duplicated buffer's read-only property and byte order
are the same as this buffer's.
<para/>
The new buffer shares its content with this buffer, which means either
buffer's change of content will be visible to the other. The two buffer's
position, limit and mark are independent.
</summary>
<returns>A duplicated buffer that shares its content with this buffer.</returns>
</member>
<member name="M:J2N.IO.Int16Buffer.Equals(System.Object)">
<summary>
Checks whether this <see cref="T:System.Int16"/> buffer is equal to another object.
<para/>
If <paramref name="other"/> is not a <see cref="T:System.Int16"/> buffer then <c>false</c> is returned.
Two <see cref="T:J2N.IO.Int16Buffer"/>s are equal if and only if their remaining <see cref="T:System.Int16"/>s are
exactly the same. Position, limit, capacity and mark are not considered.
</summary>
<param name="other">The object to compare with this <see cref="T:J2N.IO.Int16Buffer"/>.</param>
<returns><c>true</c> if this <see cref="T:J2N.IO.Int16Buffer"/> is equal to <paramref name="other"/>, <c>false</c> otherwise.</returns>
</member>
<member name="M:J2N.IO.Int16Buffer.Get">
<summary>
Returns the <see cref="T:System.Int16"/> at the current position and increases the position by
1.
</summary>
<returns>The <see cref="T:System.Int16"/> at the current position.</returns>
<exception cref="T:J2N.IO.BufferUnderflowException">If the position is equal or greater than limit.</exception>
</member>
<member name="M:J2N.IO.Int16Buffer.Get(System.Int16[])">
<summary>
Reads <see cref="T:System.Int16"/>s from the current position into the specified <see cref="T:System.Int16"/> array and
increases the position by the number of <see cref="T:System.Int16"/>s read.
<para/>
Calling this method has the same effect as
<c>Get(destination, 0, destination.Length)</c>.
</summary>
<param name="destination">The destination <see cref="T:System.Int16"/> array.</param>
<returns>This buffer.</returns>
<exception cref="T:J2N.IO.BufferUnderflowException">If <c>destination.Length</c> is greater than <see cref="P:J2N.IO.Buffer.Remaining"/>.</exception>
<exception cref="T:System.ArgumentNullException">If <paramref name="destination"/> is <c>null</c>.</exception>
</member>
<member name="M:J2N.IO.Int16Buffer.Get(System.Int16[],System.Int32,System.Int32)">
<summary>
Reads <see cref="T:System.Int16"/>s from the current position into the specified <see cref="T:System.Int16"/> array,
starting from the specified offset, and increases the position by the
number of <see cref="T:System.Int16"/>s read.
</summary>
<param name="destination">The target <see cref="T:System.Int16"/> array.</param>
<param name="offset">The offset of the <see cref="T:System.Int16"/> array, must not be negative and not
greater than <c>destination.Length</c>.</param>
<param name="length">The number of <see cref="T:System.Int16"/>s to read, must be no less than zero and
not greater than <c>destination.Length - offset</c>.</param>
<returns>This buffer.</returns>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="offset"/> plus <paramref name="length"/> indicates a position not within this instance.
<para/>
-or-
<para/>
<paramref name="offset"/> or <paramref name="length"/> is less than zero.
</exception>
<exception cref="T:J2N.IO.BufferUnderflowException">If <paramref name="length"/> is greater than <see cref="P:J2N.IO.Buffer.Remaining"/>.</exception>
<exception cref="T:System.ArgumentNullException">If <paramref name="destination"/> is <c>null</c>.</exception>
</member>
<member name="M:J2N.IO.Int16Buffer.Get(System.Int32)">
<summary>
Returns the <see cref="T:System.Int16"/> at the specified <paramref name="index"/>; the position is not changed.
</summary>
<param name="index">The index, must not be negative and less than limit.</param>
<returns>A <see cref="T:System.Int16"/> at the specified <paramref name="index"/>.</returns>
<exception cref="T:System.ArgumentOutOfRangeException">If index is invalid.</exception>
</member>
<member name="P:J2N.IO.Int16Buffer.HasArray">
<summary>
Indicates whether this buffer is based on a <see cref="T:System.Int16"/> array and is
read/write.
<para/>
Returns <c>true</c> if this buffer is based on a <see cref="T:System.Int16"/> array and
provides read/write access, <c>false</c> otherwise.
</summary>
</member>
<member name="M:J2N.IO.Int16Buffer.GetHashCode">
<summary>
Calculates this buffer's hash code from the remaining chars. The
position, limit, capacity and mark don't affect the hash code.
</summary>
<returns>The hash code calculated from the remaining <see cref="T:System.Int16"/>s.</returns>
</member>
<member name="P:J2N.IO.Int16Buffer.Order">
<summary>
Returns the byte order used by this buffer when converting <see cref="T:System.Int16"/>s from/to
bytes.
<para/>
If this buffer is not based on a byte buffer, then always return the
platform's native byte order.
</summary>
</member>
<member name="P:J2N.IO.Int16Buffer.ProtectedArray">
<summary>
Child class implements this method to realize <see cref="P:J2N.IO.Int16Buffer.Array"/>.
</summary>
<seealso cref="P:J2N.IO.Int16Buffer.Array"/>
</member>
<member name="P:J2N.IO.Int16Buffer.ProtectedArrayOffset">
<summary>
Child class implements this method to realize <see cref="P:J2N.IO.Int16Buffer.ArrayOffset"/>.
</summary>
<seealso cref="P:J2N.IO.Int16Buffer.ArrayOffset"/>
</member>
<member name="P:J2N.IO.Int16Buffer.ProtectedHasArray">
<summary>
Child class implements this method to realize <see cref="P:J2N.IO.Int16Buffer.HasArray"/>.
</summary>
<seealso cref="P:J2N.IO.Int16Buffer.HasArray"/>
</member>
<member name="M:J2N.IO.Int16Buffer.Put(System.Int16)">
<summary>
Writes the given <see cref="T:System.Int16"/> to the current position and increases the position
by 1.
</summary>
<param name="value">The <see cref="T:System.Int16"/> to write.</param>
<returns>This buffer.</returns>
<exception cref="T:J2N.IO.BufferOverflowException">If position is equal or greater than limit.</exception>
<exception cref="T:J2N.IO.ReadOnlyBufferException">If no changes may be made to the contents of this buffer.</exception>
</member>
<member name="M:J2N.IO.Int16Buffer.Put(System.Int16[])">
<summary>
Writes <see cref="T:System.Int16"/>s from the given <see cref="T:System.Int16"/> array to the current position and
increases the position by the number of <see cref="T:System.Int16"/>s written.
<para/>
Calling this method has the same effect as
<c>Put(source, 0, source.Length)</c>.
</summary>
<param name="source">The source <see cref="T:System.Int16"/> array.</param>
<returns>This buffer.</returns>
<exception cref="T:J2N.IO.BufferOverflowException">If <see cref="P:J2N.IO.Buffer.Remaining"/> is less than <c>source.Length</c>.</exception>
<exception cref="T:J2N.IO.ReadOnlyBufferException">If no changes may be made to the contents of this buffer.</exception>
<exception cref="T:System.ArgumentNullException">If <paramref name="source"/> is <c>null</c>.</exception>
</member>
<member name="M:J2N.IO.Int16Buffer.Put(System.Int16[],System.Int32,System.Int32)">
<summary>
Writes <see cref="T:System.Int16"/>s from the given <see cref="T:System.Int16"/> array, starting from the specified
offset, to the current position and increases the position by the number
of <see cref="T:System.Int16"/>s written.
</summary>
<param name="source">The source <see cref="T:System.Int16"/> array.</param>
<param name="offset">The offset of <see cref="T:System.Int16"/> array, must not be negative and not
greater than <c>source.Length</c>.</param>
<param name="length">The number of <see cref="T:System.Int16"/>s to write, must be no less than zero and
not greater than <c>source.Length - offset</c>.</param>
<returns>This buffer.</returns>
<exception cref="T:J2N.IO.BufferOverflowException">If <see cref="P:J2N.IO.Buffer.Remaining"/>is less than <paramref name="length"/>.</exception>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="offset"/> plus <paramref name="length"/> indicates a position not within this instance.
<para/>
-or-
<para/>
<paramref name="offset"/> or <paramref name="length"/> is less than zero.
</exception>
<exception cref="T:J2N.IO.ReadOnlyBufferException">If no changes may be made to the contents of this buffer.</exception>
<exception cref="T:System.ArgumentNullException">If <paramref name="source"/> is <c>null</c>.</exception>
</member>
<member name="M:J2N.IO.Int16Buffer.Put(J2N.IO.Int16Buffer)">
<summary>
Writes all the remaining <see cref="T:System.Int16"/>s of the <paramref name="source"/> <see cref="T:J2N.IO.Int16Buffer"/> to this
buffer's current position, and increases both buffers' position by the
number of <see cref="T:System.Int16"/>s copied.
</summary>
<param name="source">The source <see cref="T:J2N.IO.Int16Buffer"/>.</param>
<returns>This buffer.</returns>
<exception cref="T:J2N.IO.BufferOverflowException">If <c>source.Remaining</c> is greater than this buffer's <see cref="P:J2N.IO.Buffer.Remaining"/>.</exception>
<exception cref="T:System.ArgumentException">If <paramref name="source"/> is this buffer.</exception>
<exception cref="T:J2N.IO.ReadOnlyBufferException">If no changes may be made to the contents of this buffer.</exception>
<exception cref="T:System.ArgumentNullException">If <paramref name="source"/> is <c>null</c>.</exception>
</member>
<member name="M:J2N.IO.Int16Buffer.Put(System.Int32,System.Int16)">
<summary>
Writes a <see cref="T:System.Int16"/> to the specified <paramref name="index"/> of this buffer; the position is not
changed.
</summary>
<param name="index">The index, must not be negative and less than the limit.</param>
<param name="value">The <see cref="T:System.Int16"/> to write.</param>
<returns>This buffer.</returns>
<exception cref="T:System.ArgumentOutOfRangeException">If <paramref name="index"/> is invalid.</exception>
<exception cref="T:J2N.IO.ReadOnlyBufferException">If no changes may be made to the contents of this buffer.</exception>
</member>
<member name="M:J2N.IO.Int16Buffer.Slice">
<summary>
Returns a sliced buffer that shares its content with this buffer.
<para/>
The sliced buffer's capacity will be this buffer's <see cref="P:J2N.IO.Buffer.Remaining"/>,
and its zero position will correspond to this buffer's current position.
The new buffer's position will be 0, limit will be its capacity, and its
mark is cleared. The new buffer's read-only property and byte order are
same as this buffer's.
<para/>
The new buffer shares its content with this buffer, which means either
buffer's change of content will be visible to the other. The two buffer's
position, limit and mark are independent.
</summary>
<returns>A sliced buffer that shares its content with this buffer.</returns>
</member>
<member name="M:J2N.IO.Int16Buffer.ToString">
<summary>
Returns a string representing the state of this <see cref="T:J2N.IO.Int16Buffer"/>.
</summary>
<returns>A string representing the state of this <see cref="T:J2N.IO.Int16Buffer"/></returns>
</member>
<member name="T:J2N.IO.Int16ToByteBufferAdapter">
<summary>
This class wraps a byte buffer to be a <see cref="T:System.Int16"/> buffer.
<para/>
Implementation notice:
<list type="bullet">
<item><description>After a byte buffer instance is wrapped, it becomes privately owned by
the adapter. It must NOT be accessed outside the adapter any more.</description></item>
<item><description>The byte buffer's position and limit are NOT linked with the adapter.
The adapter extends <see cref="T:J2N.IO.Buffer"/>, thus has its own position and limit.</description></item>
</list>
</summary>
</member>
<member name="T:J2N.IO.Int32ArrayBuffer">
<summary>
<see cref="T:J2N.IO.Int32ArrayBuffer"/>, <see cref="T:J2N.IO.ReadWriteInt32ArrayBuffer"/> and <see cref="T:J2N.IO.ReadOnlyInt32ArrayBuffer"/> compose
the implementation of array based <see cref="T:System.Int32"/> buffers.
<para/>
<see cref="T:J2N.IO.Int32ArrayBuffer"/> implements all the shared readonly methods and is extended by
the other two classes.
<para/>
All methods are marked sealed for runtime performance.
</summary>
</member>
<member name="T:J2N.IO.Int32Buffer">
<summary>
A buffer of <see cref="T:System.Int32"/>s.
</summary>
<remarks>
A <see cref="T:System.Int32"/> buffer can be created in either of the following ways:
<list type="bullet">
<item><description><see cref="M:J2N.IO.Int32Buffer.Allocate(System.Int32)"/> a new <see cref="T:System.Int32"/> array and create a buffer based on it;</description></item>
<item><description><see cref="M:J2N.IO.Int32Buffer.Wrap(System.Int32[])"/> an existing <see cref="T:System.Int32"/> array to create a new buffer;</description></item>
<item><description>Use <see cref="M:J2N.IO.ByteBuffer.AsInt32Buffer"/> to create a <see cref="T:System.Int32"/> buffer based on a byte buffer.</description></item>
</list>
</remarks>
</member>
<member name="M:J2N.IO.Int32Buffer.Allocate(System.Int32)">
<summary>
Creates an <see cref="T:J2N.IO.Int32Buffer"/> based on a newly allocated <see cref="T:System.Int32"/> array.
</summary>
<param name="capacity">The capacity of the new buffer.</param>
<returns>The created <see cref="T:J2N.IO.Int32Buffer"/>.</returns>
<exception cref="T:System.ArgumentOutOfRangeException">If <paramref name="capacity"/> is less than zero.</exception>
</member>
<member name="M:J2N.IO.Int32Buffer.Wrap(System.Int32[])">
<summary>
Creates a new <see cref="T:J2N.IO.Int32Buffer"/> by wrapping the given <see cref="T:System.Int32"/> array.
<para/>
Calling this method has the same effect as
<c>Wrap(array, 0, array.Length)</c>.
</summary>
<param name="array">The <see cref="T:System.Int32"/> array which the new buffer will be based on.</param>
<returns>The created <see cref="T:J2N.IO.Int32Buffer"/>.</returns>
<exception cref="T:System.ArgumentNullException">If <paramref name="array"/> is <c>null</c>.</exception>
</member>
<member name="M:J2N.IO.Int32Buffer.Wrap(System.Int32[],System.Int32,System.Int32)">
<summary>
Creates a new <see cref="T:J2N.IO.Int32Buffer"/> by wrapping the given <see cref="T:System.Int32"/> array.
<para/>
The new buffer's position will be <paramref name="startIndex"/>, limit will be
<c>startIndex + length</c>, capacity will be the length of the array.
</summary>
<param name="array">The <see cref="T:System.Int32"/> array which the new buffer will be based on.</param>
<param name="startIndex">The start index, must not be negative and not greater than
<c>array.Length</c>.</param>
<param name="length">The length, must not be negative and not greater than <c>array.Length - start</c>.</param>
<returns>The created <see cref="T:J2N.IO.Int32Buffer"/>.</returns>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="startIndex"/> plus <paramref name="length"/> indicates a position not within this instance.
<para/>
-or-
<para/>
<paramref name="startIndex"/> or <paramref name="length"/> is less than zero.
</exception>
<exception cref="T:System.ArgumentNullException">If <paramref name="array"/> is <c>null</c>.</exception>
</member>
<member name="M:J2N.IO.Int32Buffer.#ctor(System.Int32)">
<summary>
Constructs a <see cref="T:J2N.IO.Int32Buffer"/> with given capacity.
</summary>
<param name="capacity">The capacity of the buffer.</param>
</member>
<member name="P:J2N.IO.Int32Buffer.Array">
<summary>
Gets the <see cref="T:System.Int32"/> array which this buffer is based on, if there is one.
</summary>
<exception cref="T:J2N.IO.ReadOnlyBufferException">If this buffer is based on an array, but it is read-only.</exception>
<exception cref="T:System.NotSupportedException">If this buffer is not based on an array.</exception>
</member>
<member name="P:J2N.IO.Int32Buffer.ArrayOffset">
<summary>
Gets the offset of the <see cref="T:System.Int32"/> array which this buffer is based on, if
there is one.
<para/>
The offset is the index of the array corresponds to the zero position of
the buffer.
</summary>
<exception cref="T:J2N.IO.ReadOnlyBufferException">If this buffer is based on an array, but it is read-only.</exception>
<exception cref="T:System.NotSupportedException">If this buffer is not based on an array.</exception>
</member>
<member name="M:J2N.IO.Int32Buffer.AsReadOnlyBuffer">
<summary>
Returns a read-only buffer that shares its content with this buffer.
<para/>
The returned buffer is guaranteed to be a new instance, even this buffer
is read-only itself. The new buffer's position, limit, capacity and mark
are the same as this buffer's.
<para/>
The new buffer shares its content with this buffer, which means this
buffer's change of content will be visible to the new buffer. The two
buffer's position, limit and mark are independent.
</summary>
<returns>A read-only version of this buffer.</returns>
</member>
<member name="M:J2N.IO.Int32Buffer.Compact">
<summary>
Compacts this <see cref="T:J2N.IO.Int32Buffer"/>.
<para/>
The remaining <see cref="T:System.Int32"/>s will be moved to the head of the buffer, starting from
position zero. Then the position is set to <see cref="P:J2N.IO.Buffer.Remaining"/>; the
limit is set to capacity; the mark is cleared.
</summary>
<returns>This buffer.</returns>
<exception cref="T:J2N.IO.ReadOnlyBufferException">If no changes may be made to the contents of this buffer.</exception>
</member>
<member name="M:J2N.IO.Int32Buffer.CompareTo(J2N.IO.Int32Buffer)">
<summary>
Compares the remaining <see cref="T:System.Int32"/>s of this buffer to another <see cref="T:J2N.IO.Int32Buffer"/>'s
remaining <see cref="T:System.Int32"/>s.
</summary>
<param name="other">Another <see cref="T:J2N.IO.Int32Buffer"/>.</param>
<returns>a negative value if this is less than <paramref name="other"/>; 0 if this
equals to <paramref name="other"/>; a positive value if this is greater
than <paramref name="other"/>.</returns>
</member>
<member name="M:J2N.IO.Int32Buffer.Duplicate">
<summary>
Returns a duplicated buffer that shares its content with this buffer.
<para/>
The duplicated buffer's position, limit, capacity and mark are the same
as this buffer. The duplicated buffer's read-only property and byte order
are the same as this buffer's.
<para/>
The new buffer shares its content with this buffer, which means either
buffer's change of content will be visible to the other. The two buffer's
position, limit and mark are independent.
</summary>
<returns>A duplicated buffer that shares its content with this buffer.</returns>
</member>
<member name="M:J2N.IO.Int32Buffer.Equals(System.Object)">
<summary>
Checks whether this <see cref="T:J2N.IO.Int32Buffer"/> is equal to another object.
<para/>
If <paramref name="other"/> is not a <see cref="T:J2N.IO.Int32Buffer"/> then <c>false</c> is returned. Two
<see cref="T:J2N.IO.Int32Buffer"/>s are equal if and only if their remaining <see cref="T:System.Int32"/>s are exactly the
same. Position, limit, capacity and mark are not considered.
</summary>
<param name="other">The object to compare with this <see cref="T:J2N.IO.Int32Buffer"/>.</param>
<returns><c>true</c> if this <see cref="T:J2N.IO.Int32Buffer"/> is equal to <paramref name="other"/>,
<c>false</c> otherwise.</returns>
</member>
<member name="M:J2N.IO.Int32Buffer.Get">
<summary>
Returns the <see cref="T:System.Int32"/> at the current position and increases the position by 1.
</summary>
<returns>The <see cref="T:System.Int32"/> at the current position.</returns>
<exception cref="T:J2N.IO.BufferUnderflowException">If the position is equal or greater than limit.</exception>
</member>
<member name="M:J2N.IO.Int32Buffer.Get(System.Int32[])">
<summary>
Reads <see cref="T:System.Int32"/>s from the current position into the specified int array and
increases the position by the number of <see cref="T:System.Int32"/>s read.
<para/>
Calling this method has the same effect as
<c>Get(destination, 0, destination.Length)</c>.
</summary>
<param name="destination">The destination <see cref="T:System.Int32"/> array.</param>
<returns>This buffer.</returns>
<exception cref="T:J2N.IO.BufferUnderflowException">If <c>destination.Length</c> is greater than <see cref="P:J2N.IO.Buffer.Remaining"/>.</exception>
<exception cref="T:System.ArgumentNullException">If <paramref name="destination"/> is <c>null</c>.</exception>
</member>
<member name="M:J2N.IO.Int32Buffer.Get(System.Int32[],System.Int32,System.Int32)">
<summary>
Reads <see cref="T:System.Int32"/>s from the current position into the specified <see cref="T:System.Int32"/> array,
starting from the specified offset, and increases the position by the
number of <see cref="T:System.Int32"/>s read.
</summary>
<param name="destination">The target <see cref="T:System.Int32"/> array.</param>
<param name="offset">the offset of the <see cref="T:System.Int32"/> array, must not be negative and not
greater than <c>destination.Length</c>.</param>
<param name="length">The number of <see cref="T:System.Int32"/>s to read, must be no less than zero and not
greater than <c>destination.Length - offset</c>.</param>
<returns>This buffer.</returns>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="offset"/> plus <paramref name="length"/> indicates a position not within this instance.
<para/>
-or-
<para/>
<paramref name="offset"/> or <paramref name="length"/> is less than zero.
</exception>
<exception cref="T:J2N.IO.BufferUnderflowException">If <paramref name="length"/> is greater than <see cref="P:J2N.IO.Buffer.Remaining"/>.</exception>
<exception cref="T:System.ArgumentNullException">If <paramref name="destination"/> is <c>null</c>.</exception>
</member>
<member name="M:J2N.IO.Int32Buffer.Get(System.Int32)">
<summary>
Returns an <see cref="T:System.Int32"/> at the specified <paramref name="index"/>; the position is not changed.
</summary>
<param name="index">The index, must not be negative and less than limit.</param>
<returns>The <see cref="T:System.Int32"/> at the specified index.</returns>
<exception cref="T:System.ArgumentOutOfRangeException">If <paramref name="index"/> is invalid.</exception>
</member>
<member name="P:J2N.IO.Int32Buffer.HasArray">
<summary>
Indicates whether this buffer is based on a <see cref="T:System.Int32"/> array and is read/write.
<para/>
Returns <c>true</c> if this buffer is based on a <see cref="T:System.Int32"/> array and provides
read/write access, <c>false</c> otherwise.
</summary>
</member>
<member name="M:J2N.IO.Int32Buffer.GetHashCode">
<summary>
Calculates this buffer's hash code from the remaining chars. The
position, limit, capacity and mark don't affect the hash code.
</summary>
<returns>The hash code calculated from the remaining <see cref="T:System.Int32"/>s.</returns>
</member>
<member name="P:J2N.IO.Int32Buffer.Order">
<summary>
Gets the byte order used by this buffer when converting ints from/to
bytes.
<para/>
If this buffer is not based on a byte buffer, then always return the
platform's native byte order.
</summary>
</member>
<member name="P:J2N.IO.Int32Buffer.ProtectedArray">
<summary>
Child class implements this property to realize <see cref="P:J2N.IO.Int32Buffer.Array"/>.
</summary>
<seealso cref="P:J2N.IO.Int32Buffer.Array"/>
</member>
<member name="P:J2N.IO.Int32Buffer.ProtectedArrayOffset">
<summary>
Child class implements this property to realize <see cref="P:J2N.IO.Int32Buffer.ArrayOffset"/>.
</summary>
<seealso cref="P:J2N.IO.Int32Buffer.ArrayOffset"/>
</member>
<member name="P:J2N.IO.Int32Buffer.ProtectedHasArray">
<summary>
Child class implements this property to realize <see cref="P:J2N.IO.Int32Buffer.HasArray"/>.
</summary>
<seealso cref="P:J2N.IO.Int32Buffer.HasArray"/>
</member>
<member name="M:J2N.IO.Int32Buffer.Put(System.Int32)">
<summary>
Writes the given <see cref="T:System.Int32"/> to the current position and increases the position
by 1.
</summary>
<param name="source">The <see cref="T:System.Int32"/> to write.</param>
<returns>This buffer.</returns>
<exception cref="T:J2N.IO.BufferOverflowException">If position is equal or greater than limit.</exception>
<exception cref="T:J2N.IO.ReadOnlyBufferException">If no changes may be made to the contents of this buffer.</exception>
</member>
<member name="M:J2N.IO.Int32Buffer.Put(System.Int32[])">
<summary>
Writes <see cref="T:System.Int32"/>s from the given <see cref="T:System.Int32"/> array to the current position and
increases the position by the number of <see cref="T:System.Int32"/>s written.
<para/>
Calling this method has the same effect as
<c>Put(source, 0, source.Length)</c>.
</summary>
<param name="source">The source <see cref="T:System.Int32"/> array.</param>
<returns>This buffer.</returns>
<exception cref="T:J2N.IO.BufferOverflowException">If <see cref="P:J2N.IO.Buffer.Remaining"/> is less than <c>source.Length</c>.</exception>
<exception cref="T:J2N.IO.ReadOnlyBufferException">If no changes may be made to the contents of this buffer.</exception>
<exception cref="T:System.ArgumentNullException">If <paramref name="source"/> is <c>null</c>.</exception>
</member>
<member name="M:J2N.IO.Int32Buffer.Put(System.Int32[],System.Int32,System.Int32)">
<summary>
Writes <see cref="T:System.Int32"/>s from the given int array, starting from the specified offset,
to the current position and increases the position by the number of <see cref="T:System.Int32"/>s
written.
</summary>
<param name="source">The source <see cref="T:System.Int32"/> array.</param>
<param name="offset">The offset of <see cref="T:System.Int32"/> array, must not be negative and not greater than <c>source.Length</c>.</param>
<param name="length">The number of <see cref="T:System.Int32"/>s to write, must be no less than zero and not
greater than <c>source.Length - offset</c>.</param>
<returns>This buffer.</returns>
<exception cref="T:J2N.IO.BufferOverflowException">If <see cref="P:J2N.IO.Buffer.Remaining"/> is less than <paramref name="length"/>.</exception>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="offset"/> plus <paramref name="length"/> indicates a position not within this instance.
<para/>
-or-
<para/>
<paramref name="offset"/> or <paramref name="length"/> is less than zero.
</exception>
<exception cref="T:J2N.IO.ReadOnlyBufferException">If no changes may be made to the contents of this buffer.</exception>
<exception cref="T:System.ArgumentNullException">If <paramref name="source"/> is <c>null</c>.</exception>
</member>
<member name="M:J2N.IO.Int32Buffer.Put(J2N.IO.Int32Buffer)">
<summary>
Writes all the remaining <see cref="T:System.Int32"/>s of the <paramref name="source"/> <see cref="T:J2N.IO.Int32Buffer"/> to this
buffer's current position, and increases both buffers' position by the
number of <see cref="T:System.Int32"/>s copied.
</summary>
<param name="source">The source <see cref="T:J2N.IO.Int32Buffer"/>.</param>
<returns>This buffer.</returns>
<exception cref="T:J2N.IO.BufferOverflowException">If <c>source.Remaining</c> is greater than this buffer's <see cref="P:J2N.IO.Buffer.Remaining"/>.</exception>
<exception cref="T:System.ArgumentException">If <paramref name="source"/> is this buffer.</exception>
<exception cref="T:J2N.IO.ReadOnlyBufferException">If no changes may be made to the contents of this buffer.</exception>
<exception cref="T:System.ArgumentNullException">If <paramref name="source"/> is <c>null</c>.</exception>
</member>
<member name="M:J2N.IO.Int32Buffer.Put(System.Int32,System.Int32)">
<summary>
Write a <see cref="T:System.Int32"/> to the specified <paramref name="index"/> of this buffer; the position is not
changed.
</summary>
<param name="index">The index, must not be negative and less than the limit.</param>
<param name="value">The <see cref="T:System.Int32"/> to write.</param>
<returns>This buffer.</returns>
<exception cref="T:System.ArgumentOutOfRangeException">If <paramref name="index"/> is invalid.</exception>
<exception cref="T:J2N.IO.ReadOnlyBufferException">If no changes may be made to the contents of this buffer.</exception>
</member>
<member name="M:J2N.IO.Int32Buffer.Slice">
<summary>
Returns a sliced buffer that shares its content with this buffer.
<para/>
The sliced buffer's capacity will be this buffer's <see cref="P:J2N.IO.Buffer.Remaining"/>,
and its zero position will correspond to this buffer's current position.
The new buffer's position will be 0, limit will be its capacity, and its
mark is cleared. The new buffer's read-only property and byte order are
same as this buffer's.
<para/>
The new buffer shares its content with this buffer, which means either
buffer's change of content will be visible to the other. The two buffer's
position, limit and mark are independent.
</summary>
<returns>A sliced buffer that shares its content with this buffer.</returns>
</member>
<member name="M:J2N.IO.Int32Buffer.ToString">
<summary>
Returns a string represents of the state of this <see cref="T:J2N.IO.Int32Buffer"/>.
</summary>
<returns>A string represents of the state of this <see cref="T:J2N.IO.Int32Buffer"/>.</returns>
</member>
<member name="T:J2N.IO.Int32ToByteBufferAdapter">
<summary>
This class wraps a byte buffer to be a <see cref="T:System.Int32"/> buffer.
</summary>
<remarks>
Implementation notice:
<list type="bullet">
<item><description>
After a byte buffer instance is wrapped, it becomes privately owned by
the adapter. It must NOT be accessed outside the adapter any more.
</description></item>
<item><description>
The byte buffer's position and limit are NOT linked with the adapter.
The adapter extends <see cref="T:J2N.IO.Buffer"/>, thus has its own position and limit.
</description></item>
</list>
</remarks>
</member>
<member name="T:J2N.IO.Int64ArrayBuffer">
<summary>
<see cref="T:J2N.IO.Int64ArrayBuffer"/>, <see cref="T:J2N.IO.ReadWriteInt64ArrayBuffer"/> and <see cref="T:J2N.IO.ReadOnlyInt64ArrayBuffer"/> compose
the implementation of array based <see cref="T:System.Int64"/> buffers.
<para/>
<see cref="T:J2N.IO.Int64ArrayBuffer"/> implements all the shared readonly methods and is extended by
the other two classes.
<para/>
All methods are marked final for runtime performance.
</summary>
</member>
<member name="T:J2N.IO.Int64Buffer">
<summary>
A buffer of <see cref="T:System.Int64"/>s.
<para/>
A long buffer can be created in either of the following ways:
<list type="bullet">
<item><description><see cref="M:J2N.IO.Int64Buffer.Allocate(System.Int32)"/> a new long array and create a buffer
based on it</description></item>
<item><description><see cref="M:J2N.IO.Int64Buffer.Wrap(System.Int64[])"/> an existing long array to create a new
buffer</description></item>
<item><description>Use <see cref="M:J2N.IO.ByteBuffer.AsInt64Buffer"/> to create a <see cref="T:System.Int32"/>
buffer based on a byte buffer.</description></item>
</list>
</summary>
</member>
<member name="M:J2N.IO.Int64Buffer.Allocate(System.Int32)">
<summary>
Creates a long buffer based on a newly allocated long array.
</summary>
<param name="capacity">the capacity of the new buffer.</param>
<returns>the created long buffer.</returns>
<exception cref="T:System.ArgumentOutOfRangeException">if <paramref name="capacity"/> is less than zero.</exception>
</member>
<member name="M:J2N.IO.Int64Buffer.Wrap(System.Int64[])">
<summary>
Creates a new <see cref="T:System.Int64"/> buffer by wrapping the given <see cref="T:System.Int64"/> array.
<para/>
Calling this method has the same effect as
<c>Wrap(array, 0, array.Length)</c>.
</summary>
<param name="array">The <see cref="T:System.Int64"/> array which the new buffer will be based on.</param>
<returns>The created <see cref="T:System.Int64"/> buffer.</returns>
<exception cref="T:System.ArgumentNullException">If <paramref name="array"/> is <c>null</c>.</exception>
</member>
<member name="M:J2N.IO.Int64Buffer.Wrap(System.Int64[],System.Int32,System.Int32)">
<summary>
Creates a new <see cref="T:System.Int64"/> buffer by wrapping the given <see cref="T:System.Int64"/> array.
<para/>
The new buffer's position will be <paramref name="startIndex"/>, limit will be
<c><paramref name="startIndex"/> + <paramref name="length"/></c>, capacity will
be the length of the array.
</summary>
<param name="array">The <see cref="T:System.Int64"/> array which the new buffer will be based on.</param>
<param name="startIndex">The start index, must not be negative and not greater than <c>array.Length</c>.</param>
<param name="length">The length, must not be negative and not greater than
<c>array.Length - <paramref name="startIndex"/></c>.</param>
<returns>The created <see cref="T:System.Int64"/> buffer.</returns>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="startIndex"/> plus <paramref name="length"/> indicates a position not within this instance.
<para/>
-or-
<para/>
<paramref name="startIndex"/> or <paramref name="length"/> is less than zero.
</exception>
<exception cref="T:System.ArgumentNullException">If <paramref name="array"/> is <c>null</c>.</exception>
</member>
<member name="M:J2N.IO.Int64Buffer.#ctor(System.Int32)">
<summary>
Constructs a <see cref="T:J2N.IO.Int64Buffer"/> with given capacity.
</summary>
</member>
<member name="P:J2N.IO.Int64Buffer.Array">
<summary>
Gets the <see cref="T:System.Int64"/> array which this buffer is based on, if there is one.
</summary>
<returns>The byte array which this buffer is based on.</returns>
<exception cref="T:J2N.IO.ReadOnlyBufferException">If this buffer is based on an array, but it is read-only.</exception>
<exception cref="T:System.NotSupportedException">If this buffer is not based on an array.</exception>
</member>
<member name="P:J2N.IO.Int64Buffer.ArrayOffset">
<summary>
Returns the offset of the byte array which this buffer is based on, if
there is one.
<para/>
The offset is the index of the array which corresponds to the zero
position of the buffer.
</summary>
<exception cref="T:J2N.IO.ReadOnlyBufferException">If this buffer is based on an array, but it is read-only.</exception>
<exception cref="T:System.NotSupportedException">If this buffer is not based on an array.</exception>
</member>
<member name="M:J2N.IO.Int64Buffer.AsReadOnlyBuffer">
<summary>
Returns a read-only buffer that shares its content with this buffer.
<para/>
The returned buffer is guaranteed to be a new instance, even if this
buffer is read-only itself. The new buffer's position, limit, capacity
and mark are the same as this buffer.
<para/>
The new buffer shares its content with this buffer, which means this
buffer's change of content will be visible to the new buffer. The two
buffer's position, limit and mark are independent.
</summary>
<returns>A read-only version of this buffer.</returns>
</member>
<member name="M:J2N.IO.Int64Buffer.Compact">
<summary>
Compacts this <see cref="T:J2N.IO.Int64Buffer"/>.
<para/>
The remaining <see cref="T:System.Int32"/>s will be moved to the head of the buffer, starting from
position zero. Then the position is set to <see cref="P:J2N.IO.Buffer.Remaining"/>; the
limit is set to capacity; the mark is cleared.
</summary>
<returns>This buffer.</returns>
<exception cref="T:J2N.IO.ReadOnlyBufferException">If no changes may be made to the contents of this buffer.</exception>
</member>
<member name="M:J2N.IO.Int64Buffer.CompareTo(J2N.IO.Int64Buffer)">
<summary>
Compares the remaining <see cref="T:System.Int64"/>s of this buffer to another <see cref="T:J2N.IO.Int64Buffer"/>'s
remaining <see cref="T:System.Int64"/>s.
</summary>
<param name="other">Another <see cref="T:J2N.IO.Int64Buffer"/>.</param>
<returns>A negative value if this is less than <paramref name="other"/>; 0 if this
equals to <paramref name="other"/>; a positive value if this is greater
than <paramref name="other"/>.</returns>
</member>
<member name="M:J2N.IO.Int64Buffer.Duplicate">
<summary>
Returns a duplicated buffer that shares its content with this buffer.
<para/>
The duplicated buffer's position, limit, capacity and mark are the same
as this buffer. The duplicated buffer's read-only property and byte order
are the same as this buffer's.
<para/>
The new buffer shares its content with this buffer, which means either
buffer's change of content will be visible to the other. The two buffer's
position, limit and mark are independent.
</summary>
<returns>A duplicated buffer that shares its content with this buffer.</returns>
</member>
<member name="M:J2N.IO.Int64Buffer.Equals(System.Object)">
<summary>
Checks whether this <see cref="T:J2N.IO.Int64Buffer"/> is equal to another object.
<para/>
If <paramref name="other"/> is not a <see cref="T:J2N.IO.Int64Buffer"/> then <c>false</c> is returned. Two
<see cref="T:J2N.IO.Int64Buffer"/>s are equal if and only if their remaining <see cref="T:System.Int64"/>s are exactly the
same. Position, limit, capacity and mark are not considered.
</summary>
<param name="other">The object to compare with this <see cref="T:J2N.IO.Int64Buffer"/>.</param>
<returns><c>true</c> if this <see cref="T:J2N.IO.Int64Buffer"/> is equal to <paramref name="other"/>,
<c>false</c> otherwise.</returns>
</member>
<member name="M:J2N.IO.Int64Buffer.Get">
<summary>
Returns the <see cref="T:System.Int64"/> at the current position and increases the position by 1.
</summary>
<returns>The <see cref="T:System.Int64"/> at the current position.</returns>
<exception cref="T:J2N.IO.BufferUnderflowException">If the position is equal or greater than limit.</exception>
</member>
<member name="M:J2N.IO.Int64Buffer.Get(System.Int64[])">
<summary>
Reads <see cref="T:System.Int64"/>s from the current position into the specified int array and
increases the position by the number of <see cref="T:System.Int64"/>s read.
<para/>
Calling this method has the same effect as
<c>Get(destination, 0, destination.Length)</c>.
</summary>
<param name="destination">The destination <see cref="T:System.Int64"/> array.</param>
<returns>This buffer.</returns>
<exception cref="T:J2N.IO.BufferUnderflowException">If <c>destination.Length</c> is greater than <see cref="P:J2N.IO.Buffer.Remaining"/>.</exception>
<exception cref="T:System.ArgumentNullException">If <paramref name="destination"/> is <c>null</c>.</exception>
</member>
<member name="M:J2N.IO.Int64Buffer.Get(System.Int64[],System.Int32,System.Int32)">
<summary>
Reads <see cref="T:System.Int64"/>s from the current position into the specified <see cref="T:System.Int64"/> array,
starting from the specified offset, and increases the position by the
number of <see cref="T:System.Int64"/>s read.
</summary>
<param name="destination">The target <see cref="T:System.Int64"/> array.</param>
<param name="offset">the offset of the <see cref="T:System.Int64"/> array, must not be negative and not
greater than <c>destination.Length</c>.</param>
<param name="length">The number of <see cref="T:System.Int64"/>s to read, must be no less than zero and not
greater than <c>destination.Length - offset</c>.</param>
<returns>This buffer.</returns>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="offset"/> plus <paramref name="length"/> indicates a position not within this instance.
<para/>
-or-
<para/>
<paramref name="offset"/> or <paramref name="length"/> is less than zero.
</exception>
<exception cref="T:J2N.IO.BufferUnderflowException">If <paramref name="length"/> is greater than <see cref="P:J2N.IO.Buffer.Remaining"/>.</exception>
<exception cref="T:System.ArgumentNullException">If <paramref name="destination"/> is <c>null</c>.</exception>
</member>
<member name="M:J2N.IO.Int64Buffer.Get(System.Int32)">
<summary>
Returns an <see cref="T:System.Int64"/> at the specified <paramref name="index"/>; the position is not changed.
</summary>
<param name="index">The index, must not be negative and less than limit.</param>
<returns>The <see cref="T:System.Int64"/> at the specified index.</returns>
<exception cref="T:System.ArgumentOutOfRangeException">If <paramref name="index"/> is invalid.</exception>
</member>
<member name="P:J2N.IO.Int64Buffer.HasArray">
<summary>
Indicates whether this buffer is based on a <see cref="T:System.Int64"/> array and is read/write.
<para/>
Returns <c>true</c> if this buffer is based on a <see cref="T:System.Int64"/> array and provides
read/write access, <c>false</c> otherwise.
</summary>
</member>
<member name="M:J2N.IO.Int64Buffer.GetHashCode">
<summary>
Calculates this buffer's hash code from the remaining chars. The
position, limit, capacity and mark don't affect the hash code.
</summary>
<returns>The hash code calculated from the remaining <see cref="T:System.Int64"/>s.</returns>
</member>
<member name="P:J2N.IO.Int64Buffer.Order">
<summary>
Gets the byte order used by this buffer when converting ints from/to
bytes.
<para/>
If this buffer is not based on a byte buffer, then always return the
platform's native byte order.
</summary>
</member>
<member name="P:J2N.IO.Int64Buffer.ProtectedArray">
<summary>
Child class implements this property to realize <see cref="P:J2N.IO.Int64Buffer.Array"/>.
</summary>
<seealso cref="P:J2N.IO.Int64Buffer.Array"/>
</member>
<member name="P:J2N.IO.Int64Buffer.ProtectedArrayOffset">
<summary>
Child class implements this property to realize <see cref="P:J2N.IO.Int64Buffer.ArrayOffset"/>.
</summary>
<seealso cref="P:J2N.IO.Int64Buffer.ArrayOffset"/>
</member>
<member name="P:J2N.IO.Int64Buffer.ProtectedHasArray">
<summary>
Child class implements this property to realize <see cref="P:J2N.IO.Int64Buffer.HasArray"/>.
</summary>
<seealso cref="P:J2N.IO.Int64Buffer.HasArray"/>
</member>
<member name="M:J2N.IO.Int64Buffer.Put(System.Int64)">
<summary>
Writes the given <see cref="T:System.Int64"/> to the current position and increases the position
by 1.
</summary>
<param name="source">The <see cref="T:System.Int64"/> to write.</param>
<returns>This buffer.</returns>
<exception cref="T:J2N.IO.BufferOverflowException">If position is equal or greater than limit.</exception>
<exception cref="T:J2N.IO.ReadOnlyBufferException">If no changes may be made to the contents of this buffer.</exception>
</member>
<member name="M:J2N.IO.Int64Buffer.Put(System.Int64[])">
<summary>
Writes <see cref="T:System.Int64"/>s from the given <see cref="T:System.Int64"/> array to the current position and
increases the position by the number of <see cref="T:System.Int64"/>s written.
<para/>
Calling this method has the same effect as
<c>Put(source, 0, source.Length)</c>.
</summary>
<param name="source">The source <see cref="T:System.Int64"/> array.</param>
<returns>This buffer.</returns>
<exception cref="T:J2N.IO.BufferOverflowException">If <see cref="P:J2N.IO.Buffer.Remaining"/> is less than <c>source.Length</c>.</exception>
<exception cref="T:J2N.IO.ReadOnlyBufferException">If no changes may be made to the contents of this buffer.</exception>
<exception cref="T:System.ArgumentNullException">If <paramref name="source"/> is <c>null</c>.</exception>
</member>
<member name="M:J2N.IO.Int64Buffer.Put(System.Int64[],System.Int32,System.Int32)">
<summary>
Writes <see cref="T:System.Int64"/>s from the given int array, starting from the specified offset,
to the current position and increases the position by the number of <see cref="T:System.Int64"/>s
written.
</summary>
<param name="source">The source <see cref="T:System.Int64"/> array.</param>
<param name="offset">The offset of <see cref="T:System.Int64"/> array, must not be negative and not greater than <c>source.Length</c>.</param>
<param name="length">The number of <see cref="T:System.Int64"/>s to write, must be no less than zero and not
greater than <c>source.Length - offset</c>.</param>
<returns>This buffer.</returns>
<exception cref="T:J2N.IO.BufferOverflowException">If <see cref="P:J2N.IO.Buffer.Remaining"/> is less than <paramref name="length"/>.</exception>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="offset"/> plus <paramref name="length"/> indicates a position not within this instance.
<para/>
-or-
<para/>
<paramref name="offset"/> or <paramref name="length"/> is less than zero.
</exception>
<exception cref="T:J2N.IO.ReadOnlyBufferException">If no changes may be made to the contents of this buffer.</exception>
<exception cref="T:System.ArgumentNullException">If <paramref name="source"/> is <c>null</c>.</exception>
</member>
<member name="M:J2N.IO.Int64Buffer.Put(J2N.IO.Int64Buffer)">
<summary>
Writes all the remaining <see cref="T:System.Int64"/>s of the <paramref name="source"/> <see cref="T:J2N.IO.Int64Buffer"/> to this
buffer's current position, and increases both buffers' position by the
number of <see cref="T:System.Int64"/>s copied.
</summary>
<param name="source">The source <see cref="T:J2N.IO.Int32Buffer"/>.</param>
<returns>This buffer.</returns>
<exception cref="T:J2N.IO.BufferOverflowException">If <c>source.Remaining</c> is greater than this buffer's <see cref="P:J2N.IO.Buffer.Remaining"/>.</exception>
<exception cref="T:System.ArgumentException">If <paramref name="source"/> is this buffer.</exception>
<exception cref="T:J2N.IO.ReadOnlyBufferException">If no changes may be made to the contents of this buffer.</exception>
<exception cref="T:System.ArgumentNullException">If <paramref name="source"/> is <c>null</c>.</exception>
</member>
<member name="M:J2N.IO.Int64Buffer.Put(System.Int32,System.Int64)">
<summary>
Write a <see cref="T:System.Int64"/> to the specified <paramref name="index"/> of this buffer; the position is not
changed.
</summary>
<param name="index">The index, must not be negative and less than the limit.</param>
<param name="value">The <see cref="T:System.Int64"/> to write.</param>
<returns>This buffer.</returns>
<exception cref="T:System.ArgumentOutOfRangeException">If <paramref name="index"/> is invalid.</exception>
<exception cref="T:J2N.IO.ReadOnlyBufferException">If no changes may be made to the contents of this buffer.</exception>
</member>
<member name="M:J2N.IO.Int64Buffer.Slice">
<summary>
Returns a sliced buffer that shares its content with this buffer.
<para/>
The sliced buffer's capacity will be this buffer's <see cref="P:J2N.IO.Buffer.Remaining"/>,
and its zero position will correspond to this buffer's current position.
The new buffer's position will be 0, limit will be its capacity, and its
mark is cleared. The new buffer's read-only property and byte order are
same as this buffer's.
<para/>
The new buffer shares its content with this buffer, which means either
buffer's change of content will be visible to the other. The two buffer's
position, limit and mark are independent.
</summary>
<returns>A sliced buffer that shares its content with this buffer.</returns>
</member>
<member name="M:J2N.IO.Int64Buffer.ToString">
<summary>
Returns a string represents of the state of this <see cref="T:J2N.IO.Int64Buffer"/>.
</summary>
<returns>A string represents of the state of this <see cref="T:J2N.IO.Int64Buffer"/>.</returns>
</member>
<member name="T:J2N.IO.Int64ToByteBufferAdapter">
<summary>
This class wraps a byte buffer to be a <see cref="T:System.Int64"/> buffer.
<para/>
Implementation notice:
<list type="bullet">
<item><description>After a byte buffer instance is wrapped, it becomes privately owned by
the adapter. It must NOT be accessed outside the adapter any more.</description></item>
<item><description>The byte buffer's position and limit are NOT linked with the adapter.
The adapter extends <see cref="T:J2N.IO.Buffer"/>, thus has its own position and limit.</description></item>
</list>
</summary>
</member>
<member name="T:J2N.IO.InvalidMarkException">
<summary>
An <see cref="T:J2N.IO.InvalidMarkException"/> is thrown when <see cref="M:J2N.IO.Buffer.Reset"/> is called on a
buffer, but no mark has been set previously.
</summary>
</member>
<member name="M:J2N.IO.InvalidMarkException.#ctor">
<summary>
Initializes a new instance of <see cref="T:J2N.IO.InvalidMarkException"/>.
</summary>
</member>
<member name="M:J2N.IO.InvalidMarkException.#ctor(System.String)">
<summary>
Initializes a new instance of <see cref="T:J2N.IO.InvalidMarkException"/>
with the specified <paramref name="message"/>.
</summary>
<param name="message">The message that describes the error.</param>
</member>
<member name="M:J2N.IO.InvalidMarkException.#ctor(System.String,System.Exception)">
<summary>
Initializes a new instance of <see cref="T:J2N.IO.InvalidMarkException"/>
with a specified error message and a reference to the inner exception
that is the cause of this exception.
</summary>
<param name="message">The message that describes the error.</param>
<param name="innerException">The exception that is the cause of the current exception, or a null reference
(<c>Nothing</c> in Visual Basic) if no inner exception is specified.</param>
</member>
<member name="M:J2N.IO.InvalidMarkException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
<summary>
Initializes a new instance of this class with serialized data.
</summary>
<param name="info">The <see cref="T:System.Runtime.Serialization.SerializationInfo"/> that holds the serialized object data about the exception being thrown.</param>
<param name="context">The <see cref="T:System.Runtime.Serialization.StreamingContext"/> that contains contextual information about the source or destination.</param>
</member>
<member name="T:J2N.IO.MemoryMappedFiles.MemoryMappedFileExtensions">
<summary>
Extensions to the <see cref="T:System.IO.MemoryMappedFiles.MemoryMappedFile"/> class.
</summary>
</member>
<member name="M:J2N.IO.MemoryMappedFiles.MemoryMappedFileExtensions.CreateViewByteBuffer(System.IO.MemoryMappedFiles.MemoryMappedFile)">
<summary>
Creates a <see cref="T:J2N.IO.MemoryMappedFiles.MemoryMappedViewByteBuffer"/> that maps to a view of the
memory-mapped file.
</summary>
<param name="memoryMappedFile">This <see cref="T:System.IO.MemoryMappedFiles.MemoryMappedFile"/>.</param>
<returns>A randomly accessible block of memory, as a <see cref="T:J2N.IO.MemoryMappedFiles.MemoryMappedViewByteBuffer"/>.</returns>
<exception cref="T:System.ArgumentNullException">If <paramref name="memoryMappedFile"/> is <c>null</c>.</exception>
<exception cref="T:System.UnauthorizedAccessException">Access to the memory-mapped file is unauthorized.</exception>
<exception cref="T:System.IO.IOException">An I/O error occurred.</exception>
</member>
<member name="M:J2N.IO.MemoryMappedFiles.MemoryMappedFileExtensions.CreateViewByteBuffer(System.IO.MemoryMappedFiles.MemoryMappedFile,System.Int64,System.Int64)">
<summary>
Creates a <see cref="T:J2N.IO.MemoryMappedFiles.MemoryMappedViewByteBuffer"/> that maps to a view of the
memory-mapped file, and that has the specified <paramref name="offset"/> and <paramref name="size"/>.
</summary>
<param name="memoryMappedFile">This <see cref="T:System.IO.MemoryMappedFiles.MemoryMappedFile"/>.</param>
<param name="offset">The byte at which to start the view.</param>
<param name="size">The size of the view. Specify <c>0</c> (zero) to create a view that
starts at <paramref name="offset"/> and ends approximately at the end of the memory-mapped file.</param>
<returns>A randomly accessible block of memory, as a <see cref="T:J2N.IO.MemoryMappedFiles.MemoryMappedViewByteBuffer"/>.</returns>
<exception cref="T:System.ArgumentNullException">If <paramref name="memoryMappedFile"/> is <c>null</c>.</exception>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="offset"/> or <paramref name="size"/> is a negative value.
<para/>
-or-
<para/>
<paramref name="size"/> is greater than the logical address space.
</exception>
<exception cref="T:System.UnauthorizedAccessException">Access to the memory-mapped file is unauthorized.</exception>
<exception cref="T:System.IO.IOException">An I/O error occurred.</exception>
</member>
<member name="M:J2N.IO.MemoryMappedFiles.MemoryMappedFileExtensions.CreateViewByteBuffer(System.IO.MemoryMappedFiles.MemoryMappedFile,System.Int64,System.Int64,System.IO.MemoryMappedFiles.MemoryMappedFileAccess)">
<summary>
Creates a <see cref="T:J2N.IO.MemoryMappedFiles.MemoryMappedViewByteBuffer"/> that maps to a view of the
memory-mapped file, and that has the specified <paramref name="offset"/> and <paramref name="size"/>.
</summary>
<param name="memoryMappedFile">This <see cref="T:System.IO.MemoryMappedFiles.MemoryMappedFile"/>.</param>
<param name="offset">The byte at which to start the view.</param>
<param name="size">The size of the view. Specify <c>0</c> (zero) to create a view that
starts at <paramref name="offset"/> and ends approximately at the end of the memory-mapped file.</param>
<param name="access">One of the enumeration values that specifies the type of access allowed to the memory-mapped file. The default is <see cref="F:System.IO.MemoryMappedFiles.MemoryMappedFileAccess.ReadWrite"/>.</param>
<returns>A randomly accessible block of memory, as a <see cref="T:J2N.IO.MemoryMappedFiles.MemoryMappedViewByteBuffer"/>.</returns>
<exception cref="T:System.ArgumentNullException">If <paramref name="memoryMappedFile"/> is <c>null</c>.</exception>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="offset"/> or <paramref name="size"/> is a negative value.
<para/>
-or-
<para/>
<paramref name="size"/> is greater than the logical address space.
</exception>
<exception cref="T:System.UnauthorizedAccessException"><paramref name="access"/> is invalid for the memory-mapped file.</exception>
<exception cref="T:System.IO.IOException">An I/O error occurred.</exception>
</member>
<member name="T:J2N.IO.MemoryMappedFiles.MemoryMappedViewByteBuffer">
<summary>
A byte buffer whose content is a memory-mapped region of a file.
<para/>Mapped byte buffers are created via the
<see cref="M:J2N.IO.MemoryMappedFiles.MemoryMappedFileExtensions.CreateViewByteBuffer(System.IO.MemoryMappedFiles.MemoryMappedFile,System.Int64,System.Int64,System.IO.MemoryMappedFiles.MemoryMappedFileAccess)"/>
extension method. This class extends the <see cref="T:J2N.IO.ByteBuffer"/> class with
operations that are specific to memory-mapped file regions.
<para/>A memory-mapped byte buffer and the file mapping that it represents remain
valid until it is disposed.
<para/>The content of a memory-mapped byte buffer can change at any time, for example
if the content of the corresponding region of the mapped file is changed by
this program or another. Whether or not such changes occur, and when they
occur, is operating-system dependent and therefore unspecified.
</summary>
</member>
<member name="F:J2N.IO.MemoryMappedFiles.MemoryMappedViewByteBuffer.accessor">
<summary>
The <see cref="T:System.IO.MemoryMappedFiles.MemoryMappedViewAccessor"/> from a <see cref="T:System.IO.MemoryMappedFiles.MemoryMappedFile"/>.
</summary>
</member>
<member name="F:J2N.IO.MemoryMappedFiles.MemoryMappedViewByteBuffer.offset">
<summary>
The current offset.
</summary>
</member>
<member name="M:J2N.IO.MemoryMappedFiles.MemoryMappedViewByteBuffer.#ctor(System.IO.MemoryMappedFiles.MemoryMappedViewAccessor,System.Int32)">
<summary>
Initializes a new instance of <see cref="T:J2N.IO.MemoryMappedFiles.MemoryMappedViewByteBuffer"/>
with the specified <paramref name="accessor"/> and <paramref name="capacity"/>.
</summary>
<param name="accessor">A <see cref="T:System.IO.MemoryMappedFiles.MemoryMappedViewAccessor"/>.</param>
<param name="capacity">The capacity of the buffer.</param>
</member>
<member name="M:J2N.IO.MemoryMappedFiles.MemoryMappedViewByteBuffer.#ctor(System.IO.MemoryMappedFiles.MemoryMappedViewAccessor,System.Int32,System.Int32)">
<summary>
Initializes a new instance of <see cref="T:J2N.IO.MemoryMappedFiles.MemoryMappedViewByteBuffer"/>
with the specified <paramref name="accessor"/> and <paramref name="capacity"/>.
</summary>
<param name="accessor">A <see cref="T:System.IO.MemoryMappedFiles.MemoryMappedViewAccessor"/>.</param>
<param name="capacity">The capacity of the buffer.</param>
<param name="offset">The offset of the buffer.</param>
</member>
<member name="M:J2N.IO.MemoryMappedFiles.MemoryMappedViewByteBuffer.Get(System.Byte[],System.Int32,System.Int32)">
<summary>
Reads bytes from the current position into the specified byte array,
starting at the specified offset, and increases the position by the
number of bytes read.
</summary>
<param name="destination">The target byte array.</param>
<param name="offset">
The offset of the byte array, must not be negative and
not greater than <c>destination.Length</c>.</param>
<param name="length">
The number of bytes to read, must not be negative and not
greater than <c>destination.Length - offset</c>
</param>
<returns>This buffer.</returns>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="offset"/> plus <paramref name="length"/> indicates a position not within this instance.
<para/>
-or-
<para/>
<paramref name="offset"/> or <paramref name="length"/> is less than zero.
</exception>
<exception cref="T:J2N.IO.BufferUnderflowException">If <paramref name="length"/> is greater than <see cref="P:J2N.IO.Buffer.Remaining"/>.</exception>
<exception cref="T:System.ArgumentNullException">If <paramref name="destination"/> is <c>null</c>.</exception>
</member>
<member name="M:J2N.IO.MemoryMappedFiles.MemoryMappedViewByteBuffer.Get">
<summary>
Returns the byte at the current position and increases the position by 1.
</summary>
<returns>The byte at the current position.</returns>
<exception cref="T:J2N.IO.BufferUnderflowException">If the position is equal or greater than limit.</exception>
</member>
<member name="M:J2N.IO.MemoryMappedFiles.MemoryMappedViewByteBuffer.Get(System.Int32)">
<summary>
Returns the byte at the specified index and does not change the position.
</summary>
<param name="index">The index, must not be negative and less than limit.</param>
<returns>The byte at the specified index.</returns>
<exception cref="T:System.ArgumentOutOfRangeException">If index is invalid.</exception>
</member>
<member name="M:J2N.IO.MemoryMappedFiles.MemoryMappedViewByteBuffer.GetDouble">
<summary>
Returns the <see cref="T:System.Double"/> at the current position and increases the position by 8.
<para/>
The 8 bytes starting from the current position are composed into a <see cref="T:System.Double"/>
according to the current byte order and returned.
</summary>
<returns>The <see cref="T:System.Double"/> at the current position.</returns>
<exception cref="T:J2N.IO.BufferUnderflowException">If the position is greater than <c>limit - 8</c>.</exception>
</member>
<member name="M:J2N.IO.MemoryMappedFiles.MemoryMappedViewByteBuffer.GetDouble(System.Int32)">
<summary>
Returns the <see cref="T:System.Double"/> at the specified index.
<para/>
The 8 bytes starting at the specified index are composed into a <see cref="T:System.Double"/>
according to the current byte order and returned. The position is not
changed.
</summary>
<param name="index">The index, must not be negative and equal or less than <c>limit - 8</c>.</param>
<returns>The <see cref="T:System.Double"/> at the specified index.</returns>
<exception cref="T:System.ArgumentOutOfRangeException">If <paramref name="index"/> is invalid.</exception>
</member>
<member name="M:J2N.IO.MemoryMappedFiles.MemoryMappedViewByteBuffer.GetSingle">
<summary>
Returns the <see cref="T:System.Single"/> at the current position and increases the position by 4.
<para/>
The 4 bytes starting at the current position are composed into a <see cref="T:System.Single"/>
according to the current byte order and returned.
<para/>
NOTE: This was getFloat() in the JDK
</summary>
<returns>The <see cref="T:System.Single"/> at the current position.</returns>
<exception cref="T:J2N.IO.BufferUnderflowException">If the position is greater than <c>limit - 4</c>.</exception>
</member>
<member name="M:J2N.IO.MemoryMappedFiles.MemoryMappedViewByteBuffer.GetSingle(System.Int32)">
<summary>
Returns the <see cref="T:System.Single"/> at the specified index.
<para/>
The 4 bytes starting at the specified index are composed into a <see cref="T:System.Single"/>
according to the current byte order and returned. The position is not
changed.
<para/>
NOTE: This was getFloat() in the JDK
</summary>
<param name="index">The index, must not be negative and equal or less than <c>limit - 4</c>.</param>
<returns>The <see cref="T:System.Single"/> at the specified index.</returns>
<exception cref="T:System.ArgumentOutOfRangeException">If <paramref name="index"/> is invalid.</exception>
</member>
<member name="M:J2N.IO.MemoryMappedFiles.MemoryMappedViewByteBuffer.GetInt32">
<summary>
Returns the <see cref="T:System.Int32"/> at the current position and increases the position by 4.
<para/>
The 4 bytes starting at the current position are composed into a <see cref="T:System.Int32"/>
according to the current byte order and returned.
<para/>
NOTE: This was getInt() in the JDK
</summary>
<returns>The <see cref="T:System.Int32"/> at the current position.</returns>
<exception cref="T:J2N.IO.BufferUnderflowException">If the position is greater than <c>limit - 4</c>.</exception>
</member>
<member name="M:J2N.IO.MemoryMappedFiles.MemoryMappedViewByteBuffer.GetInt32(System.Int32)">
<summary>
Returns the <see cref="T:System.Int32"/> at the specified index.
<para/>
The 4 bytes starting at the specified index are composed into a <see cref="T:System.Int32"/>
according to the current byte order and returned. The position is not
changed.
<para/>
NOTE: This was getInt() in the JDK
</summary>
<param name="index">The index, must not be negative and equal or less than <c>limit - 4</c>.</param>
<returns>The <see cref="T:System.Int32"/> at the specified index.</returns>
<exception cref="T:System.ArgumentOutOfRangeException">If <paramref name="index"/> is invalid.</exception>
</member>
<member name="M:J2N.IO.MemoryMappedFiles.MemoryMappedViewByteBuffer.GetInt64">
<summary>
Returns the <see cref="T:System.Int64"/> at the specified index and increases the position by 8.
<para/>
NOTE: This was getLong() in the JDK
</summary>
<returns>The <see cref="T:System.Int64"/> at the specified index.</returns>
<exception cref="T:System.ArgumentOutOfRangeException">If index is invalid.</exception>
</member>
<member name="M:J2N.IO.MemoryMappedFiles.MemoryMappedViewByteBuffer.GetInt64(System.Int32)">
<summary>
Returns the <see cref="T:System.Int64"/> at the specified index.
<para/>
The 8 bytes starting at the specified index are composed into a <see cref="T:System.Int64"/>
according to the current byte order and returned. The position is not
changed.
<para/>
NOTE: This was getLong() in the JDK
</summary>
<param name="index">The index, must not be negative and equal or less than <c>limit - 8</c>.</param>
<returns>The <see cref="T:System.Int64"/> at the specified index.</returns>
<exception cref="T:System.ArgumentOutOfRangeException">If <paramref name="index"/> is invalid.</exception>
</member>
<member name="M:J2N.IO.MemoryMappedFiles.MemoryMappedViewByteBuffer.GetInt16">
<summary>
Returns the <see cref="T:System.Int16"/> at the current position and increases the position by 2.
<para/>
The 2 bytes starting at the current position are composed into a <see cref="T:System.Int16"/>
according to the current byte order and returned.
<para/>
NOTE: This was getShort() in the JDK
</summary>
<returns>The <see cref="T:System.Int16"/> at the current position.</returns>
<exception cref="T:J2N.IO.BufferUnderflowException">If the position is greater than <c>limit - 2</c>.</exception>
</member>
<member name="M:J2N.IO.MemoryMappedFiles.MemoryMappedViewByteBuffer.GetInt16(System.Int32)">
<summary>
Returns the <see cref="T:System.Int16"/> at the specified index.
<para/>
The 2 bytes starting at the specified index are composed into a <see cref="T:System.Int16"/>
according to the current byte order and returned. The position is not
changed.
<para/>
NOTE: This was getShort() in the JDK
</summary>
<param name="index">The index, must not be negative and equal or less than <c>limit - 2</c>.</param>
<returns>The <see cref="T:System.Int16"/> at the specified index.</returns>
<exception cref="T:System.ArgumentOutOfRangeException">If <paramref name="index"/> is invalid.</exception>
</member>
<member name="M:J2N.IO.MemoryMappedFiles.MemoryMappedViewByteBuffer.LoadInt32(System.Int32)">
<summary>
Reads the <see cref="T:System.Int32"/> at the specified index using the byte order
specified by <see cref="P:J2N.IO.ByteBuffer.Order"/>. No validation is done on
<paramref name="index"/>.
</summary>
<param name="index">The index to begin reading bytes.</param>
<returns>The <see cref="T:System.Int32"/> at the specified index.</returns>
</member>
<member name="M:J2N.IO.MemoryMappedFiles.MemoryMappedViewByteBuffer.LoadInt64(System.Int32)">
<summary>
Reads the <see cref="T:System.Int64"/> at the specified index using the byte order
specified by <see cref="P:J2N.IO.ByteBuffer.Order"/>. No validation is done on
<paramref name="index"/>.
</summary>
<param name="index">The index to begin reading bytes.</param>
<returns>The <see cref="T:System.Int64"/> at the specified index.</returns>
</member>
<member name="M:J2N.IO.MemoryMappedFiles.MemoryMappedViewByteBuffer.LoadInt16(System.Int32)">
<summary>
Reads the <see cref="T:System.Int16"/> at the specified index using the byte order
specified by <see cref="P:J2N.IO.ByteBuffer.Order"/>. No validation is done on
<paramref name="index"/>.
</summary>
<param name="index">The index to begin reading bytes.</param>
<returns>The <see cref="T:System.Int16"/> at the specified index.</returns>
</member>
<member name="M:J2N.IO.MemoryMappedFiles.MemoryMappedViewByteBuffer.Store(System.Int32,System.Int32)">
<summary>
Writes the <see cref="T:System.Int32"/> at the specified index using the byte order
specified by <see cref="P:J2N.IO.ByteBuffer.Order"/>. No validation is done on
<paramref name="index"/>.
</summary>
<param name="index">The index to begin writing bytes.</param>
<param name="value">The value to write.</param>
<returns>The <see cref="T:System.Int32"/> at the specified index.</returns>
</member>
<member name="M:J2N.IO.MemoryMappedFiles.MemoryMappedViewByteBuffer.Store(System.Int32,System.Int64)">
<summary>
Writes the <see cref="T:System.Int64"/> at the specified index using the byte order
specified by <see cref="P:J2N.IO.ByteBuffer.Order"/>. No validation is done on
<paramref name="index"/>.
</summary>
<param name="index">The index to begin writing bytes.</param>
<param name="value">The value to write.</param>
<returns>The <see cref="T:System.Int64"/> at the specified index.</returns>
</member>
<member name="M:J2N.IO.MemoryMappedFiles.MemoryMappedViewByteBuffer.Store(System.Int32,System.Int16)">
<summary>
Writes the <see cref="T:System.Int16"/> at the specified index using the byte order
specified by <see cref="P:J2N.IO.ByteBuffer.Order"/>. No validation is done on
<paramref name="index"/>.
</summary>
<param name="index">The index to begin writing bytes.</param>
<param name="value">The value to write.</param>
<returns>The <see cref="T:System.Int16"/> at the specified index.</returns>
</member>
<member name="M:J2N.IO.MemoryMappedFiles.MemoryMappedViewByteBuffer.AsCharBuffer">
<summary>
Returns a <see cref="T:System.Char"/> buffer which is based on the remaining content of this
byte buffer.
<para/>
The new buffer's position is zero, its limit and capacity is the number
of remaining bytes divided by two, and its mark is not set. The new
buffer's read-only property and byte order are the same as this buffer's.
<para/>
The new buffer shares its content with this buffer, which means either
buffer's change of content will be visible to the other. The two buffer's
position, limit and mark are independent.
</summary>
<returns>A <see cref="T:System.Char"/> buffer which is based on the content of this byte buffer.</returns>
</member>
<member name="M:J2N.IO.MemoryMappedFiles.MemoryMappedViewByteBuffer.AsDoubleBuffer">
<summary>
Returns a <see cref="T:System.Double"/> buffer which is based on the remaining content of this
byte buffer.
<para/>
The new buffer's position is zero, its limit and capacity is the number
of remaining bytes divided by eight, and its mark is not set. The new
buffer's read-only property and byte order are the same as this buffer's.
<para/>
The new buffer shares its content with this buffer, which means either
buffer's change of content will be visible to the other. The two buffer's
position, limit and mark are independent.
</summary>
<returns>A <see cref="T:System.Double"/> buffer which is based on the content of this byte buffer.</returns>
</member>
<member name="M:J2N.IO.MemoryMappedFiles.MemoryMappedViewByteBuffer.AsSingleBuffer">
<summary>
Returns a <see cref="T:System.Single"/> buffer which is based on the remaining content of this
byte buffer.
<para/>
The new buffer's position is zero, its limit and capacity is the number
of remaining bytes divided by four, and its mark is not set. The new
buffer's read-only property and byte order are the same as this buffer's.
<para/>
The new buffer shares its content with this buffer, which means either
buffer's change of content will be visible to the other. The two buffer's
position, limit and mark are independent.
</summary>
<returns>A <see cref="T:System.Single"/> buffer which is based on the content of this byte buffer.</returns>
</member>
<member name="M:J2N.IO.MemoryMappedFiles.MemoryMappedViewByteBuffer.AsInt32Buffer">
<summary>
Returns a <see cref="T:System.Int32"/> buffer which is based on the remaining content of this byte
buffer.
<para/>
The new buffer's position is zero, its limit and capacity is the number
of remaining bytes divided by four, and its mark is not set. The new
buffer's read-only property and byte order are the same as this buffer's.
<para/>
The new buffer shares its content with this buffer, which means either
buffer's change of content will be visible to the other. The two buffer's
position, limit and mark are independent.
</summary>
<returns>A <see cref="T:System.Int32"/> buffer which is based on the content of this byte buffer.</returns>
</member>
<member name="M:J2N.IO.MemoryMappedFiles.MemoryMappedViewByteBuffer.AsInt64Buffer">
<summary>
Returns a <see cref="T:System.Int64"/> buffer which is based on the remaining content of this
byte buffer.
<para/>
The new buffer's position is zero, its limit and capacity is the number
of remaining bytes divided by eight, and its mark is not set. The new
buffer's read-only property and byte order are the same as this buffer's.
<para/>
The new buffer shares its content with this buffer, which means either
buffer's change of content will be visible to the other. The two buffer's
position, limit and mark are independent.
</summary>
<returns>A <see cref="T:System.Int64"/> buffer which is based on the content of this byte buffer.</returns>
</member>
<member name="M:J2N.IO.MemoryMappedFiles.MemoryMappedViewByteBuffer.AsInt16Buffer">
<summary>
Returns a <see cref="T:System.Int16"/> buffer which is based on the remaining content of this
byte buffer.
</summary>
<remarks>
The new buffer's position is zero, its limit and capacity is the number
of remaining bytes divided by two, and its mark is not set. The new
buffer's read-only property and byte order are the same as this buffer's.
<para/>
The new buffer shares its content with this buffer, which means either
buffer's change of content will be visible to the other. The two buffer's
position, limit and mark are independent.
</remarks>
<returns>A <see cref="T:System.Int16"/> buffer which is based on the content of this byte buffer.</returns>
</member>
<member name="M:J2N.IO.MemoryMappedFiles.MemoryMappedViewByteBuffer.GetChar">
<summary>
Returns the <see cref="T:System.Char"/> at the current position and increases the position by 2.
<para/>
The 2 bytes starting at the current position are composed into a char
according to the current byte order and returned.
</summary>
<returns>The <see cref="T:System.Char"/> at the current position.</returns>
<exception cref="T:J2N.IO.BufferUnderflowException">If the position is greater than <c>limit - 2</c>.</exception>
</member>
<member name="M:J2N.IO.MemoryMappedFiles.MemoryMappedViewByteBuffer.GetChar(System.Int32)">
<summary>
Returns the <see cref="T:System.Char"/> at the specified index.
<para/>
The 2 bytes starting from the specified index are composed into a char
according to the current byte order and returned. The position is not
changed.
</summary>
<param name="index">The index, must not be negative and equal or less than <c>limit - 2</c>.</param>
<returns>The <see cref="T:System.Char"/> at the specified index.</returns>
<exception cref="T:System.ArgumentOutOfRangeException">If <paramref name="index"/> is invalid.</exception>
</member>
<member name="M:J2N.IO.MemoryMappedFiles.MemoryMappedViewByteBuffer.PutChar(System.Char)">
<summary>
Writes the given <see cref="T:System.Char"/> to the current position and increases the position
by 2.
<para/>
The <see cref="T:System.Char"/> is converted to bytes using the current byte order.
</summary>
<param name="value">The <see cref="T:System.Char"/> to write.</param>
<returns>This buffer.</returns>
<exception cref="T:J2N.IO.BufferOverflowException">If position is greater than <c>limit - 2</c>.</exception>
<exception cref="T:J2N.IO.ReadOnlyBufferException">If no changes may be made to the contents of this buffer.</exception>
</member>
<member name="M:J2N.IO.MemoryMappedFiles.MemoryMappedViewByteBuffer.PutChar(System.Int32,System.Char)">
<summary>
Writes the given <see cref="T:System.Char"/> to the specified index of this buffer.
<para/>
The <see cref="T:System.Char"/> is converted to bytes using the current byte order. The position
is not changed.
</summary>
<param name="index">The index, must not be negative and equal or less than <c>limit - 2</c>.</param>
<param name="value">The <see cref="T:System.Char"/> to write.</param>
<returns>This buffer.</returns>
<exception cref="T:System.ArgumentOutOfRangeException">If <paramref name="index"/> is invalid.</exception>
<exception cref="T:J2N.IO.ReadOnlyBufferException">If no changes may be made to the contents of this buffer.</exception>
</member>
<member name="M:J2N.IO.MemoryMappedFiles.MemoryMappedViewByteBuffer.Flush">
<summary>
Writes all changes of the buffer to the mapped file.
</summary>
</member>
<member name="M:J2N.IO.MemoryMappedFiles.MemoryMappedViewByteBuffer.Dispose">
<summary>
Cleans up all resources associated with this <see cref="T:J2N.IO.MemoryMappedFiles.MemoryMappedViewByteBuffer"/>.
</summary>
</member>
<member name="M:J2N.IO.MemoryMappedFiles.MemoryMappedViewByteBuffer.Dispose(System.Boolean)">
<summary>
Cleans up all resources associated with this <see cref="T:J2N.IO.MemoryMappedFiles.MemoryMappedViewByteBuffer"/>.
</summary>
</member>
<member name="M:J2N.IO.MemoryMappedFiles.MemoryMappedViewByteBuffer.NextGetIndex">
<summary>
Checks the current position against the limit, throwing a
<see cref="T:J2N.IO.BufferUnderflowException"/> if it is not smaller than the limit, and then
increments the position.
</summary>
<returns>The current position value, before it is incremented</returns>
</member>
<member name="M:J2N.IO.MemoryMappedFiles.MemoryMappedViewByteBuffer.NextPutIndex">
<summary>
Checks the current position against the limit, throwing a <see cref="T:J2N.IO.BufferOverflowException"/>
if it is not smaller than the limit, and then
increments the position.
</summary>
<returns>The current position value, before it is incremented</returns>
</member>
<member name="M:J2N.IO.MemoryMappedFiles.MemoryMappedViewByteBuffer.CheckIndex(System.Int32)">
<summary>
Checks the given index against the limit, throwing an <see cref="T:System.ArgumentOutOfRangeException"/>
if it is not smaller than the limit or is smaller than zero.
</summary>
<param name="index"></param>
<returns></returns>
</member>
<member name="T:J2N.IO.MemoryMappedFiles.ReadOnlyMemoryMappedViewByteBuffer">
<summary>
<see cref="T:J2N.IO.MemoryMappedFiles.MemoryMappedViewByteBuffer"/>, <see cref="T:J2N.IO.MemoryMappedFiles.ReadWriteMemoryMappedViewByteBuffer"/> and <see cref="T:J2N.IO.MemoryMappedFiles.ReadOnlyMemoryMappedViewByteBuffer"/> compose
the implementation of memory-mapped byte buffers.
<para/>
<see cref="T:J2N.IO.MemoryMappedFiles.ReadOnlyMemoryMappedViewByteBuffer"/> extends <see cref="T:J2N.IO.MemoryMappedFiles.MemoryMappedViewByteBuffer"/> with all the write methods
throwing read only exception.
<para/>
This class is marked sealed for runtime performance.
</summary>
</member>
<member name="M:J2N.IO.MemoryMappedFiles.ReadOnlyMemoryMappedViewByteBuffer.#ctor(System.IO.MemoryMappedFiles.MemoryMappedViewAccessor,System.Int32,System.Int32)">
<summary>
Initializes a new instance of <see cref="T:J2N.IO.MemoryMappedFiles.ReadOnlyMemoryMappedViewByteBuffer"/>
with the specified <paramref name="accessor"/> and <paramref name="capacity"/>.
</summary>
<param name="accessor">A <see cref="T:System.IO.MemoryMappedFiles.MemoryMappedViewAccessor"/>.</param>
<param name="capacity">The capacity of the buffer.</param>
<param name="offset">The offset of the buffer.</param>
</member>
<member name="T:J2N.IO.MemoryMappedFiles.ReadWriteMemoryMappedViewByteBuffer">
<summary>
<see cref="T:J2N.IO.MemoryMappedFiles.MemoryMappedViewByteBuffer"/>, <see cref="T:J2N.IO.MemoryMappedFiles.ReadWriteMemoryMappedViewByteBuffer"/> and <see cref="T:J2N.IO.MemoryMappedFiles.ReadOnlyMemoryMappedViewByteBuffer"/> compose
the implementation of array based byte buffers.
<para/>
<see cref="T:J2N.IO.MemoryMappedFiles.ReadWriteMemoryMappedViewByteBuffer"/> extends <see cref="T:J2N.IO.MemoryMappedFiles.MemoryMappedViewByteBuffer"/> with all the write methods.
<para/>
This class is marked sealed for runtime performance.
</summary>
</member>
<member name="M:J2N.IO.MemoryMappedFiles.ReadWriteMemoryMappedViewByteBuffer.#ctor(System.IO.MemoryMappedFiles.MemoryMappedViewAccessor,System.Int32)">
<summary>
Initializes a new instance of <see cref="T:J2N.IO.MemoryMappedFiles.ReadWriteMemoryMappedViewByteBuffer"/>
with the specified <paramref name="accessor"/> and <paramref name="capacity"/>.
</summary>
<param name="accessor">A <see cref="T:System.IO.MemoryMappedFiles.MemoryMappedViewAccessor"/>.</param>
<param name="capacity">The capacity of the buffer.</param>
</member>
<member name="M:J2N.IO.MemoryMappedFiles.ReadWriteMemoryMappedViewByteBuffer.#ctor(System.IO.MemoryMappedFiles.MemoryMappedViewAccessor,System.Int32,System.Int32)">
<summary>
Initializes a new instance of <see cref="T:J2N.IO.MemoryMappedFiles.ReadWriteMemoryMappedViewByteBuffer"/>
with the specified <paramref name="accessor"/> and <paramref name="capacity"/>.
</summary>
<param name="accessor">A <see cref="T:System.IO.MemoryMappedFiles.MemoryMappedViewAccessor"/>.</param>
<param name="capacity">The capacity of the buffer.</param>
<param name="offset">The offset of the buffer.</param>
</member>
<member name="T:J2N.IO.ReadOnlyBufferException">
<summary>
A <see cref="T:J2N.IO.ReadOnlyBufferException"/> is thrown when some write operation is
called on a read-only buffer.
</summary>
</member>
<member name="M:J2N.IO.ReadOnlyBufferException.#ctor">
<summary>
Initializes a new instance of <see cref="T:J2N.IO.ReadOnlyBufferException"/>.
</summary>
</member>
<member name="M:J2N.IO.ReadOnlyBufferException.#ctor(System.String)">
<summary>
Initializes a new instance of <see cref="T:J2N.IO.ReadOnlyBufferException"/>
with the specified <paramref name="message"/>.
</summary>
<param name="message">The message that describes the error.</param>
</member>
<member name="M:J2N.IO.ReadOnlyBufferException.#ctor(System.String,System.Exception)">
<summary>
Initializes a new instance of <see cref="T:J2N.IO.ReadOnlyBufferException"/>
with a specified error message and a reference to the inner exception
that is the cause of this exception.
</summary>
<param name="message">The message that describes the error.</param>
<param name="innerException">The exception that is the cause of the current exception, or a null reference
(<c>Nothing</c> in Visual Basic) if no inner exception is specified.</param>
</member>
<member name="M:J2N.IO.ReadOnlyBufferException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
<summary>
Initializes a new instance of this class with serialized data.
</summary>
<param name="info">The <see cref="T:System.Runtime.Serialization.SerializationInfo"/> that holds the serialized object data about the exception being thrown.</param>
<param name="context">The <see cref="T:System.Runtime.Serialization.StreamingContext"/> that contains contextual information about the source or destination.</param>
</member>
<member name="T:J2N.IO.ReadOnlyCharArrayBuffer">
<summary>
<see cref="T:J2N.IO.CharArrayBuffer"/>, <see cref="T:J2N.IO.ReadWriteCharArrayBuffer"/> and <see cref="T:J2N.IO.ReadOnlyCharArrayBuffer"/> compose
the implementation of array based char buffers.
<para/>
<see cref="T:J2N.IO.ReadOnlyCharArrayBuffer"/> extends <see cref="T:J2N.IO.CharArrayBuffer"/> with all the write methods
throwing read only exception.
<para/>
This class is marked sealed for runtime performance.
</summary>
</member>
<member name="T:J2N.IO.ReadOnlyDoubleArrayBuffer">
<summary>
<see cref="T:J2N.IO.DoubleArrayBuffer"/>, <see cref="T:J2N.IO.ReadWriteDoubleArrayBuffer"/>, and <see cref="T:J2N.IO.ReadOnlyDoubleArrayBuffer"/>
compose the implementation of array based float buffers.
<para/>
<see cref="T:J2N.IO.ReadOnlyDoubleArrayBuffer"/> extends <see cref="T:J2N.IO.DoubleArrayBuffer"/> with all the write
methods throwing read only exception.
<para/>
This class is marked sealed for runtime performance.
</summary>
</member>
<member name="T:J2N.IO.ReadOnlyHeapByteBuffer">
<summary>
<see cref="T:J2N.IO.HeapByteBuffer"/>, <see cref="T:J2N.IO.ReadWriteHeapByteBuffer"/> and <see cref="T:J2N.IO.ReadOnlyHeapByteBuffer"/> compose
the implementation of array based byte buffers.
<para/>
<see cref="T:J2N.IO.ReadOnlyHeapByteBuffer"/> extends <see cref="T:J2N.IO.HeapByteBuffer"/> with all the write methods
throwing read only exception.
<para/>
This class is marked sealed for runtime performance.
</summary>
</member>
<member name="T:J2N.IO.ReadOnlyInt16ArrayBuffer">
<summary>
<see cref="T:J2N.IO.Int16ArrayBuffer"/>, <see cref="T:J2N.IO.ReadWriteInt16ArrayBuffer"/> and <see cref="T:J2N.IO.ReadOnlyInt16ArrayBuffer"/>
compose the implementation of array based short buffers.
<para/>
<see cref="T:J2N.IO.ReadOnlyInt16ArrayBuffer"/> extends <see cref="T:J2N.IO.Int16ArrayBuffer"/> with all the write
methods throwing read only exception.
<para/>
This class is marked sealed for runtime performance.
</summary>
</member>
<member name="T:J2N.IO.ReadOnlyInt32ArrayBuffer">
<summary>
<see cref="T:J2N.IO.Int32ArrayBuffer"/>, <see cref="T:J2N.IO.ReadWriteInt32ArrayBuffer"/> and <see cref="T:J2N.IO.ReadOnlyInt32ArrayBuffer"/> compose
the implementation of array based <see cref="T:System.Int32"/> buffers.
<para/>
<see cref="T:J2N.IO.ReadOnlyInt32ArrayBuffer"/> extends <see cref="T:J2N.IO.Int32ArrayBuffer"/> with all the write methods
throwing read only exception.
<para/>
This class is marked sealed for runtime performance.
</summary>
</member>
<member name="T:J2N.IO.ReadOnlyInt64ArrayBuffer">
<summary>
<see cref="T:J2N.IO.Int64ArrayBuffer"/>, <see cref="T:J2N.IO.ReadWriteInt64ArrayBuffer"/> and <see cref="T:J2N.IO.ReadOnlyInt64ArrayBuffer"/> compose
the implementation of array based long buffers.
<para/>
<see cref="T:J2N.IO.ReadOnlyInt64ArrayBuffer"/> extends <see cref="T:J2N.IO.Int64ArrayBuffer"/> with all the write methods
throwing read only exception.
<para/>
This class is marked sealed for runtime performance.
</summary>
</member>
<member name="T:J2N.IO.ReadOnlySingleArrayBuffer">
<summary>
<see cref="T:J2N.IO.SingleArrayBuffer"/>, <see cref="T:J2N.IO.ReadWriteSingleArrayBuffer"/> and <see cref="T:J2N.IO.ReadOnlySingleArrayBuffer"/>
compose the implementation of array based float buffers.
<para/>
<see cref="T:J2N.IO.ReadOnlySingleArrayBuffer"/> extends <see cref="T:J2N.IO.SingleArrayBuffer"/> with all the write methods
throwing read only exception.
<para/>
This class is marked sealed for runtime performance.
</summary>
</member>
<member name="T:J2N.IO.ReadWriteCharArrayBuffer">
<summary>
<see cref="T:J2N.IO.CharArrayBuffer"/>, <see cref="T:J2N.IO.ReadWriteCharArrayBuffer"/> and <see cref="T:J2N.IO.ReadOnlyCharArrayBuffer"/> compose
the implementation of array based char buffers.
<para/>
<see cref="T:J2N.IO.ReadWriteCharArrayBuffer"/> extends <see cref="T:J2N.IO.CharArrayBuffer"/> with all the write methods.
<para/>
This class is marked sealed for runtime performance.
</summary>
</member>
<member name="T:J2N.IO.ReadWriteDoubleArrayBuffer">
<summary>
<see cref="T:J2N.IO.DoubleArrayBuffer"/>, <see cref="T:J2N.IO.ReadWriteDoubleArrayBuffer"/>, and <see cref="T:J2N.IO.ReadOnlyDoubleArrayBuffer"/>
compose the implementation of array based float buffers.
<para/>
<see cref="T:J2N.IO.ReadWriteDoubleArrayBuffer"/> extends <see cref="T:J2N.IO.DoubleArrayBuffer"/> with all the write
methods.
<para/>
This class is marked sealed for runtime performance.
</summary>
</member>
<member name="T:J2N.IO.ReadWriteHeapByteBuffer">
<summary>
<see cref="T:J2N.IO.HeapByteBuffer"/>, <see cref="T:J2N.IO.ReadWriteHeapByteBuffer"/> and <see cref="T:J2N.IO.ReadOnlyHeapByteBuffer"/> compose
the implementation of array based byte buffers.
<para/>
<see cref="T:J2N.IO.ReadWriteHeapByteBuffer"/> extends <see cref="T:J2N.IO.HeapByteBuffer"/> with all the write methods.
<para/>
This class is marked sealed for runtime performance.
</summary>
</member>
<member name="T:J2N.IO.ReadWriteInt16ArrayBuffer">
<summary>
<see cref="T:J2N.IO.Int16ArrayBuffer"/>, <see cref="T:J2N.IO.ReadWriteInt16ArrayBuffer"/> and <see cref="T:J2N.IO.ReadOnlyInt16ArrayBuffer"/>
compose the implementation of array based short buffers.
<para/>
<see cref="T:J2N.IO.ReadWriteInt16ArrayBuffer"/> extends <see cref="T:J2N.IO.Int16ArrayBuffer"/> with all the write
methods.
<para/>
This class is marked sealed for runtime performance.
</summary>
</member>
<member name="T:J2N.IO.ReadWriteInt32ArrayBuffer">
<summary>
<see cref="T:J2N.IO.Int32ArrayBuffer"/>, <see cref="T:J2N.IO.ReadWriteInt32ArrayBuffer"/> and <see cref="T:J2N.IO.ReadOnlyInt32ArrayBuffer"/> compose
the implementation of array based int buffers.
<para/>
<see cref="T:J2N.IO.ReadWriteInt32ArrayBuffer"/> extends <see cref="T:J2N.IO.Int32ArrayBuffer"/> with all the write methods.
<para/>
All methods are marked sealed for runtime performance.
</summary>
</member>
<member name="T:J2N.IO.ReadWriteInt64ArrayBuffer">
<summary>
<see cref="T:J2N.IO.Int64ArrayBuffer"/>, <see cref="T:J2N.IO.ReadWriteInt64ArrayBuffer"/> and <see cref="T:J2N.IO.ReadOnlyInt64ArrayBuffer"/> compose
the implementation of array based long buffers.
<para/>
<see cref="T:J2N.IO.ReadWriteInt64ArrayBuffer"/> extends <see cref="T:J2N.IO.Int64ArrayBuffer"/> with all the write methods.
<para/>
This class is marked final for runtime performance.
</summary>
</member>
<member name="T:J2N.IO.ReadWriteSingleArrayBuffer">
<summary>
<see cref="T:J2N.IO.SingleArrayBuffer"/>, <see cref="T:J2N.IO.ReadWriteSingleArrayBuffer"/> and <see cref="T:J2N.IO.ReadOnlySingleArrayBuffer"/>
compose the implementation of array based float buffers.
<para/>
<see cref="T:J2N.IO.ReadWriteSingleArrayBuffer"/> extends <see cref="T:J2N.IO.SingleArrayBuffer"/> with all the write
methods.
<para/>
This class is marked sealed for runtime performance.
</summary>
</member>
<member name="T:J2N.IO.SingleArrayBuffer">
<summary>
<see cref="T:J2N.IO.SingleArrayBuffer"/>, <see cref="T:J2N.IO.ReadWriteSingleArrayBuffer"/>, and <see cref="T:J2N.IO.ReadOnlySingleArrayBuffer"/>
compose the implementation of array based float buffers.
<para/>
<see cref="T:J2N.IO.SingleArrayBuffer"/> implements all the shared readonly methods and is extended
by the other two classes.
<para/>
All methods are marked sealed for runtime performance.
</summary>
</member>
<member name="T:J2N.IO.SingleBuffer">
<summary>
A buffer of <see cref="T:System.Single"/>s.
<para/>
A short buffer can be created in either of the following ways:
<list type="bullet">
<item><description><see cref="M:J2N.IO.SingleBuffer.Allocate(System.Int32)"/> a new <see cref="T:System.Single"/> array and create a buffer
based on it</description></item>
<item><description><see cref="M:J2N.IO.SingleBuffer.Wrap(System.Single[])"/> an existing <see cref="T:System.Single"/> array to create a new
buffer</description></item>
<item><description>Use <see cref="M:J2N.IO.ByteBuffer.AsSingleBuffer"/> to create a <see cref="T:System.Single"/>
buffer based on a byte buffer.</description></item>
</list>
</summary>
</member>
<member name="M:J2N.IO.SingleBuffer.Allocate(System.Int32)">
<summary>
Creates a <see cref="T:J2N.IO.SingleBuffer"/> based on a newly allocated <see cref="T:System.Single"/> array.
</summary>
<param name="capacity">The capacity of the new buffer.</param>
<returns>The created <see cref="T:J2N.IO.SingleBuffer"/>.</returns>
<exception cref="T:System.ArgumentOutOfRangeException">If <paramref name="capacity"/> is less than zero.</exception>
</member>
<member name="M:J2N.IO.SingleBuffer.Wrap(System.Single[])">
<summary>
Creates a new <see cref="T:J2N.IO.SingleBuffer"/> by wrapping the given <see cref="T:System.Single"/> array.
<para/>
Calling this method has the same effect as
<c>Wrap(array, 0, array.Length)</c>.
</summary>
<param name="array">The <see cref="T:System.Single"/> array which the new buffer will be based on.</param>
<returns>The created <see cref="T:J2N.IO.SingleBuffer"/>.</returns>
<exception cref="T:System.ArgumentNullException">If <paramref name="array"/> is <c>null</c>.</exception>
</member>
<member name="M:J2N.IO.SingleBuffer.Wrap(System.Single[],System.Int32,System.Int32)">
<summary>
Creates a new <see cref="T:J2N.IO.SingleBuffer"/> by wrapping the given <see cref="T:System.Single"/> array.
<para/>
The new buffer's position will be <paramref name="startIndex"/>, limit will be
<c>startIndex + length</c>, capacity will be the length of the array.
</summary>
<param name="array">The <see cref="T:System.Single"/> array which the new buffer will be based on.</param>
<param name="startIndex">The start index, must not be negative and not greater than
<c>array.Length</c>.</param>
<param name="length">The length, must not be negative and not greater than <c>array.Length - start</c>.</param>
<returns>The created <see cref="T:J2N.IO.SingleBuffer"/>.</returns>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="startIndex"/> plus <paramref name="length"/> indicates a position not within this instance.
<para/>
-or-
<para/>
<paramref name="startIndex"/> or <paramref name="length"/> is less than zero.
</exception>
<exception cref="T:System.ArgumentNullException">If <paramref name="array"/> is <c>null</c>.</exception>
</member>
<member name="M:J2N.IO.SingleBuffer.#ctor(System.Int32)">
<summary>
Constructs a <see cref="T:J2N.IO.SingleBuffer"/> with given capacity.
</summary>
<param name="capacity">The capacity of the buffer.</param>
</member>
<member name="P:J2N.IO.SingleBuffer.Array">
<summary>
Gets the <see cref="T:System.Single"/> array which this buffer is based on, if there is one.
</summary>
<exception cref="T:J2N.IO.ReadOnlyBufferException">If this buffer is based on an array, but it is read-only.</exception>
<exception cref="T:System.NotSupportedException">If this buffer is not based on an array.</exception>
</member>
<member name="P:J2N.IO.SingleBuffer.ArrayOffset">
<summary>
Gets the offset of the <see cref="T:System.Single"/> array which this buffer is based on, if
there is one.
<para/>
The offset is the index of the array corresponds to the zero position of
the buffer.
</summary>
<exception cref="T:J2N.IO.ReadOnlyBufferException">If this buffer is based on an array, but it is read-only.</exception>
<exception cref="T:System.NotSupportedException">If this buffer is not based on an array.</exception>
</member>
<member name="M:J2N.IO.SingleBuffer.AsReadOnlyBuffer">
<summary>
Returns a read-only buffer that shares its content with this buffer.
<para/>
The returned buffer is guaranteed to be a new instance, even this buffer
is read-only itself. The new buffer's position, limit, capacity and mark
are the same as this buffer's.
<para/>
The new buffer shares its content with this buffer, which means this
buffer's change of content will be visible to the new buffer. The two
buffer's position, limit and mark are independent.
</summary>
<returns>A read-only version of this buffer.</returns>
</member>
<member name="M:J2N.IO.SingleBuffer.Compact">
<summary>
Compacts this <see cref="T:J2N.IO.SingleBuffer"/>.
<para/>
The remaining <see cref="T:System.Single"/>s will be moved to the head of the buffer, starting from
position zero. Then the position is set to <see cref="P:J2N.IO.Buffer.Remaining"/>; the
limit is set to capacity; the mark is cleared.
</summary>
<returns>This buffer.</returns>
<exception cref="T:J2N.IO.ReadOnlyBufferException">If no changes may be made to the contents of this buffer.</exception>
</member>
<member name="M:J2N.IO.SingleBuffer.CompareTo(J2N.IO.SingleBuffer)">
<summary>
Compares the remaining <see cref="T:System.Single"/>s of this buffer to another <see cref="T:J2N.IO.SingleBuffer"/>'s
remaining <see cref="T:System.Single"/>s.
</summary>
<param name="other">Another <see cref="T:J2N.IO.SingleBuffer"/>.</param>
<returns>a negative value if this is less than <paramref name="other"/>; 0 if this
equals to <paramref name="other"/>; a positive value if this is greater
than <paramref name="other"/>.</returns>
</member>
<member name="M:J2N.IO.SingleBuffer.Duplicate">
<summary>
Returns a duplicated buffer that shares its content with this buffer.
<para/>
The duplicated buffer's position, limit, capacity and mark are the same
as this buffer. The duplicated buffer's read-only property and byte order
are the same as this buffer's.
<para/>
The new buffer shares its content with this buffer, which means either
buffer's change of content will be visible to the other. The two buffer's
position, limit and mark are independent.
</summary>
<returns>A duplicated buffer that shares its content with this buffer.</returns>
</member>
<member name="M:J2N.IO.SingleBuffer.Equals(System.Object)">
<summary>
Checks whether this <see cref="T:J2N.IO.SingleBuffer"/> is equal to another object.
<para/>
If <paramref name="other"/> is not a <see cref="T:J2N.IO.SingleBuffer"/> then <c>false</c> is returned. Two
<see cref="T:J2N.IO.SingleBuffer"/>s are equal if and only if their remaining <see cref="T:System.Single"/>s are exactly the
same. Position, limit, capacity and mark are not considered.
</summary>
<param name="other">The object to compare with this <see cref="T:J2N.IO.SingleBuffer"/>.</param>
<returns><c>true</c> if this <see cref="T:J2N.IO.SingleBuffer"/> is equal to <paramref name="other"/>,
<c>false</c> otherwise.</returns>
</member>
<member name="M:J2N.IO.SingleBuffer.Get">
<summary>
Returns the <see cref="T:System.Single"/> at the current position and increases the position by 1.
</summary>
<returns>The <see cref="T:System.Single"/> at the current position.</returns>
<exception cref="T:J2N.IO.BufferUnderflowException">If the position is equal or greater than limit.</exception>
</member>
<member name="M:J2N.IO.SingleBuffer.Get(System.Single[])">
<summary>
Reads <see cref="T:System.Single"/>s from the current position into the specified int array and
increases the position by the number of <see cref="T:System.Single"/>s read.
<para/>
Calling this method has the same effect as
<c>Get(destination, 0, destination.Length)</c>.
</summary>
<param name="destination">The destination <see cref="T:System.Single"/> array.</param>
<returns>This buffer.</returns>
<exception cref="T:J2N.IO.BufferUnderflowException">If <c>destination.Length</c> is greater than <see cref="P:J2N.IO.Buffer.Remaining"/>.</exception>
<exception cref="T:System.ArgumentNullException">If <paramref name="destination"/> is <c>null</c>.</exception>
</member>
<member name="M:J2N.IO.SingleBuffer.Get(System.Single[],System.Int32,System.Int32)">
<summary>
Reads <see cref="T:System.Single"/>s from the current position into the specified <see cref="T:System.Single"/> array,
starting from the specified offset, and increases the position by the
number of <see cref="T:System.Single"/>s read.
</summary>
<param name="destination">The target <see cref="T:System.Single"/> array.</param>
<param name="offset">the offset of the <see cref="T:System.Single"/> array, must not be negative and not
greater than <c>destination.Length</c>.</param>
<param name="length">The number of <see cref="T:System.Single"/>s to read, must be no less than zero and not
greater than <c>destination.Length - offset</c>.</param>
<returns>This buffer.</returns>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="offset"/> plus <paramref name="length"/> indicates a position not within this instance.
<para/>
-or-
<para/>
<paramref name="offset"/> or <paramref name="length"/> is less than zero.
</exception>
<exception cref="T:J2N.IO.BufferUnderflowException">If <paramref name="length"/> is greater than <see cref="P:J2N.IO.Buffer.Remaining"/>.</exception>
<exception cref="T:System.ArgumentNullException">If <paramref name="destination"/> is <c>null</c>.</exception>
</member>
<member name="M:J2N.IO.SingleBuffer.Get(System.Int32)">
<summary>
Returns an <see cref="T:System.Single"/> at the specified <paramref name="index"/>; the position is not changed.
</summary>
<param name="index">The index, must not be negative and less than limit.</param>
<returns>The <see cref="T:System.Single"/> at the specified index.</returns>
<exception cref="T:System.ArgumentOutOfRangeException">If <paramref name="index"/> is invalid.</exception>
</member>
<member name="P:J2N.IO.SingleBuffer.HasArray">
<summary>
Indicates whether this buffer is based on a <see cref="T:System.Single"/> array and is read/write.
<para/>
Returns <c>true</c> if this buffer is based on a <see cref="T:System.Single"/> array and provides
read/write access, <c>false</c> otherwise.
</summary>
</member>
<member name="M:J2N.IO.SingleBuffer.GetHashCode">
<summary>
Calculates this buffer's hash code from the remaining chars. The
position, limit, capacity and mark don't affect the hash code.
</summary>
<returns>The hash code calculated from the remaining <see cref="T:System.Single"/>s.</returns>
</member>
<member name="P:J2N.IO.SingleBuffer.Order">
<summary>
Gets the byte order used by this buffer when converting ints from/to
bytes.
<para/>
If this buffer is not based on a byte buffer, then always return the
platform's native byte order.
</summary>
</member>
<member name="P:J2N.IO.SingleBuffer.ProtectedArray">
<summary>
Child class implements this property to realize <see cref="P:J2N.IO.SingleBuffer.Array"/>.
</summary>
<seealso cref="P:J2N.IO.SingleBuffer.Array"/>
</member>
<member name="P:J2N.IO.SingleBuffer.ProtectedArrayOffset">
<summary>
Child class implements this property to realize <see cref="P:J2N.IO.SingleBuffer.ArrayOffset"/>.
</summary>
<seealso cref="P:J2N.IO.SingleBuffer.ArrayOffset"/>
</member>
<member name="P:J2N.IO.SingleBuffer.ProtectedHasArray">
<summary>
Child class implements this property to realize <see cref="P:J2N.IO.SingleBuffer.HasArray"/>.
</summary>
<seealso cref="P:J2N.IO.SingleBuffer.HasArray"/>
</member>
<member name="M:J2N.IO.SingleBuffer.Put(System.Single)">
<summary>
Writes the given <see cref="T:System.Single"/> to the current position and increases the position
by 1.
</summary>
<param name="value">The <see cref="T:System.Single"/> to write.</param>
<returns>This buffer.</returns>
<exception cref="T:J2N.IO.BufferOverflowException">If position is equal or greater than limit.</exception>
<exception cref="T:J2N.IO.ReadOnlyBufferException">If no changes may be made to the contents of this buffer.</exception>
</member>
<member name="M:J2N.IO.SingleBuffer.Put(System.Single[])">
<summary>
Writes <see cref="T:System.Single"/>s from the given <see cref="T:System.Single"/> array to the current position and
increases the position by the number of <see cref="T:System.Single"/>s written.
<para/>
Calling this method has the same effect as
<c>Put(source, 0, source.Length)</c>.
</summary>
<param name="source">The source <see cref="T:System.Single"/> array.</param>
<returns>This buffer.</returns>
<exception cref="T:J2N.IO.BufferOverflowException">If <see cref="P:J2N.IO.Buffer.Remaining"/> is less than <c>source.Length</c>.</exception>
<exception cref="T:J2N.IO.ReadOnlyBufferException">If no changes may be made to the contents of this buffer.</exception>
<exception cref="T:System.ArgumentNullException">If <paramref name="source"/> is <c>null</c>.</exception>
</member>
<member name="M:J2N.IO.SingleBuffer.Put(System.Single[],System.Int32,System.Int32)">
<summary>
Writes <see cref="T:System.Single"/>s from the given int array, starting from the specified offset,
to the current position and increases the position by the number of <see cref="T:System.Single"/>s
written.
</summary>
<param name="source">The source <see cref="T:System.Single"/> array.</param>
<param name="offset">The offset of <see cref="T:System.Single"/> array, must not be negative and not greater than <c>source.Length</c>.</param>
<param name="length">The number of <see cref="T:System.Single"/>s to write, must be no less than zero and not
greater than <c>source.Length - offset</c>.</param>
<returns>This buffer.</returns>
<exception cref="T:J2N.IO.BufferOverflowException">If <see cref="P:J2N.IO.Buffer.Remaining"/> is less than <paramref name="length"/>.</exception>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="offset"/> plus <paramref name="length"/> indicates a position not within this instance.
<para/>
-or-
<para/>
<paramref name="offset"/> or <paramref name="length"/> is less than zero.
</exception>
<exception cref="T:J2N.IO.ReadOnlyBufferException">If no changes may be made to the contents of this buffer.</exception>
<exception cref="T:System.ArgumentNullException">If <paramref name="source"/> is <c>null</c>.</exception>
</member>
<member name="M:J2N.IO.SingleBuffer.Put(J2N.IO.SingleBuffer)">
<summary>
Writes all the remaining <see cref="T:System.Single"/>s of the <paramref name="source"/> <see cref="T:J2N.IO.SingleBuffer"/> to this
buffer's current position, and increases both buffers' position by the
number of <see cref="T:System.Single"/>s copied.
</summary>
<param name="source">The source <see cref="T:J2N.IO.SingleBuffer"/>.</param>
<returns>This buffer.</returns>
<exception cref="T:J2N.IO.BufferOverflowException">If <c>source.Remaining</c> is greater than this buffer's <see cref="P:J2N.IO.Buffer.Remaining"/>.</exception>
<exception cref="T:System.ArgumentException">If <paramref name="source"/> is this buffer.</exception>
<exception cref="T:J2N.IO.ReadOnlyBufferException">If no changes may be made to the contents of this buffer.</exception>
<exception cref="T:System.ArgumentNullException">If <paramref name="source"/> is <c>null</c>.</exception>
</member>
<member name="M:J2N.IO.SingleBuffer.Put(System.Int32,System.Single)">
<summary>
Write a <see cref="T:System.Single"/> to the specified <paramref name="index"/> of this buffer; the position is not
changed.
</summary>
<param name="index">The index, must not be negative and less than the limit.</param>
<param name="value">The <see cref="T:System.Single"/> to write.</param>
<returns>This buffer.</returns>
<exception cref="T:System.ArgumentOutOfRangeException">If <paramref name="index"/> is invalid.</exception>
<exception cref="T:J2N.IO.ReadOnlyBufferException">If no changes may be made to the contents of this buffer.</exception>
</member>
<member name="M:J2N.IO.SingleBuffer.Slice">
<summary>
Returns a sliced buffer that shares its content with this buffer.
<para/>
The sliced buffer's capacity will be this buffer's <see cref="P:J2N.IO.Buffer.Remaining"/>,
and its zero position will correspond to this buffer's current position.
The new buffer's position will be 0, limit will be its capacity, and its
mark is cleared. The new buffer's read-only property and byte order are
same as this buffer's.
<para/>
The new buffer shares its content with this buffer, which means either
buffer's change of content will be visible to the other. The two buffer's
position, limit and mark are independent.
</summary>
<returns>A sliced buffer that shares its content with this buffer.</returns>
</member>
<member name="M:J2N.IO.SingleBuffer.ToString">
<summary>
Returns a string represents of the state of this <see cref="T:J2N.IO.SingleBuffer"/>.
</summary>
<returns>A string represents of the state of this <see cref="T:J2N.IO.SingleBuffer"/>.</returns>
</member>
<member name="T:J2N.IO.SingleToByteBufferAdapter">
<summary>
This class wraps a byte buffer to be a <see cref="T:System.Single"/> buffer.
<para/>
Implementation notice:
<list type="bullet">
<item><description>After a byte buffer instance is wrapped, it becomes privately owned by
the adapter. It must NOT be accessed outside the adapter any more.</description></item>
<item><description>The byte buffer's position and limit are NOT linked with the adapter.
The adapter extends <see cref="T:J2N.IO.Buffer"/>, thus has its own position and limit.</description></item>
</list>
</summary>
</member>
<member name="T:J2N.IO.StreamTokenizer">
<summary>
Parses a stream into a set of defined tokens, one at a time. The different
types of tokens that can be found are numbers, identifiers, quoted strings,
and different comment styles. The class can be used for limited processing
of source code of programming languages like Java, although it is nowhere
near a full parser.
</summary>
</member>
<member name="P:J2N.IO.StreamTokenizer.NumberValue">
<summary>
Contains a number if the current token is a number
(<see cref="P:J2N.IO.StreamTokenizer.TokenType"/> == <see cref="F:J2N.IO.StreamTokenizer.TokenType_Number"/>).
</summary>
</member>
<member name="P:J2N.IO.StreamTokenizer.StringValue">
<summary>
Contains a string if the current token is a word
(<see cref="P:J2N.IO.StreamTokenizer.TokenType"/> == <see cref="F:J2N.IO.StreamTokenizer.TokenType_Word"/>).
</summary>
</member>
<member name="F:J2N.IO.StreamTokenizer.TokenType_EndOfStream">
<summary>
The constant representing the end of the stream.
</summary>
</member>
<member name="F:J2N.IO.StreamTokenizer.TokenType_EndOfLine">
<summary>
The constant representing the end of the line.
</summary>
</member>
<member name="F:J2N.IO.StreamTokenizer.TokenType_Number">
<summary>
The constant representing a number token.
</summary>
</member>
<member name="F:J2N.IO.StreamTokenizer.TokenType_Word">
<summary>
The constant representing a word token.
</summary>
</member>
<member name="F:J2N.IO.StreamTokenizer.TokenType_Unknown">
<summary>
Internal representation of unknown state.
</summary>
</member>
<member name="P:J2N.IO.StreamTokenizer.TokenType">
<summary>
After calling <see cref="M:J2N.IO.StreamTokenizer.NextToken"/>, <see cref="P:J2N.IO.StreamTokenizer.TokenType"/> contains the type of
token that has been read. When a single character is read, its value
converted to an integer is stored in <see cref="P:J2N.IO.StreamTokenizer.TokenType"/>. For a quoted string,
the value is the quoted character. Otherwise, its value is one of the
following:
<list type="bullet">
<item><description><see cref="F:J2N.IO.StreamTokenizer.TokenType_Word"/> - the token is a word.</description></item>
<item><description><see cref="F:J2N.IO.StreamTokenizer.TokenType_Number"/> - the token is a number.</description></item>
<item><description><see cref="F:J2N.IO.StreamTokenizer.TokenType_EndOfLine"/> - the end of line has been reached. Depends on
whether <see cref="P:J2N.IO.StreamTokenizer.EndOfLineIsSignificant"/> is <c>true</c>.</description></item>
<item><description><see cref="F:J2N.IO.StreamTokenizer.TokenType_EndOfStream"/> - the end of the stream has been reached.</description></item>
</list>
</summary>
</member>
<member name="F:J2N.IO.StreamTokenizer.tokenTypes">
<summary>
Internal character meanings, 0 implies TOKEN_ORDINARY
</summary>
</member>
<member name="F:J2N.IO.StreamTokenizer.inStream">
<summary>One of these will have the stream</summary>
</member>
<member name="M:J2N.IO.StreamTokenizer.#ctor">
<summary>
Private constructor to initialize the default values according to the
specification.
</summary>
</member>
<member name="M:J2N.IO.StreamTokenizer.#ctor(System.IO.Stream)">
<summary>
Constructs a new <see cref="T:J2N.IO.StreamTokenizer"/> with <paramref name="input"/> as source input
stream. This constructor is deprecated; instead, the constructor that
takes a <see cref="T:System.IO.TextReader"/> as an arugment should be used.
</summary>
<param name="input">the source stream from which to parse tokens.</param>
<exception cref="T:System.ArgumentNullException">If <paramref name="input"/> is <c>null</c>.</exception>
</member>
<member name="M:J2N.IO.StreamTokenizer.#ctor(System.IO.TextReader)">
<summary>
Constructs a new <see cref="T:J2N.IO.StreamTokenizer"/> with <paramref name="reader"/> as source reader.
The tokenizer's initial state is as follows:
<list type="bullet">
<item><description>All byte values 'A' through 'Z', 'a' through 'z', and '&#92;u00A0' through '&#92;u00FF' are considered to be alphabetic.</description></item>
<item><description>All byte values '&#92;u0000' through '&#92;u0020' are considered to be white space. '/' is a comment character.</description></item>
<item><description>Single quote '\'' and double quote '"' are string quote characters.</description></item>
<item><description>Numbers are parsed.</description></item>
<item><description>End of lines are considered to be white space rather than separate tokens.</description></item>
<item><description>C-style and C++-style comments are not recognized.</description></item>
</list>
</summary>
<param name="reader">The source text reader from which to parse tokens.</param>
</member>
<member name="M:J2N.IO.StreamTokenizer.CommentChar(System.Int32)">
<summary>
Specifies that the character <paramref name="ch"/> shall be treated as a comment
character.
</summary>
<param name="ch">The character to be considered a comment character.</param>
</member>
<member name="P:J2N.IO.StreamTokenizer.EndOfLineIsSignificant">
<summary>
Specifies whether the end of a line is significant and should be returned
as <see cref="F:J2N.IO.StreamTokenizer.TokenType_EndOfStream"/> in <see cref="P:J2N.IO.StreamTokenizer.TokenType"/> by this tokenizer.
<c>true</c> if EOL is significant, <c>false</c> otherwise.
</summary>
</member>
<member name="P:J2N.IO.StreamTokenizer.LineNumber">
<summary>
Gets the current line number.
</summary>
</member>
<member name="P:J2N.IO.StreamTokenizer.LowerCaseMode">
<summary>
Specifies whether word tokens should be converted to lower case when they
are stored in <see cref="P:J2N.IO.StreamTokenizer.StringValue"/>. <c>true</c> if <see cref="P:J2N.IO.StreamTokenizer.StringValue"/>
should be converted to lower case, <c>false</c> otherwise.
</summary>
</member>
<member name="M:J2N.IO.StreamTokenizer.NextToken">
<summary>
Parses the next token from this tokenizer's source stream or reader. The
type of the token is stored in the <see cref="P:J2N.IO.StreamTokenizer.TokenType"/> field, additional
information may be stored in the <see cref="P:J2N.IO.StreamTokenizer.NumberValue"/> or <see cref="P:J2N.IO.StreamTokenizer.StringValue"/> fields.
</summary>
<returns>The value of <see cref="P:J2N.IO.StreamTokenizer.TokenType"/>.</returns>
<exception cref="T:System.IO.IOException">If an I/O error occurs while parsing the next token.</exception>
</member>
<member name="M:J2N.IO.StreamTokenizer.OrdinaryChar(System.Int32)">
<summary>
Specifies that the character <paramref name="ch"/> shall be treated as an ordinary
character by this tokenizer. That is, it has no special meaning as a
comment character, word component, white space, string delimiter or
number.
</summary>
<param name="ch">The character to be considered an ordinary character.</param>
</member>
<member name="M:J2N.IO.StreamTokenizer.OrdinaryChars(System.Int32,System.Int32)">
<summary>
Specifies that the characters in the range from <paramref name="low"/> to <paramref name="hi"/>
shall be treated as an ordinary character by this tokenizer. That is,
they have no special meaning as a comment character, word component,
white space, string delimiter or number.
</summary>
<param name="low">The first character in the range of ordinary characters.</param>
<param name="hi">The last character in the range of ordinary characters.</param>
</member>
<member name="M:J2N.IO.StreamTokenizer.ParseNumbers">
<summary>
Specifies that this tokenizer shall parse numbers.
</summary>
</member>
<member name="M:J2N.IO.StreamTokenizer.PushBack">
<summary>
Indicates that the current token should be pushed back and returned again
the next time <see cref="M:J2N.IO.StreamTokenizer.NextToken"/> is called.
</summary>
</member>
<member name="M:J2N.IO.StreamTokenizer.QuoteChar(System.Int32)">
<summary>
Specifies that the character <paramref name="ch"/> shall be treated as a quote
character.
</summary>
<param name="ch">The character to be considered a quote character.</param>
</member>
<member name="M:J2N.IO.StreamTokenizer.ResetSyntax">
<summary>
Specifies that all characters shall be treated as ordinary characters.
</summary>
</member>
<member name="P:J2N.IO.StreamTokenizer.SlashSlashComments">
<summary>
Specifies whether "slash-slash" (C++-style) comments shall be recognized.
This kind of comment ends at the end of the line.
<c>true</c> if <c>//</c> should be recognized as the start
of a comment, <c>false</c> otherwise.
</summary>
</member>
<member name="P:J2N.IO.StreamTokenizer.SlashStarComments">
<summary>
Specifies whether "slash-star" (C-style) comments shall be recognized.
Slash-star comments cannot be nested and end when a star-slash
combination is found.
<c>true</c> if <c>/*</c> should be recognized as the start
of a comment, <c>false</c> otherwise.
</summary>
</member>
<member name="M:J2N.IO.StreamTokenizer.ToString">
<summary>
Returns the state of this tokenizer in a readable format.
</summary>
<returns>The current state of this tokenizer.</returns>
</member>
<member name="M:J2N.IO.StreamTokenizer.WhitespaceChars(System.Int32,System.Int32)">
<summary>
Specifies that the characters in the range from <paramref name="low"/> to <paramref name="hi"/>
shall be treated as whitespace characters by this tokenizer.
</summary>
<param name="low">The first character in the range of whitespace characters.</param>
<param name="hi">The last character in the range of whitespace characters.</param>
</member>
<member name="M:J2N.IO.StreamTokenizer.WordChars(System.Int32,System.Int32)">
<summary>
Specifies that the characters in the range from <paramref name="low"/> to <paramref name="hi"/>
shall be treated as word characters by this tokenizer. A word consists of
a word character followed by zero or more word or number characters.
</summary>
<param name="low">The first character in the range of word characters.</param>
<param name="hi">The last character in the range of word characters.</param>
</member>
<member name="M:J2N.Marvin.ComputeHash32(System.ReadOnlySpan{System.Byte},System.UInt64)">
<summary>
Compute a Marvin hash and collapse it into a 32-bit hash.
</summary>
</member>
<member name="M:J2N.Marvin.ComputeHash32(System.Byte@,System.UInt32,System.UInt32,System.UInt32)">
<summary>
Compute a Marvin hash and collapse it into a 32-bit hash.
</summary>
</member>
<member name="T:J2N.MathExtensions">
<summary>
Additions to <see cref="T:System.Math"/>, implemented as extension methods.
</summary>
</member>
<member name="F:J2N.MathExtensions.SingleSignBitMask">
<summary>
Bit mask to isolate the sign bit of a <see cref="T:System.Single"/>.
</summary>
</member>
<member name="F:J2N.MathExtensions.DoubleSignBitMask">
<summary>
Bit mask to isolate the sign bit of a <see cref="T:System.Double"/>.
</summary>
</member>
<member name="M:J2N.MathExtensions.Signum(System.Int32)">
<summary>
Returns the signum function of the specified <see cref="T:System.Int32"/> value. (The
return value is <c>-1</c> if the specified value is negative; <c>0</c> if the
specified value is zero; and <c>1</c> if the specified value is positive.)
<para/>
This can be useful for testing the results of two <see cref="M:System.IComparable`1.CompareTo(`0)"/>
methods against each other, since only the sign is guaranteed to be the same between implementations.
</summary>
<param name="value">The value whose signum has to be computed.</param>
<returns>The signum function of the specified <see cref="T:System.Int32"/> value.</returns>
</member>
<member name="M:J2N.MathExtensions.Signum(System.Int64)">
<summary>
Returns the signum function of the specified <see cref="T:System.Int64"/> value. (The
return value is <c>-1</c> if the specified value is negative; <c>0</c> if the
specified value is zero; and <c>1</c> if the specified value is positive.)
</summary>
<param name="value">The value whose signum has to be computed.</param>
<returns>The signum function of the specified <see cref="T:System.Int64"/> value.</returns>
</member>
<member name="M:J2N.MathExtensions.ToRadians(System.Double)">
<summary>
Converts an angle measured in degrees to an approximately equivalent angle
measured in radians. The conversion from degrees to radians is generally inexact.
</summary>
<param name="degrees">An angle in degrees to convert to radians</param>
<returns>The value in radians</returns>
</member>
<member name="M:J2N.MathExtensions.ToRadians(System.Decimal)">
<summary>
Converts an angle measured in degrees to an approximately equivalent angle
measured in radians. The conversion from degrees to radians is generally inexact.
</summary>
<param name="degrees">An angle in degrees to convert to radians</param>
<returns>The value in radians</returns>
</member>
<member name="M:J2N.MathExtensions.ToRadians(System.Int32)">
<summary>
Converts an angle measured in degrees to an approximately equivalent angle
measured in radians. The conversion from degrees to radians is generally inexact.
</summary>
<param name="degrees">An angle in degrees to convert to radians</param>
<returns>The value in radians</returns>
</member>
<member name="M:J2N.MathExtensions.ToDegrees(System.Double)">
<summary>
Converts an angle measured in radians to an approximately equivalent angle
measured in degrees. The conversion from radians to degrees is generally
inexact; users should not expect Cos((90.0).ToRadians()) to exactly equal 0.0.
</summary>
<param name="radians">An angle in radians to convert to radians</param>
<returns>The value in radians</returns>
</member>
<member name="M:J2N.MathExtensions.ToDegrees(System.Decimal)">
<summary>
Converts an angle measured in radians to an approximately equivalent angle
measured in degrees. The conversion from radians to degrees is generally
inexact; users should not expect Cos((90.0).ToRadians()) to exactly equal 0.0.
</summary>
<param name="radians">An angle in radians to convert to radians</param>
<returns>The value in radians</returns>
</member>
<member name="M:J2N.MathExtensions.ToDegrees(System.Int32)">
<summary>
Converts an angle measured in radians to an approximately equivalent angle
measured in degrees. The conversion from radians to degrees is generally
inexact; users should not expect Cos((90.0).ToRadians()) to exactly equal 0.0.
</summary>
<param name="radians">An angle in radians to convert to radians</param>
<returns>The value in radians</returns>
</member>
<member name="M:J2N.MathExtensions.NextAfter(System.Double,System.Double)">
<summary>
Returns the floating-point number adjacent to the first
argument in the direction of the second argument. If both
arguments compare as equal a value equivalent to the second argument
is returned.
<para/>
<para/>
Special Cases:
<list type="bullet">
<item><description>If either argument is <see cref="F:System.Double.NaN"/>, the result is <see cref="F:System.Double.NaN"/>.</description></item>
<item><description>If both arguments are signed zeros, a value equivalent to <paramref name="direction"/> is returned.</description></item>
<item><description>If <paramref name="start"/> is &#177;<see cref="F:System.Double.Epsilon"/> and <paramref name="direction"/> has a value
such that the result should have a smaller magnitude, then a zero with the same sign as <paramref name="start"/> is returned.</description></item>
<item><description>If <paramref name="start"/> is infinite and <paramref name="direction"/> has a value such that the result
should have a smaller magnitude, <see cref="F:System.Double.MaxValue"/> with the same sign as <paramref name="start"/> is returned.</description></item>
<item><description>If <paramref name="start"/> is equal to &#177;<see cref="F:System.Double.MaxValue"/> and <paramref name="direction"/>
has a value such that the result should have a larger magnitude, an infinity with same sign as <paramref name="start"/> is returned.</description></item>
</list>
</summary>
<param name="start">The starting floating-point value.</param>
<param name="direction">A value indicating which of <paramref name="start"/>'s neighbors or <paramref name="start"/> should be returned.</param>
<returns>The floating-point number adjacent to <paramref name="start"/> in the direction of <paramref name="direction"/>.</returns>
</member>
<member name="M:J2N.MathExtensions.NextAfter(System.Single,System.Double)">
<summary>
Returns the floating-point number adjacent to the first
argument in the direction of the second argument. If both
arguments compare as equal a value equivalent to the second argument
is returned.
<para/>
<para/>
Special Cases:
<list type="bullet">
<item><description>If either argument is <see cref="F:System.Single.NaN"/>, the result is <see cref="F:System.Single.NaN"/>.</description></item>
<item><description>If both arguments are signed zeros, a value equivalent to <paramref name="direction"/> is returned.</description></item>
<item><description>If <paramref name="start"/> is &#177;<see cref="F:System.Single.Epsilon"/> and <paramref name="direction"/> has a value
such that the result should have a smaller magnitude, then a zero with the same sign as <paramref name="start"/> is returned.</description></item>
<item><description>If <paramref name="start"/> is infinite and <paramref name="direction"/> has a value such that the result
should have a smaller magnitude, <see cref="F:System.Single.MaxValue"/> with the same sign as <paramref name="start"/> is returned.</description></item>
<item><description>If <paramref name="start"/> is equal to &#177;<see cref="F:System.Single.MaxValue"/> and <paramref name="direction"/>
has a value such that the result should have a larger magnitude, an infinity with same sign as <paramref name="start"/> is returned.</description></item>
</list>
</summary>
<param name="start">The starting floating-point value.</param>
<param name="direction">A value indicating which of <paramref name="start"/>'s neighbors or <paramref name="start"/> should be returned.</param>
<returns>The floating-point number adjacent to <paramref name="start"/> in the direction of <paramref name="direction"/>.</returns>
</member>
<member name="M:J2N.MathExtensions.NextUp(System.Double)">
<summary>
Returns the floating-point value adjacent to <paramref name="value"/> in
the direction of positive infinity. This method is
semantically equivalent to <c>NextAfter(value, double.PositiveInfinity)</c>;
however, a <see cref="M:J2N.MathExtensions.NextUp(System.Double)"/>
implementation may run faster than its equivalent
<see cref="M:J2N.MathExtensions.NextAfter(System.Double,System.Double)"/> call.
<para/>
Special Cases:
<list type="bullet">
<item><description>If the argument is <see cref="F:System.Double.NaN"/>, the result is <see cref="F:System.Double.NaN"/>.</description></item>
<item><description>If the argument is <see cref="F:System.Double.PositiveInfinity"/>, the result is <see cref="F:System.Double.PositiveInfinity"/>.</description></item>
<item><description>If the argument is zero, the result is <see cref="F:System.Double.Epsilon"/>.</description></item>
</list>
</summary>
<param name="value">The starting floating-point value.</param>
<returns>The adjacent floating-point value closer to positive infinity.</returns>
</member>
<member name="M:J2N.MathExtensions.NextUp(System.Single)">
<summary>
Returns the floating-point value adjacent to <paramref name="value"/> in
the direction of positive infinity. This method is
semantically equivalent to <c>NextAfter(value, float.PositiveInfinity)</c>;
however, a <see cref="M:J2N.MathExtensions.NextUp(System.Single)"/>
implementation may run faster than its equivalent
<see cref="M:J2N.MathExtensions.NextAfter(System.Single,System.Double)"/> call.
<para/>
Special Cases:
<list type="bullet">
<item><description>If the argument is <see cref="F:System.Single.NaN"/>, the result is <see cref="F:System.Single.NaN"/>.</description></item>
<item><description>If the argument is <see cref="F:System.Single.PositiveInfinity"/>, the result is <see cref="F:System.Single.PositiveInfinity"/>.</description></item>
<item><description>If the argument is zero, the result is <see cref="F:System.Single.Epsilon"/>.</description></item>
</list>
</summary>
<param name="value">The starting floating-point value.</param>
<returns>The adjacent floating-point value closer to positive infinity.</returns>
</member>
<member name="M:J2N.MathExtensions.NextDown(System.Double)">
<summary>
Returns the floating-point value adjacent to <paramref name="value"/> in
the direction of negative infinity. This method is
semantically equivalent to <c>NextAfter(value, double.NegativeInfinity)</c>; however, a
<see cref="M:J2N.MathExtensions.NextDown(System.Double)"/> implementation may run faster than its
equivalent <see cref="M:J2N.MathExtensions.NextAfter(System.Double,System.Double)"/> call.
<para/>
Special Cases:
<list type="bullet">
<item><description>If the argument is <see cref="F:System.Double.NaN"/>, the result is <see cref="F:System.Double.NaN"/>.</description></item>
<item><description>If the argument is <see cref="F:System.Double.NegativeInfinity"/>, the result is <see cref="F:System.Double.NegativeInfinity"/>.</description></item>
<item><description>If the argument is zero, the result is <see cref="F:System.Double.Epsilon"/>.</description></item>
</list>
</summary>
<param name="value">The starting floating-point value.</param>
<returns>The adjacent floating-point value closer to negative infinity.</returns>
</member>
<member name="M:J2N.MathExtensions.NextDown(System.Single)">
<summary>
Returns the floating-point value adjacent to <paramref name="value"/> in
the direction of negative infinity. This method is
semantically equivalent to <c>NextAfter(value, float.NegativeInfinity)</c>; however, a
<see cref="M:J2N.MathExtensions.NextDown(System.Single)"/> implementation may run faster than its
equivalent <see cref="M:J2N.MathExtensions.NextAfter(System.Single,System.Double)"/> call.
<para/>
Special Cases:
<list type="bullet">
<item><description>If the argument is <see cref="F:System.Single.NaN"/>, the result is <see cref="F:System.Single.NaN"/>.</description></item>
<item><description>If the argument is <see cref="F:System.Single.NegativeInfinity"/>, the result is <see cref="F:System.Single.NegativeInfinity"/>.</description></item>
<item><description>If the argument is zero, the result is <see cref="F:System.Single.Epsilon"/>.</description></item>
</list>
</summary>
<param name="value">The starting floating-point value.</param>
<returns>The adjacent floating-point value closer to negative infinity.</returns>
</member>
<member name="M:J2N.MathExtensions.CopySign(System.Double,System.Double)">
<summary>
Returns a value with the magnitude of <paramref name="x"/> and the sign of <paramref name="y"/>.
</summary>
<param name="x">A number whose magnitude is used in the result.</param>
<param name="y">A number whose sign is the used in the result.</param>
<returns>A value with the magnitude of <paramref name="x"/> and the sign of <paramref name="y"/>.</returns>
</member>
<member name="T:J2N.MemoryExtensions">
<summary>
Extensions to <see cref="T:System.Span`1"/> and <see cref="T:System.ReadOnlySpan`1"/>.
</summary>
</member>
<member name="M:J2N.MemoryExtensions.IndexOf(System.ReadOnlySpan{System.Char},System.Char)">
<summary>
Searches for the specified sequence and returns the index of its first occurrence.
<para/>
This method simply cascades the call to <see cref="M:System.MemoryExtensions.IndexOf``1(System.ReadOnlySpan{``0},``0)"/>.
Its purpose is to avoid the overhead of casting to an <see cref="T:System.Int32"/> and back to <see cref="T:System.Char"/> when
calling <see cref="M:J2N.MemoryExtensions.IndexOf(System.ReadOnlySpan{System.Char},System.Int32)"/> with a <see cref="T:System.Char"/>. If this method did not exist,
the compiler would always choose <see cref="M:J2N.MemoryExtensions.IndexOf(System.ReadOnlySpan{System.Char},System.Int32)"/> instead of
<see cref="M:System.MemoryExtensions.IndexOf``1(System.ReadOnlySpan{``0},``0)"/> when the type of <c>T</c> is <see cref="T:System.Char"/>.
</summary>
<param name="text">The span to search.</param>
<param name="value">The value to search for.</param>
<returns>The index of the occurrence of the value in the span. If not found, returns -1.</returns>
</member>
<member name="M:J2N.MemoryExtensions.IndexOf(System.Span{System.Char},System.Char)">
<summary>
Searches for the specified sequence and returns the index of its first occurrence.
<para/>
This method simply cascades the call to <see cref="M:System.MemoryExtensions.IndexOf``1(System.Span{``0},``0)"/>.
Its purpose is to avoid the overhead of casting to an <see cref="T:System.Int32"/> and back to <see cref="T:System.Char"/> when
calling <see cref="M:J2N.MemoryExtensions.IndexOf(System.Span{System.Char},System.Int32)"/> with a <see cref="T:System.Char"/>. If this method did not exist,
the compiler would always choose <see cref="M:J2N.MemoryExtensions.IndexOf(System.Span{System.Char},System.Int32)"/> instead of
<see cref="M:System.MemoryExtensions.IndexOf``1(System.Span{``0},``0)"/> when the type of <c>T</c> is <see cref="T:System.Char"/>.
</summary>
<param name="text">The span to search.</param>
<param name="value">The value to search for.</param>
<returns>The index of the occurrence of the value in the span. If not found, returns -1.</returns>
</member>
<member name="M:J2N.MemoryExtensions.IndexOf(System.ReadOnlySpan{System.Char},System.Int32)">
<summary>
Returns the index within this string of the first occurrence of
the specified character. If a character with value
<paramref name="codePoint"/> occurs in the character sequence represented by
this <see cref="T:System.ReadOnlySpan`1"/> object, then the index (in Unicode
code units) of the first such occurrence is returned. For
values of <paramref name="codePoint"/> in the range from 0 to 0xFFFF
(inclusive), this is the smallest value <i>k</i> such that:
<code>
this[(<i>k</i>] == <paramref name="codePoint"/>
</code>
is true. For other values of <paramref name="codePoint"/>, it is the
smallest value <i>k</i> such that:
<code>
this.CodePointAt(<i>k</i>) == <paramref name="codePoint"/>
</code>
is true. In either case, if no such character occurs in this
string, then <c>-1</c> is returned.
</summary>
<param name="text">This <see cref="T:System.ReadOnlySpan`1"/>.</param>
<param name="codePoint">A character (Unicode code point).</param>
<returns>The index of the first occurrence of the character in the
character sequence represented by this object, or
<c>-1</c> if the character does not occur.
</returns>
</member>
<member name="M:J2N.MemoryExtensions.IndexOf(System.Span{System.Char},System.Int32)">
<summary>
Returns the index within this string of the first occurrence of
the specified character. If a character with value
<paramref name="codePoint"/> occurs in the character sequence represented by
this <see cref="T:System.Span`1"/> object, then the index (in Unicode
code units) of the first such occurrence is returned. For
values of <paramref name="codePoint"/> in the range from 0 to 0xFFFF
(inclusive), this is the smallest value <i>k</i> such that:
<code>
this[(<i>k</i>] == <paramref name="codePoint"/>
</code>
is true. For other values of <paramref name="codePoint"/>, it is the
smallest value <i>k</i> such that:
<code>
this.CodePointAt(<i>k</i>) == <paramref name="codePoint"/>
</code>
is true. In either case, if no such character occurs in this
string, then <c>-1</c> is returned.
</summary>
<param name="text">This <see cref="T:System.Span`1"/>.</param>
<param name="codePoint">A character (Unicode code point).</param>
<returns>The index of the first occurrence of the character in the
character sequence represented by this object, or
<c>-1</c> if the character does not occur.
</returns>
</member>
<member name="M:J2N.MemoryExtensions.IndexOfSupplementary(System.Char*,System.Int32,System.Int32)">
<summary>
Handles (rare) calls of indexOf with a supplementary character.
</summary>
</member>
<member name="M:J2N.MemoryExtensions.LastIndexOf(System.ReadOnlySpan{System.Char},System.Char)">
<summary>
Searches for the specified value and returns the index of its last occurrence.
<para/>
This method simply cascades the call to <see cref="M:System.MemoryExtensions.LastIndexOf``1(System.ReadOnlySpan{``0},``0)"/>.
Its purpose is to avoid the overhead of casting to an <see cref="T:System.Int32"/> and back to <see cref="T:System.Char"/> when
calling <see cref="M:J2N.MemoryExtensions.LastIndexOf(System.ReadOnlySpan{System.Char},System.Int32)"/> with a <see cref="T:System.Char"/>. If this method did not exist,
the compiler would always choose <see cref="M:J2N.MemoryExtensions.LastIndexOf(System.ReadOnlySpan{System.Char},System.Int32)"/> instead of
<see cref="M:System.MemoryExtensions.LastIndexOf``1(System.ReadOnlySpan{``0},``0)"/> when the type of <c>T</c> is <see cref="T:System.Char"/>.
</summary>
<param name="text">The span to search.</param>
<param name="value">The value to search for.</param>
<returns>The index of the last occurrence of the value in the span. If not found, returns -1.</returns>
</member>
<member name="M:J2N.MemoryExtensions.LastIndexOf(System.Span{System.Char},System.Char)">
<summary>
Searches for the specified value and returns the index of its last occurrence.
<para/>
This method simply cascades the call to <see cref="M:System.MemoryExtensions.LastIndexOf``1(System.Span{``0},``0)"/>.
Its purpose is to avoid the overhead of casting to an <see cref="T:System.Int32"/> and back to <see cref="T:System.Char"/> when
calling <see cref="M:J2N.MemoryExtensions.LastIndexOf(System.Span{System.Char},System.Int32)"/> with a <see cref="T:System.Char"/>. If this method did not exist,
the compiler would always choose <see cref="M:J2N.MemoryExtensions.LastIndexOf(System.Span{System.Char},System.Int32)"/> instead of
<see cref="M:System.MemoryExtensions.LastIndexOf``1(System.Span{``0},``0)"/> when the type of <c>T</c> is <see cref="T:System.Char"/>.
</summary>
<param name="text">The span to search.</param>
<param name="value">The value to search for.</param>
<returns>The index of the last occurrence of the value in the span. If not found, returns -1.</returns>
</member>
<member name="M:J2N.MemoryExtensions.LastIndexOf(System.ReadOnlySpan{System.Char},System.Int32)">
<summary>
Returns the index within this string of the last occurrence of
the specified character. For values of <paramref name="codePoint"/> in the
range from 0 to 0xFFFF (inclusive), the index (in Unicode code
units) returned is the largest value <i>k</i> such that:
<code>
this[<i>k</i>] == <paramref name="codePoint"/>
</code>
is <c>true</c>. For other values of <paramref name="codePoint"/>, it is the
largest value in <i>k</i> such that:
<code>
this.CodePointAt(<i>k</i>) = <paramref name="codePoint"/>
</code>
is <c>true</c>. In either case, if no such character occurs in this
string, then <c>-1</c> is returned. The
<paramref name="text"/> is searched backwards starting at the last character.
</summary>
<param name="text">This <see cref="T:System.ReadOnlySpan`1"/>.</param>
<param name="codePoint">A character (Unicode code point).</param>
<returns>
The index of the last occurrence of the character in the
character sequence represented by this object, or
<c>-1</c> if the character does not occur.
</returns>
</member>
<member name="M:J2N.MemoryExtensions.LastIndexOf(System.Span{System.Char},System.Int32)">
<summary>
Returns the index within this string of the last occurrence of
the specified character. For values of <paramref name="codePoint"/> in the
range from 0 to 0xFFFF (inclusive), the index (in Unicode code
units) returned is the largest value <i>k</i> such that:
<code>
this[<i>k</i>] == <paramref name="codePoint"/>
</code>
is <c>true</c>. For other values of <paramref name="codePoint"/>, it is the
largest value in <i>k</i> such that:
<code>
this.CodePointAt(<i>k</i>) = <paramref name="codePoint"/>
</code>
is <c>true</c>. In either case, if no such character occurs in this
string, then <c>-1</c> is returned. The
<paramref name="text"/> is searched backwards starting at the last character.
</summary>
<param name="text">This <see cref="T:System.Span`1"/>.</param>
<param name="codePoint">A character (Unicode code point).</param>
<returns>
The index of the last occurrence of the character in the
character sequence represented by this object, or
<c>-1</c> if the character does not occur.
</returns>
</member>
<member name="M:J2N.MemoryExtensions.LastIndexOfSupplementary(System.Char*,System.Int32,System.Int32)">
<summary>
Handles (rare) calls of lastIndexOf with a supplementary character.
</summary>
</member>
<member name="M:J2N.MemoryExtensions.ReverseText(System.Span{System.Char})">
<summary>
Causes this character sequence to be replaced by the reverse of
the sequence. If there are any surrogate pairs included in the
sequence, these are treated as single characters for the
reverse operation. Thus, the order of the high-low surrogates
is never reversed.
<para/>
This operation is done in-place.
<para/>
Let <c>n</c> be the character length of this character sequence
(not the length in <see cref="T:System.Char"/> values) just prior to
execution of the <see cref="M:J2N.MemoryExtensions.ReverseText(System.Span{System.Char})"/> method. Then the
character at index <c>k</c> in the new character sequence is
equal to the character at index <c>n-k-1</c> in the old
character sequence.
<para/>
Note that the reverse operation may result in producing
surrogate pairs that were unpaired low-surrogates and
high-surrogates before the operation. For example, reversing
"&#92;uDC00&#92;uD800" produces "&#92;uD800&#92;uDC00" which is
a valid surrogate pair.
<para/>
Usage Note: This is the same operation as
<see cref="M:J2N.Text.StringBuilderExtensions.Reverse(System.Text.StringBuilder)"/>
(derived from Java's StringBuilder.reverse() method) but is more
efficient because it doesn't allocate a new <see cref="T:System.Text.StringBuilder"/>
instance.
</summary>
<param name="text">this <see cref="T:System.Span`1"/></param>
<seealso cref="M:J2N.Text.StringBuilderExtensions.Reverse(System.Text.StringBuilder)"/>
<seealso cref="M:J2N.Text.StringExtensions.ReverseText(System.String)"/>
</member>
<member name="T:J2N.Numerics.BitOperation">
<summary>
Extensions to <see cref="T:System.Int32"/> and <see cref="T:System.Int64"/> to perform bitwise
operations.
</summary>
</member>
<member name="M:J2N.Numerics.BitOperation.PopCount(System.Int32)">
<summary>
Returns the population count (number of set bits) of an <see cref="T:System.Int32"/> mask.
<para/>
Usage Note: This is the same operation as Integer.bitCount() in the JDK.
</summary>
<param name="value">The <see cref="T:System.Int32"/> to examine.</param>
<returns>The number of one-bits in the two's complement binary
representation of the specified <paramref name="value"/>.</returns>
</member>
<member name="M:J2N.Numerics.BitOperation.PopCount(System.Int64)">
<summary>
Returns the population count (number of set bits) of a <see cref="T:System.Int64"/> mask.
<para/>
Usage Note: This is the same operation as Long.bitCount() in the JDK.
</summary>
<param name="value">The <see cref="T:System.Int64"/> to examine.</param>
<returns>The number of one-bits in the two's complement binary
representation of the specified <paramref name="value"/>.</returns>
</member>
<member name="M:J2N.Numerics.BitOperation.LeadingZeroCount(System.Int32)">
<summary>
Returns the number of zero bits preceding the highest-order
("leftmost") one-bit in the two's complement binary representation
of the specified <paramref name="value"/>. Returns 32 if the
specified value has no one-bits in its two's complement representation,
in other words if it is equal to zero.
<para/>
Note that this method is closely related to the logarithm base 2.
For all positive <see cref="T:System.Int32"/> values x:
<list type="bullet">
<item><description>floor(log<sub>2</sub>(x)) = <c>31 - x.LeadingZeroCount()</c></description></item>
<item><description>ceil(log<sub>2</sub>(x)) = <c>32 - (x - 1).LeadingZeroCount()</c></description></item>
</list>
<para/>
Usage Note: This is the same operation as Integer.numberOfLeadingZeros() in the JDK.
</summary>
<param name="value">The <see cref="T:System.Int32"/> to examine.</param>
<returns>The number of zero bits preceding the highest-order
("leftmost") one-bit in the two's complement binary representation
of the specified <paramref name="value"/>, or 32 if the value
is equal to zero.</returns>
</member>
<member name="M:J2N.Numerics.BitOperation.LeadingZeroCount(System.Int64)">
<summary>
Returns the number of zero bits preceding the highest-order
("leftmost") one-bit in the two's complement binary representation
of the specified <paramref name="value"/>. Returns 64 if the
specified value has no one-bits in its two's complement representation,
in other words if it is equal to zero.
<para/>
Note that this method is closely related to the logarithm base 2.
For all positive <see cref="T:System.Int64"/> values x:
<list type="bullet">
<item><description>floor(log<sub>2</sub>(x)) = <c>63 - x.LeadingZeroCount()</c></description></item>
<item><description>ceil(log<sub>2</sub>(x)) = <c>64 - (x - 1).LeadingZeroCount()</c></description></item>
</list>
<para/>
Usage Note: This is the same operation as Long.numberOfLeadingZeros() in the JDK.
</summary>
<param name="value">The <see cref="T:System.Int64"/> to examine.</param>
<returns>The number of zero bits preceding the highest-order
("leftmost") one-bit in the two's complement binary representation
of the specified <paramref name="value"/>, or 64 if the value
is equal to zero.</returns>
</member>
<member name="M:J2N.Numerics.BitOperation.TrailingZeroCount(System.Int32)">
<summary>
Returns the number of zero bits following the lowest-order ("rightmost")
one-bit in the two's complement binary representation of the specified
<paramref name="value"/>. Returns 32 if the specified value has no
one-bits in its two's complement representation, in other words if it is
equal to zero.
<para/>
Usage Note: This is the same operation as Integer.numberOfTrailingZeros() in the JDK.
</summary>
<param name="value">The <see cref="T:System.Int32"/> to examine.</param>
<returns>The number of zero bits following the lowest-order ("rightmost")
one-bit in the two's complement binary representation of the
specified <paramref name="value"/>, or 32 if the value is equal
to zero.</returns>
</member>
<member name="M:J2N.Numerics.BitOperation.TrailingZeroCount(System.Int64)">
<summary>
Returns the number of zero bits following the lowest-order ("rightmost")
one-bit in the two's complement binary representation of the specified
<paramref name="value"/>. Returns 64 if the specified value has no
one-bits in its two's complement representation, in other words if it is
equal to zero.
</summary>
<param name="value">The <see cref="T:System.Int64"/> to examine.</param>
<returns>The number of zero bits following the lowest-order ("rightmost")
one-bit in the two's complement binary representation of the
specified <paramref name="value"/>, or 64 if the value is equal
to zero.</returns>
</member>
<member name="M:J2N.Numerics.BitOperation.HighestOneBit(System.Int32)">
<summary>
Returns an <see cref="T:System.Int32"/> value with at most a single one-bit, in the
position of the highest-order ("leftmost") one-bit in the specified
<paramref name="value"/>. Returns zero if the specified value has no
one-bits in its two's complement binary representation, that is, if it
is equal to zero.
</summary>
<param name="value">The <see cref="T:System.Int32"/> to examine.</param>
<returns>An <see cref="T:System.Int32"/> value with a single one-bit, in the position
of the highest-order one-bit in the specified <paramref name="value"/>, or zero if
the specified <paramref name="value"/> is itself equal to zero.</returns>
</member>
<member name="M:J2N.Numerics.BitOperation.HighestOneBit(System.Int64)">
<summary>
Returns a <see cref="T:System.Int64"/> value with at most a single one-bit, in the
position of the highest-order ("leftmost") one-bit in the specified
<paramref name="value"/>. Returns zero if the specified <paramref name="value"/> has no
one-bits in its two's complement binary representation, that is, if it
is equal to zero.
</summary>
<param name="value">The <see cref="T:System.Int64"/> to examine.</param>
<returns>A <see cref="T:System.Int64"/> value with a single one-bit, in the position
of the highest-order one-bit in the specified <paramref name="value"/>, or zero if
the specified <paramref name="value"/> is itself equal to zero.</returns>
</member>
<member name="M:J2N.Numerics.BitOperation.LowestOneBit(System.Int32)">
<summary>
Returns an <see cref="T:System.Int32"/> value with at most a single one-bit, in the
position of the lowest-order ("rightmost") one-bit in the specified
<paramref name="value"/>. Returns zero if the specified value has no
one-bits in its two's complement binary representation, that is, if it
is equal to zero.
</summary>
<param name="value">The <see cref="T:System.Int32"/> to examine.</param>
<returns>An <see cref="T:System.Int32"/> value with a single one-bit, in the position
of the lowest-order one-bit in the specified <paramref name="value"/>, or zero if
the specified <paramref name="value"/> is itself equal to zero.</returns>
</member>
<member name="M:J2N.Numerics.BitOperation.LowestOneBit(System.Int64)">
<summary>
Returns a <see cref="T:System.Int64"/> value with at most a single one-bit, in the
position of the lowest-order ("rightmost") one-bit in the specified
<see cref="T:System.Int64"/> value. Returns zero if the specified value has no
one-bits in its two's complement binary representation, that is, if it
is equal to zero.
</summary>
<param name="value">The <see cref="T:System.Int64"/> to examine.</param>
<returns>A <see cref="T:System.Int64"/> value with a single one-bit, in the position
of the lowest-order one-bit in the specified <paramref name="value"/>, or zero if
the specified <paramref name="value"/> is itself equal to zero.</returns>
</member>
<member name="M:J2N.Numerics.BitOperation.Reverse(System.Int32)">
<summary>
Returns the value obtained by reversing the order of the bits in the
two's complement binary representation of the specified <paramref name="value"/>.
</summary>
<param name="value">The <see cref="T:System.Int32"/> value for which to reverse the bit order.</param>
<returns>The value obtained by reversing order of the bits in the
specified <paramref name="value"/>.</returns>
</member>
<member name="M:J2N.Numerics.BitOperation.Reverse(System.Int64)">
<summary>
Returns the value obtained by reversing the order of the bits in the
two's complement binary representation of the specified <paramref name="value"/>.
</summary>
<param name="value">The <see cref="T:System.Int64"/> value for which to reverse the bit order.</param>
<returns>The value obtained by reversing order of the bits in the
specified <paramref name="value"/>.</returns>
</member>
<member name="M:J2N.Numerics.BitOperation.ReverseBytes(System.Int16)">
<summary>
Returns the value obtained by reversing the order of the bytes in the
two's complement representation of the specified <paramref name="value"/>.
</summary>
<param name="value">The <see cref="T:System.Int16"/> value for which to reverse the byte order.</param>
<returns>The value obtained by reversing the bytes in the specified
<paramref name="value"/>.</returns>
</member>
<member name="M:J2N.Numerics.BitOperation.ReverseBytes(System.Int32)">
<summary>
Returns the value obtained by reversing the order of the bytes in the
two's complement representation of the specified <paramref name="value"/>.
</summary>
<param name="value">The <see cref="T:System.Int32"/> value for which to reverse the byte order.</param>
<returns>The value obtained by reversing the bytes in the specified
<paramref name="value"/>.</returns>
</member>
<member name="M:J2N.Numerics.BitOperation.ReverseBytes(System.Int64)">
<summary>
Returns the value obtained by reversing the order of the bytes in the
two's complement representation of the specified <paramref name="value"/>.
</summary>
<param name="value">The <see cref="T:System.Int64"/> value for which to reverse the byte order.</param>
<returns>The value obtained by reversing the bytes in the specified
<paramref name="value"/>.</returns>
</member>
<member name="M:J2N.Numerics.BitOperation.RotateLeft(System.Int32,System.Int32)">
<summary>
Returns the value obtained by rotating the two's complement binary
representation of the specified <paramref name="value"/> left by the
specified number of bits. (Bits shifted out of the left hand, or
high-order, side reenter on the right, or low-order.)
<para/>
Note that left rotation with a negative distance is equivalent to
right rotation: <c>val.RotateLeft(-distance) == val.RotateRight(distance)</c>.
Note also that rotation by any multiple of 32 is a
no-op, so all but the last five bits of the rotation distance can be
ignored, even if the distance is negative:
<c>val.RotateLeft(distance) == val.RotateLeft(distance &amp; 0x1F)</c>.
</summary>
<param name="value">The <see cref="T:System.Int32"/> value to rotate left.</param>
<param name="distance">The number of bits to rotate.</param>
<returns>The value obtained by rotating the two's complement binary
representation of the specified <paramref name="value"/> left by the
specified number of bits.</returns>
</member>
<member name="M:J2N.Numerics.BitOperation.RotateLeft(System.Int64,System.Int32)">
<summary>
Returns the value obtained by rotating the two's complement binary
representation of the specified <paramref name="value"/> left by the
specified number of bits. (Bits shifted out of the left hand, or
high-order, side reenter on the right, or low-order.)
<para/>
Note that left rotation with a negative distance is equivalent to
right rotation: <c>val.RotateLeft(-distance) == val.RotateRight(distance)</c>
Note also that rotation by any multiple of 64 is a
no-op, so all but the last six bits of the rotation distance can be
ignored, even if the distance is negative:
<c>val.RotateLeft(distance) == val.RotateLeft(distance &amp; 0x3F)</c>.
</summary>
<param name="value">The <see cref="T:System.Int64"/> value to rotate left.</param>
<param name="distance">The number of bits to rotate.</param>
<returns>The value obtained by rotating the two's complement binary
representation of the specified <paramref name="value"/> left by the
specified number of bits.</returns>
</member>
<member name="M:J2N.Numerics.BitOperation.RotateRight(System.Int32,System.Int32)">
<summary>
Returns the value obtained by rotating the two's complement binary
representation of the specified <paramref name="value"/> right by the
specified number of bits. (Bits shifted out of the right hand, or
low-order, side reenter on the left, or high-order.)
<para/>
Note that right rotation with a negative distance is equivalent to
left rotation: <c>val.RotateRight(-distance) == val.RotateLeft(distance)</c>.
Note also that rotation by any multiple of 32 is a
no-op, so all but the last five bits of the rotation distance can be
ignored, even if the distance is negative:
<c>val.RotateRight(distance) == val.RotateLeft(distance &amp; 0x1F)</c>.
</summary>
<param name="value">The <see cref="T:System.Int32"/> value to rotate right.</param>
<param name="distance">The number of bits to rotate.</param>
<returns>The value obtained by rotating the two's complement binary
representation of the specified <paramref name="value"/> right by the
specified number of bits.</returns>
</member>
<member name="M:J2N.Numerics.BitOperation.RotateRight(System.Int64,System.Int32)">
<summary>
Returns the value obtained by rotating the two's complement binary
representation of the specified <see cref="T:System.Int64"/> value right by the
specified number of bits. (Bits shifted out of the right hand, or
low-order, side reenter on the left, or high-order.)
<para/>
Note that right rotation with a negative distance is equivalent to
left rotation: <c>val.RotateRight(-distance) == val.RotateLeft(distance)</c>.
Note also that rotation by any multiple of 64 is a
no-op, so all but the last six bits of the rotation distance can be
ignored, even if the distance is negative:
<c>val.RotateRight(distance) == val.RotateRight(distance &amp; 0x3F)</c>.
</summary>
<param name="value">The <see cref="T:System.Int64"/> value to rotate right.</param>
<param name="distance">The number of bits to rotate.</param>
<returns>The value obtained by rotating the two's complement binary
representation of the specified <paramref name="value"/> right by the
specified number of bits.</returns>
</member>
<member name="M:J2N.Numerics.BitOperation.TripleShift(System.Byte,System.Int32)">
<summary>
Performs an unsigned bitwise right shift to the current <paramref name="number"/>.
<para/>
Usage Note: Replacement for Java triple shift (>>>) operator. The
value is converted to <see cref="T:System.SByte"/> first before doing the conversion,
so the result is the same as it is for the Java byte, which is signed.
</summary>
<param name="number">Number to operate on.</param>
<param name="bits">Ammount of bits to shift.</param>
<returns>The resulting number from the shift operation as <see cref="T:System.Int32"/>.</returns>
</member>
<member name="M:J2N.Numerics.BitOperation.TripleShift(System.SByte,System.Int32)">
<summary>
Performs an unsigned bitwise right shift to the current <paramref name="number"/>.
<para/>
Usage Note: Replacement for Java triple shift (>>>) operator.
</summary>
<param name="number">Number to operate on.</param>
<param name="bits">Ammount of bits to shift.</param>
<returns>The resulting number from the shift operation as <see cref="T:System.Int32"/>.</returns>
</member>
<member name="M:J2N.Numerics.BitOperation.TripleShift(System.Char,System.Int32)">
<summary>
Performs an unsigned bitwise right shift to the current <paramref name="number"/>.
<para/>
Usage Note: Replacement for Java triple shift (>>>) operator.
</summary>
<param name="number">Number to operate on.</param>
<param name="bits">Ammount of bits to shift.</param>
<returns>The resulting number from the shift operation as <see cref="T:System.Int32"/>.</returns>
</member>
<member name="M:J2N.Numerics.BitOperation.TripleShift(System.Int16,System.Int32)">
<summary>
Performs an unsigned bitwise right shift to the current <paramref name="number"/>.
<para/>
Usage Note: Replacement for Java triple shift (>>>) operator.
</summary>
<param name="number">Number to operate on.</param>
<param name="bits">Ammount of bits to shift.</param>
<returns>The resulting number from the shift operation as <see cref="T:System.Int16"/>.</returns>
</member>
<member name="M:J2N.Numerics.BitOperation.TripleShift(System.Int32,System.Int32)">
<summary>
Performs an unsigned bitwise right shift to the current <paramref name="number"/>.
<para/>
Usage Note: Replacement for Java triple shift (>>>) operator.
</summary>
<param name="number">Number to operate on.</param>
<param name="bits">Ammount of bits to shift.</param>
<returns>The resulting number from the shift operation as <see cref="T:System.Int32"/>.</returns>
</member>
<member name="M:J2N.Numerics.BitOperation.TripleShift(System.Int64,System.Int32)">
<summary>
Performs an unsigned bitwise right shift to the current <paramref name="number"/>.
<para/>
Usage Note: Replacement for Java triple shift (>>>) operator.
</summary>
<param name="number">Number to operate on.</param>
<param name="bits">Ammount of bits to shift.</param>
<returns>The resulting number from the shift operation as <see cref="T:System.Int64"/>.</returns>
</member>
<member name="T:J2N.Numerics.Byte">
<summary>
An immutable reference type that wraps the primitive <see cref="T:System.Byte"/> type.
<para/>
In addition, this class provides methods for converting a <see cref="T:System.Byte"/> to a <see cref="T:System.String"/> and
a <see cref="T:System.String"/> to a <see cref="T:System.Byte"/> that are compatible with Java.
<para/>
Instances of this class can be produced implicitly by setting a <see cref="T:System.Byte"/> value to a variable declared
as <see cref="T:J2N.Numerics.Byte"/>
<code>
byte value = 4;
Byte instance = value;
</code>
Or explicitly by calling one of the <see cref="M:J2N.Numerics.Byte.GetInstance(System.Byte)"/>, <see cref="M:J2N.Numerics.Byte.Decode(System.String)"/>,
or <see cref="M:J2N.Numerics.Byte.TryDecode(System.String,J2N.Numerics.Byte@)"/> methods.
<para/>
The <see cref="T:System.Byte"/> value of a <see cref="T:J2N.Numerics.Byte"/> can also be retrieved in several ways. For implicit
conversion, simply assign a <see cref="T:System.Byte"/> variable an instance of <see cref="T:J2N.Numerics.Byte"/>.
<code>
Byte instance = Byte.GetInstance((byte)4);
byte value = instance;
</code>
To explicitly get the value, call <see cref="M:J2N.Numerics.Byte.ToByte"/> or use the <see cref="T:System.Convert"/> class.
<code>
byte converted1 = instance.ToByte();
byte converted2 = Convert.ToByte(instance, NumberFormatInfo.InvariantInfo);
</code>
<para/>
In most cases, the number types in .NET will suffice. The main reason for creating an object to wrap numeric types is to
provide a way to make strongly-typed instances that can co-exist in collections and arrays with reference types.
For example, when creating a table object that has columns with a mix of number and string data types.
When porting code from Java, there are sometimes cases where the design didn't factor in the use of value types,
so these classes can be used rather than reworking the design.
For more information about numbers classes, see
<a href="https://docs.oracle.com/javase/tutorial/java/data/numberclasses.html">The Numbers Classes</a>.
</summary>
<seealso cref="T:J2N.Numerics.Number"/>
<seealso cref="T:System.IConvertible"/>
<seealso cref="T:System.IFormattable"/>
<seealso cref="T:System.IComparable"/>
</member>
<member name="F:J2N.Numerics.Byte.value">
<summary>
The value which the receiver represents.
</summary>
</member>
<member name="F:J2N.Numerics.Byte.Size">
<summary>
Constant for the number of bits needed to represent a <see cref="T:System.Byte"/> in
two's complement form.
</summary>
</member>
<member name="F:J2N.Numerics.Byte.Cache">
<summary>
A cache of instances used by <see cref="M:J2N.Numerics.Byte.GetInstance(System.Byte)"/> and auto-boxing.
</summary>
</member>
<member name="M:J2N.Numerics.Byte.#ctor(System.Byte)">
<summary>
Initializes a new instance of the <see cref="T:J2N.Numerics.Byte"/> class.
</summary>
<param name="value">The primitive <see cref="T:System.Byte"/> value to store in the new instance.</param>
</member>
<member name="M:J2N.Numerics.Byte.CompareTo(J2N.Numerics.Byte)">
<summary>
Compares this instance to a specified <see cref="T:J2N.Numerics.Byte"/> and returns an indication of their relative values.
</summary>
<param name="value">An <see cref="T:J2N.Numerics.Byte"/> to compare, or <c>null</c>.</param>
<returns>
A signed integer that indicates the relative order of this instance and <paramref name="value"/>.
<list type="table">
<listheader>
<term>Return Value</term>
<term>Description </term>
</listheader>
<item>
<term>Less than zero</term>
<term>This instance is less than <paramref name="value"/>.</term>
</item>
<item>
<term>Zero</term>
<term>This instance is equal to <paramref name="value"/>.</term>
</item>
<item>
<term>Greater than zero</term>
<term>This instance is greater than <paramref name="value"/>, or <paramref name="value"/> is <c>null</c>.</term>
</item>
</list>
</returns>
<remarks>
This method implements the <see cref="T:System.IComparable`1"/> interface and performs slightly better than the <see cref="M:J2N.Numerics.Byte.CompareTo(System.Object)"/>
method because it does not have to convert the <paramref name="value"/> parameter to an object.
</remarks>
</member>
<member name="M:J2N.Numerics.Byte.CompareTo(System.Object)">
<summary>
Compares this instance to a specified object and returns an indication of their relative values.
</summary>
<param name="value">An object to compare, or <c>null</c>.</param>
<returns>
A signed integer that indicates the relative order of this instance and <paramref name="value"/>.
<list type="table">
<listheader>
<term>Return Value</term>
<term>Description </term>
</listheader>
<item>
<term>Less than zero</term>
<term>This instance is less than <paramref name="value"/>.</term>
</item>
<item>
<term>Zero</term>
<term>This instance is equal to <paramref name="value"/>.</term>
</item>
<item>
<term>Greater than zero</term>
<term>This instance is greater than <paramref name="value"/>, or <paramref name="value"/> is <c>null</c>.</term>
</item>
</list>
</returns>
<exception cref="T:System.ArgumentException"><paramref name="value"/> is not a <see cref="T:J2N.Numerics.Byte"/>.</exception>
<remarks>
<paramref name="value"/> must be <c>null</c> or an instance of <see cref="T:J2N.Numerics.Byte"/>; otherwise, an exception is thrown.
<para/>
Any instance of <see cref="T:J2N.Numerics.Byte"/>, regardless of its value, is considered greater than <c>null</c>.
<para/>
This method is implemented to support the <see cref="T:System.IComparable"/> interface.
</remarks>
</member>
<member name="M:J2N.Numerics.Byte.Decode(System.String)">
<summary>
Decodes a <see cref="T:System.String"/> into an <see cref="T:J2N.Numerics.Byte"/>. Accepts decimal, hexadecimal, and octal numbers given by the following grammar:
<list type="bullet">
<item>
<term><i>DecodableString:</i></term>
<list type="bullet">
<item><term><i>Sign</i> (<sub>opt</sub>) <i>DecimalNumeral</i></term></item>
<item><term><i>Sign</i> (<sub>opt</sub>) <c>0x</c> <i>HexDigits</i></term></item>
<item><term><i>Sign</i> (<sub>opt</sub>) <c>0X</c> <i>HexDigits</i></term></item>
<item><term><i>Sign</i> (<sub>opt</sub>) <c>#</c> <i>HexDigits</i></term></item>
<item><term><i>Sign</i> (<sub>opt</sub>) <c>0</c> <i>OctalDigits</i></term></item>
</list>
</item>
<item>
<term><i>Sign:</i></term>
<list type="bullet">
<item><term><c>-</c></term></item>
<item><term><c>+</c></term></item>
</list>
</item>
</list>
<para/>
<i>DecimalNumeral</i>, <i>HexDigits</i>, and <i>OctalDigits</i> are as defined in section
<a href="https://docs.oracle.com/javase/specs/jls/se16/html/jls-3.html#jls-3.10.1">3.10.1</a> of
The Java Language Specification, except that underscores are not accepted between digits.
<para/>
The sequence of characters following an optional sign and/or radix specifier (<c>"0x"</c>, <c>"0X"</c>, <c>"#"</c>, or leading zero) is
parsed as by the <see cref="M:J2N.Numerics.Byte.Parse(System.String,System.Int32)"/> method with the indicated radix (10, 16, or 8).
The sequence of characters must represent a positive value or an <see cref="T:System.OverflowException"/> is thrown.
The result is negated if the first character of the specified <see cref="T:System.String"/> is
the ASCII character \u002d ('-'). No whitespace characters are permitted in the <see cref="T:System.String"/>.
<para/>
For compatibility with Java, this method successfully parses values from <see cref="F:System.SByte.MinValue"/> to <see cref="F:System.Byte.MaxValue"/>,
although it returns <see cref="T:J2N.Numerics.Byte"/> which stores an unsigned value internally and may need to be converted depending on its usage.
</summary>
<param name="s">A <see cref="T:System.String"/> that contains the number to convert.</param>
<returns>An 8-bit unsigned integer that is equivalent to the number in <paramref name="s"/>.</returns>
<exception cref="T:System.ArgumentNullException"><paramref name="s"/> is <c>null</c>.</exception>
<exception cref="T:System.FormatException">
<paramref name="s"/> contains a character that is not a valid digit in the base specified by its format.
The exception message indicates that there are no digits to convert if the first character in <paramref name="s"/> is invalid;
otherwise, the message indicates that <paramref name="s"/> contains invalid trailing characters.
<para/>
-or-
<para/>
<paramref name="s"/> contains only a the ASCII character \u002d ('-') or \u002B ('+') sign and/or hexadecimal
prefix (0X, 0x, or #) or octal prefix (0) with no digits.
</exception>
<exception cref="T:System.OverflowException">
<paramref name="s"/> represents a number that is less than <see cref="F:System.SByte.MinValue"/> or greater than <see cref="F:System.Byte.MaxValue"/>.
<para/>
-or-
<para/>
<paramref name="s"/> represents a two's complement negative number. Only positive values are allowed without a negative sign.
</exception>
</member>
<member name="M:J2N.Numerics.Byte.TryDecode(System.String,J2N.Numerics.Byte@)">
<summary>
Decodes a <see cref="T:System.String"/> into an <see cref="T:J2N.Numerics.Byte"/>. Accepts decimal, hexadecimal, and octal numbers given by the following grammar:
<list type="bullet">
<item>
<term><i>DecodableString:</i></term>
<list type="bullet">
<item><term><i>Sign</i> (<sub>opt</sub>) <i>DecimalNumeral</i></term></item>
<item><term><i>Sign</i> (<sub>opt</sub>) <c>0x</c> <i>HexDigits</i></term></item>
<item><term><i>Sign</i> (<sub>opt</sub>) <c>0X</c> <i>HexDigits</i></term></item>
<item><term><i>Sign</i> (<sub>opt</sub>) <c>#</c> <i>HexDigits</i></term></item>
<item><term><i>Sign</i> (<sub>opt</sub>) <c>0</c> <i>OctalDigits</i></term></item>
</list>
</item>
<item>
<term><i>Sign:</i></term>
<list type="bullet">
<item><term><c>-</c></term></item>
<item><term><c>+</c></term></item>
</list>
</item>
</list>
<para/>
<i>DecimalNumeral</i>, <i>HexDigits</i>, and <i>OctalDigits</i> are as defined in section
<a href="https://docs.oracle.com/javase/specs/jls/se16/html/jls-3.html#jls-3.10.1">3.10.1</a> of
The Java Language Specification, except that underscores are not accepted between digits.
<para/>
The sequence of characters following an optional sign and/or radix specifier (<c>"0x"</c>, <c>"0X"</c>, <c>"#"</c>, or leading zero) is
parsed as by the <see cref="M:J2N.Numerics.Byte.Parse(System.String,System.Int32)"/> method with the indicated radix (10, 16, or 8).
The sequence of characters must represent a positive value.
The result is negated if the first character of the specified <see cref="T:System.String"/> is
the ASCII character \u002d ('-'). No whitespace characters are permitted in the <see cref="T:System.String"/>.
<para/>
For compatibility with Java, this method successfully parses values from <see cref="F:System.SByte.MinValue"/> to <see cref="F:System.Byte.MaxValue"/>,
although it returns <see cref="T:J2N.Numerics.Byte"/> which stores an unsigned value internally and may need to be converted depending on its usage.
</summary>
<param name="s">A <see cref="T:System.String"/> that contains the number to convert.</param>
<param name="result">When this method returns, contains the 8-bit unsigned integer value equivalent to the number contained in <paramref name="s"/>,
if the conversion succeeded, or zero if the conversion failed. The conversion fails if the <paramref name="s"/> parameter is <c>null</c> or
<see cref="F:System.String.Empty"/>, is not of the correct format, or represents a number less than <see cref="F:System.SByte.MinValue"/> or greater than
<see cref="F:System.Byte.MaxValue"/>. This parameter is passed uninitialized; any value originally supplied in result will be overwritten.</param>
<returns><c>true</c> if <paramref name="s"/> was converted successfully; otherwise, <c>false</c>.</returns>
</member>
<member name="M:J2N.Numerics.Byte.Equals(J2N.Numerics.Byte)">
<summary>
Returns a value indicating whether this instance is equal to a specified <see cref="T:J2N.Numerics.Byte"/> value.
</summary>
<param name="obj">A <see cref="T:J2N.Numerics.Byte"/> value to compare to this instance.</param>
<returns><c>true</c> if <paramref name="obj"/> has the same value as this instance; otherwise, <c>false</c>.</returns>
<remarks>This method implements the <see cref="T:System.IEquatable`1"/> interface, and performs slightly better than
<see cref="M:J2N.Numerics.Byte.Equals(System.Object)"/> because it does not have to convert the <paramref name="obj"/> parameter to an object.</remarks>
</member>
<member name="M:J2N.Numerics.Byte.Equals(System.Object)">
<summary>
Returns a value indicating whether this instance is equal to a specified object.
</summary>
<param name="obj">An object to compare with this instance.</param>
<returns><c>true</c> if <paramref name="obj"/> is an instance of <see cref="T:J2N.Numerics.Byte"/> and equals the value of
this instance; otherwise, <c>false</c>.</returns>
</member>
<member name="M:J2N.Numerics.Byte.GetHashCode">
<summary>
Returns the hash code for this instance.
</summary>
<returns>A 32-bit signed integer hash code.</returns>
</member>
<member name="M:J2N.Numerics.Byte.Parse(System.ReadOnlySpan{System.Char},System.Int32,System.Int32,System.Int32)">
<summary>
Parses the <see cref="T:System.ReadOnlySpan`1"/> argument as a <see cref="T:System.Byte"/> in the specified <paramref name="radix"/>, beginning at the
specified <paramref name="startIndex"/> with the specified number of characters in <paramref name="length"/>.
<para/>
IMPORTANT: This method has .NET semantics. That is, the <paramref name="length"/> parameter
is a length rather than an exclusive end index as would be the case in Java. To translate from
Java, use <c>endIndex - beginIndex</c> to obtain the <paramref name="length"/>.
<para/>
Usage Note: This method is similar to the <see cref="M:System.Convert.ToByte(System.String,System.Int32)"/> method, however it allows conversion
of the value without allocating a substring. It also differs in that it allows the use of the ASCII character \u002d ('-')
or \u002B ('+') in any <paramref name="radix"/> and allows any <paramref name="radix"/> value from
<see cref="F:J2N.Character.MinRadix"/> to <see cref="F:J2N.Character.MaxRadix"/> inclusive.
<para/>
Supports any BMP (Basic Multilingual Plane) or SMP (Supplementary Mulitlingual Plane) digit as defined by Unicode 10.0.
<para/>
For compatibility with Java, this method successfully parses values from <see cref="F:System.SByte.MinValue"/> to <see cref="F:System.Byte.MaxValue"/>,
but the value returned is type <see cref="T:System.Byte"/> and may need to be converted to <see cref="T:System.SByte"/> depending on how it is used.
</summary>
<param name="s">The <see cref="T:System.ReadOnlySpan`1"/> containing the <see cref="T:System.Byte"/> representation to be parsed.</param>
<param name="startIndex">The zero-based starting character position of a region in <paramref name="s"/>.</param>
<param name="length">The number of characters in the region to parse.</param>
<param name="radix">The radix (or base) to use when parsing <paramref name="s"/>. The value must be in the range
<see cref="F:J2N.Character.MinRadix"/> - <see cref="F:J2N.Character.MaxRadix"/> inclusive.</param>
<returns>The <see cref="T:System.Byte"/> represented by the subsequence in the specified <paramref name="radix"/>.</returns>
<remarks>
If <paramref name="radix"/> is 16, you can prefix the number specified by the <paramref name="s"/> parameter with "0x" or "0X".
<para/>
To specify a negative value for base (radix) 10 numeric representations, use the ASCII character \u002d ('-').
<para/>
For any other <paramref name="radix"/>, negative values may either be specified with ASCII character \u002d ('-')
(as in Java) or by specifying the two's complement representation (as in .NET), but not both.
In the latter case, the highest-order binary bit of an integer (bit 7) is interpreted as the sign bit.
As a result, it is possible to write code in which a non-base 10 number that is out of the range of the <see cref="T:System.Byte"/>
data type is converted to a <see cref="T:System.Byte"/> value without the method throwing an exception.
</remarks>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="startIndex"/> or <paramref name="length"/> is less than zero.
<para/>
-or-
<para/>
<paramref name="startIndex"/> and <paramref name="length"/> refer to a location outside of <paramref name="s"/>.
<para/>
-or-
<para/>
<paramref name="radix"/> is less than <see cref="F:J2N.Character.MinRadix"/> or greater than <see cref="F:J2N.Character.MaxRadix"/>.
</exception>
<exception cref="T:System.FormatException">
The range of characters in <paramref name="s"/> specified by <paramref name="startIndex"/> and <paramref name="length"/>
contains a character that is not a valid digit in the base specified by <paramref name="radix"/>.
The exception message indicates that there are no digits to convert if the first character specified by
<paramref name="startIndex"/> is invalid; otherwise, the message indicates that the range of characters in
<paramref name="s"/> specified by <paramref name="startIndex"/> and <paramref name="length"/> contains invalid trailing characters.
<para/>
-or-
<para/>
The range of characters in <paramref name="s"/> specified by <paramref name="startIndex"/> and <paramref name="length"/>
contain only a the ASCII character \u002d ('-') or \u002B ('+') sign and/or hexadecimal prefix 0X or 0x with no digits.
<para/>
-or-
<para/>
<paramref name="length"/> is zero.
</exception>
<exception cref="T:System.OverflowException">
The range of characters in <paramref name="s"/> specified by <paramref name="startIndex"/> and <paramref name="length"/>
represents a number that is less than <see cref="F:System.SByte.MinValue"/> or greater than <see cref="F:System.Byte.MaxValue"/>.
</exception>
<seealso cref="M:J2N.Numerics.Byte.TryParse(System.ReadOnlySpan{System.Char},System.Int32,System.Int32,System.Int32,System.Byte@)"/>
<seealso cref="M:J2N.Numerics.Byte.Parse(System.String,System.Int32)"/>
</member>
<member name="M:J2N.Numerics.Byte.Parse(System.String,System.Int32,System.Int32,System.Int32)">
<summary>
Parses the <see cref="T:System.String"/> argument as a <see cref="T:System.Byte"/> in the specified <paramref name="radix"/>, beginning at the
specified <paramref name="startIndex"/> with the specified number of characters in <paramref name="length"/>.
<para/>
IMPORTANT: This method has .NET semantics. That is, the <paramref name="length"/> parameter
is a length rather than an exclusive end index as would be the case in Java. To translate from
Java, use <c>endIndex - beginIndex</c> to obtain the <paramref name="length"/>.
<para/>
Usage Note: This method is similar to the <see cref="M:System.Convert.ToByte(System.String,System.Int32)"/> method, however it allows conversion
of the value without allocating a substring. It also differs in that it allows the use of the ASCII character \u002d ('-')
or \u002B ('+') in any <paramref name="radix"/> and allows any <paramref name="radix"/> value from
<see cref="F:J2N.Character.MinRadix"/> to <see cref="F:J2N.Character.MaxRadix"/> inclusive.
<para/>
Supports any BMP (Basic Multilingual Plane) or SMP (Supplementary Mulitlingual Plane) digit as defined by Unicode 10.0.
<para/>
For compatibility with Java, this method successfully parses values from <see cref="F:System.SByte.MinValue"/> to <see cref="F:System.Byte.MaxValue"/>,
but the value returned is type <see cref="T:System.Byte"/> and may need to be converted to <see cref="T:System.SByte"/> depending on how it is used.
</summary>
<param name="s">The <see cref="T:System.String"/> containing the <see cref="T:System.Byte"/> representation to be parsed.</param>
<param name="startIndex">The zero-based starting character position of a region in <paramref name="s"/>.</param>
<param name="length">The number of characters in the region to parse.</param>
<param name="radix">The radix (or base) to use when parsing <paramref name="s"/>. The value must be in the range
<see cref="F:J2N.Character.MinRadix"/> - <see cref="F:J2N.Character.MaxRadix"/> inclusive.</param>
<returns>The <see cref="T:System.Byte"/> represented by the subsequence in the specified <paramref name="radix"/>.</returns>
<remarks>
If <paramref name="radix"/> is 16, you can prefix the number specified by the <paramref name="s"/> parameter with "0x" or "0X".
<para/>
To specify a negative value for base (radix) 10 numeric representations, use the ASCII character \u002d ('-').
<para/>
For any other <paramref name="radix"/>, negative values may either be specified with ASCII character \u002d ('-')
(as in Java) or by specifying the two's complement representation (as in .NET), but not both.
In the latter case, the highest-order binary bit of an integer (bit 7) is interpreted as the sign bit.
As a result, it is possible to write code in which a non-base 10 number that is out of the range of the <see cref="T:System.Byte"/>
data type is converted to a <see cref="T:System.Byte"/> value without the method throwing an exception.
</remarks>
<exception cref="T:System.ArgumentNullException"><paramref name="s"/> is <c>null</c>.</exception>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="startIndex"/> or <paramref name="length"/> is less than zero.
<para/>
-or-
<para/>
<paramref name="startIndex"/> and <paramref name="length"/> refer to a location outside of <paramref name="s"/>.
<para/>
-or-
<para/>
<paramref name="radix"/> is less than <see cref="F:J2N.Character.MinRadix"/> or greater than <see cref="F:J2N.Character.MaxRadix"/>.
</exception>
<exception cref="T:System.FormatException">
The range of characters in <paramref name="s"/> specified by <paramref name="startIndex"/> and <paramref name="length"/>
contains a character that is not a valid digit in the base specified by <paramref name="radix"/>.
The exception message indicates that there are no digits to convert if the first character specified by
<paramref name="startIndex"/> is invalid; otherwise, the message indicates that the range of characters in
<paramref name="s"/> specified by <paramref name="startIndex"/> and <paramref name="length"/> contains invalid trailing characters.
<para/>
-or-
<para/>
The range of characters in <paramref name="s"/> specified by <paramref name="startIndex"/> and <paramref name="length"/>
contain only a the ASCII character \u002d ('-') or \u002B ('+') sign and/or hexadecimal prefix 0X or 0x with no digits.
<para/>
-or-
<para/>
<paramref name="length"/> is zero.
</exception>
<exception cref="T:System.OverflowException">
The range of characters in <paramref name="s"/> specified by <paramref name="startIndex"/> and <paramref name="length"/>
represents a number that is less than <see cref="F:System.SByte.MinValue"/> or greater than <see cref="F:System.Byte.MaxValue"/>.
</exception>
<seealso cref="M:J2N.Numerics.Byte.TryParse(System.String,System.Int32,System.Int32,System.Int32,System.Byte@)"/>
<seealso cref="M:J2N.Numerics.Byte.Parse(System.String,System.Int32)"/>
</member>
<member name="M:J2N.Numerics.Byte.Parse(System.Char[],System.Int32,System.Int32,System.Int32)">
<summary>
Parses the <see cref="T:char[]"/> argument as a <see cref="T:System.Byte"/> in the specified <paramref name="radix"/>, beginning at the
specified <paramref name="startIndex"/> with the specified number of characters in <paramref name="length"/>.
<para/>
IMPORTANT: This method has .NET semantics. That is, the <paramref name="length"/> parameter
is a length rather than an exclusive end index as would be the case in Java. To translate from
Java, use <c>endIndex - beginIndex</c> to obtain the <paramref name="length"/>.
<para/>
Usage Note: This method is similar to the <see cref="M:System.Convert.ToByte(System.String,System.Int32)"/> method, however it allows conversion
of the value without allocating a substring. It also differs in that it allows the use of the ASCII character \u002d ('-')
or \u002B ('+') in any <paramref name="radix"/> and allows any <paramref name="radix"/> value from
<see cref="F:J2N.Character.MinRadix"/> to <see cref="F:J2N.Character.MaxRadix"/> inclusive.
<para/>
Supports any BMP (Basic Multilingual Plane) or SMP (Supplementary Mulitlingual Plane) digit as defined by Unicode 10.0.
<para/>
For compatibility with Java, this method successfully parses values from <see cref="F:System.SByte.MinValue"/> to <see cref="F:System.Byte.MaxValue"/>,
but the value returned is type <see cref="T:System.Byte"/> and may need to be converted to <see cref="T:System.SByte"/> depending on how it is used.
</summary>
<param name="s">The <see cref="T:char[]"/> containing the <see cref="T:System.Byte"/> representation to be parsed.</param>
<param name="startIndex">The zero-based starting character position of a region in <paramref name="s"/>.</param>
<param name="length">The number of characters in the region to parse.</param>
<param name="radix">The radix (or base) to use when parsing <paramref name="s"/>. The value must be in the range
<see cref="F:J2N.Character.MinRadix"/> - <see cref="F:J2N.Character.MaxRadix"/> inclusive.</param>
<returns>The <see cref="T:System.Byte"/> represented by the subsequence in the specified <paramref name="radix"/>.</returns>
<remarks>
If <paramref name="radix"/> is 16, you can prefix the number specified by the <paramref name="s"/> parameter with "0x" or "0X".
<para/>
To specify a negative value for base (radix) 10 numeric representations, use the ASCII character \u002d ('-').
<para/>
For any other <paramref name="radix"/>, negative values may either be specified with ASCII character \u002d ('-')
(as in Java) or by specifying the two's complement representation (as in .NET), but not both.
In the latter case, the highest-order binary bit of an integer (bit 7) is interpreted as the sign bit.
As a result, it is possible to write code in which a non-base 10 number that is out of the range of the <see cref="T:System.Byte"/>
data type is converted to a <see cref="T:System.Byte"/> value without the method throwing an exception.
</remarks>
<exception cref="T:System.ArgumentNullException"><paramref name="s"/> is <c>null</c>.</exception>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="startIndex"/> or <paramref name="length"/> is less than zero.
<para/>
-or-
<para/>
<paramref name="startIndex"/> and <paramref name="length"/> refer to a location outside of <paramref name="s"/>.
<para/>
-or-
<para/>
<paramref name="radix"/> is less than <see cref="F:J2N.Character.MinRadix"/> or greater than <see cref="F:J2N.Character.MaxRadix"/>.
</exception>
<exception cref="T:System.FormatException">
The range of characters in <paramref name="s"/> specified by <paramref name="startIndex"/> and <paramref name="length"/>
contains a character that is not a valid digit in the base specified by <paramref name="radix"/>.
The exception message indicates that there are no digits to convert if the first character specified by
<paramref name="startIndex"/> is invalid; otherwise, the message indicates that the range of characters in
<paramref name="s"/> specified by <paramref name="startIndex"/> and <paramref name="length"/> contains invalid trailing characters.
<para/>
-or-
<para/>
The range of characters in <paramref name="s"/> specified by <paramref name="startIndex"/> and <paramref name="length"/>
contain only a the ASCII character \u002d ('-') or \u002B ('+') sign and/or hexadecimal prefix 0X or 0x with no digits.
<para/>
-or-
<para/>
<paramref name="length"/> is zero.
</exception>
<exception cref="T:System.OverflowException">
The range of characters in <paramref name="s"/> specified by <paramref name="startIndex"/> and <paramref name="length"/>
represents a number that is less than <see cref="F:System.SByte.MinValue"/> or greater than <see cref="F:System.Byte.MaxValue"/>.
</exception>
<seealso cref="M:J2N.Numerics.Byte.TryParse(System.Char[],System.Int32,System.Int32,System.Int32,System.Byte@)"/>
<seealso cref="M:J2N.Numerics.Byte.Parse(System.String,System.Int32)"/>
</member>
<member name="M:J2N.Numerics.Byte.Parse(System.Text.StringBuilder,System.Int32,System.Int32,System.Int32)">
<summary>
Parses the <see cref="T:System.Text.StringBuilder"/> argument as a <see cref="T:System.Byte"/> in the specified <paramref name="radix"/>, beginning at the
specified <paramref name="startIndex"/> with the specified number of characters in <paramref name="length"/>.
<para/>
IMPORTANT: This method has .NET semantics. That is, the <paramref name="length"/> parameter
is a length rather than an exclusive end index as would be the case in Java. To translate from
Java, use <c>endIndex - beginIndex</c> to obtain the <paramref name="length"/>.
<para/>
Usage Note: This method is similar to the <see cref="M:System.Convert.ToByte(System.String,System.Int32)"/> method, however it allows conversion
of the value without allocating a substring. It also differs in that it allows the use of the ASCII character \u002d ('-')
or \u002B ('+') in any <paramref name="radix"/> and allows any <paramref name="radix"/> value from
<see cref="F:J2N.Character.MinRadix"/> to <see cref="F:J2N.Character.MaxRadix"/> inclusive.
<para/>
Supports any BMP (Basic Multilingual Plane) or SMP (Supplementary Mulitlingual Plane) digit as defined by Unicode 10.0.
<para/>
For compatibility with Java, this method successfully parses values from <see cref="F:System.SByte.MinValue"/> to <see cref="F:System.Byte.MaxValue"/>,
but the value returned is type <see cref="T:System.Byte"/> and may need to be converted to <see cref="T:System.SByte"/> depending on how it is used.
</summary>
<param name="s">The <see cref="T:System.Text.StringBuilder"/> containing the <see cref="T:System.Byte"/> representation to be parsed.</param>
<param name="startIndex">The zero-based starting character position of a region in <paramref name="s"/>.</param>
<param name="length">The number of characters in the region to parse.</param>
<param name="radix">The radix (or base) to use when parsing <paramref name="s"/>. The value must be in the range
<see cref="F:J2N.Character.MinRadix"/> - <see cref="F:J2N.Character.MaxRadix"/> inclusive.</param>
<returns>The <see cref="T:System.Byte"/> represented by the subsequence in the specified <paramref name="radix"/>.</returns>
<remarks>
If <paramref name="radix"/> is 16, you can prefix the number specified by the <paramref name="s"/> parameter with "0x" or "0X".
<para/>
To specify a negative value for base (radix) 10 numeric representations, use the ASCII character \u002d ('-').
<para/>
For any other <paramref name="radix"/>, negative values may either be specified with ASCII character \u002d ('-')
(as in Java) or by specifying the two's complement representation (as in .NET), but not both.
In the latter case, the highest-order binary bit of an integer (bit 7) is interpreted as the sign bit.
As a result, it is possible to write code in which a non-base 10 number that is out of the range of the <see cref="T:System.Byte"/>
data type is converted to a <see cref="T:System.Byte"/> value without the method throwing an exception.
</remarks>
<exception cref="T:System.ArgumentNullException"><paramref name="s"/> is <c>null</c>.</exception>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="startIndex"/> or <paramref name="length"/> is less than zero.
<para/>
-or-
<para/>
<paramref name="startIndex"/> and <paramref name="length"/> refer to a location outside of <paramref name="s"/>.
<para/>
-or-
<para/>
<paramref name="radix"/> is less than <see cref="F:J2N.Character.MinRadix"/> or greater than <see cref="F:J2N.Character.MaxRadix"/>.
</exception>
<exception cref="T:System.FormatException">
The range of characters in <paramref name="s"/> specified by <paramref name="startIndex"/> and <paramref name="length"/>
contains a character that is not a valid digit in the base specified by <paramref name="radix"/>.
The exception message indicates that there are no digits to convert if the first character specified by
<paramref name="startIndex"/> is invalid; otherwise, the message indicates that the range of characters in
<paramref name="s"/> specified by <paramref name="startIndex"/> and <paramref name="length"/> contains invalid trailing characters.
<para/>
-or-
<para/>
The range of characters in <paramref name="s"/> specified by <paramref name="startIndex"/> and <paramref name="length"/>
contain only a the ASCII character \u002d ('-') or \u002B ('+') sign and/or hexadecimal prefix 0X or 0x with no digits.
<para/>
-or-
<para/>
<paramref name="length"/> is zero.
</exception>
<exception cref="T:System.OverflowException">
The range of characters in <paramref name="s"/> specified by <paramref name="startIndex"/> and <paramref name="length"/>
represents a number that is less than <see cref="F:System.SByte.MinValue"/> or greater than <see cref="F:System.Byte.MaxValue"/>.
</exception>
<seealso cref="M:J2N.Numerics.Byte.TryParse(System.Text.StringBuilder,System.Int32,System.Int32,System.Int32,System.Byte@)"/>
<seealso cref="M:J2N.Numerics.Byte.Parse(System.String,System.Int32)"/>
</member>
<member name="M:J2N.Numerics.Byte.Parse(J2N.Text.ICharSequence,System.Int32,System.Int32,System.Int32)">
<summary>
Parses the <see cref="T:J2N.Text.ICharSequence"/> argument as a <see cref="T:System.Byte"/> in the specified <paramref name="radix"/>, beginning at the
specified <paramref name="startIndex"/> with the specified number of characters in <paramref name="length"/>.
<para/>
IMPORTANT: This method has .NET semantics. That is, the <paramref name="length"/> parameter
is a length rather than an exclusive end index as would be the case in Java. To translate from
Java, use <c>endIndex - beginIndex</c> to obtain the <paramref name="length"/>.
<para/>
Usage Note: This method is similar to the <see cref="M:System.Convert.ToByte(System.String,System.Int32)"/> method, however it allows conversion
of the value without allocating a substring. It also differs in that it allows the use of the ASCII character \u002d ('-')
or \u002B ('+') in any <paramref name="radix"/> and allows any <paramref name="radix"/> value from
<see cref="F:J2N.Character.MinRadix"/> to <see cref="F:J2N.Character.MaxRadix"/> inclusive.
<para/>
Supports any BMP (Basic Multilingual Plane) or SMP (Supplementary Mulitlingual Plane) digit as defined by Unicode 10.0.
<para/>
For compatibility with Java, this method successfully parses values from <see cref="F:System.SByte.MinValue"/> to <see cref="F:System.Byte.MaxValue"/>,
but the value returned is type <see cref="T:System.Byte"/> and may need to be converted to <see cref="T:System.SByte"/> depending on how it is used.
</summary>
<param name="s">The <see cref="T:J2N.Text.ICharSequence"/> containing the <see cref="T:System.Byte"/> representation to be parsed.</param>
<param name="startIndex">The zero-based starting character position of a region in <paramref name="s"/>.</param>
<param name="length">The number of characters in the region to parse.</param>
<param name="radix">The radix (or base) to use when parsing <paramref name="s"/>. The value must be in the range
<see cref="F:J2N.Character.MinRadix"/> - <see cref="F:J2N.Character.MaxRadix"/> inclusive.</param>
<returns>The <see cref="T:System.Byte"/> represented by the subsequence in the specified <paramref name="radix"/>.</returns>
<remarks>
If <paramref name="radix"/> is 16, you can prefix the number specified by the <paramref name="s"/> parameter with "0x" or "0X".
<para/>
To specify a negative value for base (radix) 10 numeric representations, use the ASCII character \u002d ('-').
<para/>
For any other <paramref name="radix"/>, negative values may either be specified with ASCII character \u002d ('-')
(as in Java) or by specifying the two's complement representation (as in .NET), but not both.
In the latter case, the highest-order binary bit of an integer (bit 7) is interpreted as the sign bit.
As a result, it is possible to write code in which a non-base 10 number that is out of the range of the <see cref="T:System.Byte"/>
data type is converted to a <see cref="T:System.Byte"/> value without the method throwing an exception.
</remarks>
<exception cref="T:System.ArgumentNullException"><paramref name="s"/> is <c>null</c> or its <see cref="P:J2N.Text.ICharSequence.HasValue"/> property returns <c>false</c>.</exception>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="startIndex"/> or <paramref name="length"/> is less than zero.
<para/>
-or-
<para/>
<paramref name="startIndex"/> and <paramref name="length"/> refer to a location outside of <paramref name="s"/>.
<para/>
-or-
<para/>
<paramref name="radix"/> is less than <see cref="F:J2N.Character.MinRadix"/> or greater than <see cref="F:J2N.Character.MaxRadix"/>.
</exception>
<exception cref="T:System.FormatException">
The range of characters in <paramref name="s"/> specified by <paramref name="startIndex"/> and <paramref name="length"/>
contains a character that is not a valid digit in the base specified by <paramref name="radix"/>.
The exception message indicates that there are no digits to convert if the first character specified by
<paramref name="startIndex"/> is invalid; otherwise, the message indicates that the range of characters in
<paramref name="s"/> specified by <paramref name="startIndex"/> and <paramref name="length"/> contains invalid trailing characters.
<para/>
-or-
<para/>
The range of characters in <paramref name="s"/> specified by <paramref name="startIndex"/> and <paramref name="length"/>
contain only a the ASCII character \u002d ('-') or \u002B ('+') sign and/or hexadecimal prefix 0X or 0x with no digits.
<para/>
-or-
<para/>
<paramref name="length"/> is zero.
</exception>
<exception cref="T:System.OverflowException">
The range of characters in <paramref name="s"/> specified by <paramref name="startIndex"/> and <paramref name="length"/>
represents a number that is less than <see cref="F:System.SByte.MinValue"/> or greater than <see cref="F:System.Byte.MaxValue"/>.
</exception>
<seealso cref="M:J2N.Numerics.Byte.TryParse(J2N.Text.ICharSequence,System.Int32,System.Int32,System.Int32,System.Byte@)"/>
<seealso cref="M:J2N.Numerics.Byte.Parse(System.String,System.Int32)"/>
</member>
<member name="M:J2N.Numerics.Byte.TryParse(System.ReadOnlySpan{System.Char},System.Int32,System.Int32,System.Int32,System.Byte@)">
<summary>
Parses the <see cref="T:System.ReadOnlySpan`1"/> argument as a <see cref="T:System.Byte"/> in the specified <paramref name="radix"/>, beginning at the
specified <paramref name="startIndex"/> with the specified number of characters in <paramref name="length"/>.
<para/>
IMPORTANT: This method has .NET semantics. That is, the <paramref name="length"/> parameter
is a length rather than an exclusive end index as would be the case in Java. To translate from
Java, use <c>endIndex - beginIndex</c> to obtain the <paramref name="length"/>.
<para/>
Usage Note: This method is similar to the <see cref="M:System.Convert.ToByte(System.String,System.Int32)"/> method, however it allows conversion
of the value without allocating a substring. It also differs in that it allows the use of the ASCII character \u002d ('-')
or \u002B ('+') in any <paramref name="radix"/> and allows any <paramref name="radix"/> value from
<see cref="F:J2N.Character.MinRadix"/> to <see cref="F:J2N.Character.MaxRadix"/> inclusive.
<para/>
Supports any BMP (Basic Multilingual Plane) or SMP (Supplementary Mulitlingual Plane) digit as defined by Unicode 10.0.
<para/>
For compatibility with Java, this method successfully parses values from <see cref="F:System.SByte.MinValue"/> to <see cref="F:System.Byte.MaxValue"/>,
but the value returned is type <see cref="T:System.Byte"/> and may need to be converted to <see cref="T:System.SByte"/> depending on how it is used.
<para/>
Since <see cref="M:J2N.Numerics.Byte.Parse(System.ReadOnlySpan{System.Char},System.Int32,System.Int32,System.Int32)"/> throws many different exception types and in Java they are all normalized to
<c>NumberFormatException</c>, this method can be used to mimic the same behavior by throwing <see cref="T:System.FormatException"/>
when this method returns <c>false</c>.
</summary>
<param name="s">The <see cref="T:System.ReadOnlySpan`1"/> containing the <see cref="T:System.Byte"/> representation to be parsed.</param>
<param name="startIndex">The zero-based starting character position of a region in <paramref name="s"/>.</param>
<param name="length">The number of characters in the region to parse.</param>
<param name="radix">The radix (or base) to use when parsing <paramref name="s"/>. The value must be in the range
<see cref="F:J2N.Character.MinRadix"/> - <see cref="F:J2N.Character.MaxRadix"/> inclusive.</param>
<param name="result">The <see cref="T:System.Byte"/> represented by the subsequence in the specified <paramref name="radix"/>.</param>
<returns><c>true</c> if <paramref name="s"/> was converted successfully; otherwise, <c>false</c>.</returns>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="startIndex"/> or <paramref name="length"/> is less than zero.
<para/>
-or-
<para/>
<paramref name="startIndex"/> and <paramref name="length"/> refer to a location outside of <paramref name="s"/>.
<para/>
-or-
<para/>
<paramref name="radix"/> is less than <see cref="F:J2N.Character.MinRadix"/> or greater than <see cref="F:J2N.Character.MaxRadix"/>.
</exception>
<remarks>
If <paramref name="radix"/> is 16, you can prefix the number specified by the <paramref name="s"/> parameter with "0x" or "0X".
<para/>
To specify a negative value for base (radix) 10 numeric representations, use the ASCII character \u002d ('-').
<para/>
For any other <paramref name="radix"/>, negative values may either be specified with ASCII character \u002d ('-')
(as in Java) or by specifying the two's complement representation (as in .NET), but not both.
In the latter case, the highest-order binary bit of an integer (bit 7) is interpreted as the sign bit.
As a result, it is possible to write code in which a non-base 10 number that is out of the range of the <see cref="T:System.Byte"/>
data type is converted to a <see cref="T:System.Byte"/> value without the method throwing an exception.
</remarks>
<seealso cref="M:J2N.Numerics.Byte.Parse(System.ReadOnlySpan{System.Char},System.Int32,System.Int32,System.Int32)"/>
<seealso cref="M:J2N.Numerics.Byte.Parse(System.String,System.Int32)"/>
</member>
<member name="M:J2N.Numerics.Byte.TryParse(System.String,System.Int32,System.Int32,System.Int32,System.Byte@)">
<summary>
Parses the <see cref="T:System.String"/> argument as a <see cref="T:System.Byte"/> in the specified <paramref name="radix"/>, beginning at the
specified <paramref name="startIndex"/> with the specified number of characters in <paramref name="length"/>.
<para/>
IMPORTANT: This method has .NET semantics. That is, the <paramref name="length"/> parameter
is a length rather than an exclusive end index as would be the case in Java. To translate from
Java, use <c>endIndex - beginIndex</c> to obtain the <paramref name="length"/>.
<para/>
Usage Note: This method is similar to the <see cref="M:System.Convert.ToByte(System.String,System.Int32)"/> method, however it allows conversion
of the value without allocating a substring. It also differs in that it allows the use of the ASCII character \u002d ('-')
or \u002B ('+') in any <paramref name="radix"/> and allows any <paramref name="radix"/> value from
<see cref="F:J2N.Character.MinRadix"/> to <see cref="F:J2N.Character.MaxRadix"/> inclusive.
<para/>
Supports any BMP (Basic Multilingual Plane) or SMP (Supplementary Mulitlingual Plane) digit as defined by Unicode 10.0.
<para/>
For compatibility with Java, this method successfully parses values from <see cref="F:System.SByte.MinValue"/> to <see cref="F:System.Byte.MaxValue"/>,
but the value returned is type <see cref="T:System.Byte"/> and may need to be converted to <see cref="T:System.SByte"/> depending on how it is used.
<para/>
Since <see cref="M:J2N.Numerics.Byte.Parse(System.String,System.Int32,System.Int32,System.Int32)"/> throws many different exception types and in Java they are all normalized to
<c>NumberFormatException</c>, this method can be used to mimic the same behavior by throwing <see cref="T:System.FormatException"/>
when this method returns <c>false</c>.
</summary>
<param name="s">The <see cref="T:System.String"/> containing the <see cref="T:System.Byte"/> representation to be parsed.</param>
<param name="startIndex">The zero-based starting character position of a region in <paramref name="s"/>.</param>
<param name="length">The number of characters in the region to parse.</param>
<param name="radix">The radix (or base) to use when parsing <paramref name="s"/>. The value must be in the range
<see cref="F:J2N.Character.MinRadix"/> - <see cref="F:J2N.Character.MaxRadix"/> inclusive.</param>
<param name="result">The <see cref="T:System.Byte"/> represented by the subsequence in the specified <paramref name="radix"/>.</param>
<returns><c>true</c> if <paramref name="s"/> was converted successfully; otherwise, <c>false</c>.</returns>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="startIndex"/> or <paramref name="length"/> is less than zero.
<para/>
-or-
<para/>
<paramref name="startIndex"/> and <paramref name="length"/> refer to a location outside of <paramref name="s"/>.
<para/>
-or-
<para/>
<paramref name="radix"/> is less than <see cref="F:J2N.Character.MinRadix"/> or greater than <see cref="F:J2N.Character.MaxRadix"/>.
</exception>
<remarks>
If <paramref name="radix"/> is 16, you can prefix the number specified by the <paramref name="s"/> parameter with "0x" or "0X".
<para/>
To specify a negative value for base (radix) 10 numeric representations, use the ASCII character \u002d ('-').
<para/>
For any other <paramref name="radix"/>, negative values may either be specified with ASCII character \u002d ('-')
(as in Java) or by specifying the two's complement representation (as in .NET), but not both.
In the latter case, the highest-order binary bit of an integer (bit 7) is interpreted as the sign bit.
As a result, it is possible to write code in which a non-base 10 number that is out of the range of the <see cref="T:System.Byte"/>
data type is converted to a <see cref="T:System.Byte"/> value without the method throwing an exception.
</remarks>
<seealso cref="M:J2N.Numerics.Byte.Parse(System.String,System.Int32,System.Int32,System.Int32)"/>
<seealso cref="M:J2N.Numerics.Byte.Parse(System.String,System.Int32)"/>
</member>
<member name="M:J2N.Numerics.Byte.TryParse(System.Char[],System.Int32,System.Int32,System.Int32,System.Byte@)">
<summary>
Parses the <see cref="T:char[]"/> argument as a <see cref="T:System.Byte"/> in the specified <paramref name="radix"/>, beginning at the
specified <paramref name="startIndex"/> with the specified number of characters in <paramref name="length"/>.
<para/>
IMPORTANT: This method has .NET semantics. That is, the <paramref name="length"/> parameter
is a length rather than an exclusive end index as would be the case in Java. To translate from
Java, use <c>endIndex - beginIndex</c> to obtain the <paramref name="length"/>.
<para/>
Usage Note: This method is similar to the <see cref="M:System.Convert.ToByte(System.String,System.Int32)"/> method, however it allows conversion
of the value without allocating a substring. It also differs in that it allows the use of the ASCII character \u002d ('-')
or \u002B ('+') in any <paramref name="radix"/> and allows any <paramref name="radix"/> value from
<see cref="F:J2N.Character.MinRadix"/> to <see cref="F:J2N.Character.MaxRadix"/> inclusive.
<para/>
Supports any BMP (Basic Multilingual Plane) or SMP (Supplementary Mulitlingual Plane) digit as defined by Unicode 10.0.
<para/>
For compatibility with Java, this method successfully parses values from <see cref="F:System.SByte.MinValue"/> to <see cref="F:System.Byte.MaxValue"/>,
but the value returned is type <see cref="T:System.Byte"/> and may need to be converted to <see cref="T:System.SByte"/> depending on how it is used.
<para/>
Since <see cref="M:J2N.Numerics.Byte.Parse(System.Char[],System.Int32,System.Int32,System.Int32)"/> throws many different exception types and in Java they are all normalized to
<c>NumberFormatException</c>, this method can be used to mimic the same behavior by throwing <see cref="T:System.FormatException"/>
when this method returns <c>false</c>.
</summary>
<param name="s">The <see cref="T:char[]"/> containing the <see cref="T:System.Byte"/> representation to be parsed.</param>
<param name="startIndex">The zero-based starting character position of a region in <paramref name="s"/>.</param>
<param name="length">The number of characters in the region to parse.</param>
<param name="radix">The radix (or base) to use when parsing <paramref name="s"/>. The value must be in the range
<see cref="F:J2N.Character.MinRadix"/> - <see cref="F:J2N.Character.MaxRadix"/> inclusive.</param>
<param name="result">The <see cref="T:System.Byte"/> represented by the subsequence in the specified <paramref name="radix"/>.</param>
<returns><c>true</c> if <paramref name="s"/> was converted successfully; otherwise, <c>false</c>.</returns>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="startIndex"/> or <paramref name="length"/> is less than zero.
<para/>
-or-
<para/>
<paramref name="startIndex"/> and <paramref name="length"/> refer to a location outside of <paramref name="s"/>.
<para/>
-or-
<para/>
<paramref name="radix"/> is less than <see cref="F:J2N.Character.MinRadix"/> or greater than <see cref="F:J2N.Character.MaxRadix"/>.
</exception>
<remarks>
If <paramref name="radix"/> is 16, you can prefix the number specified by the <paramref name="s"/> parameter with "0x" or "0X".
<para/>
To specify a negative value for base (radix) 10 numeric representations, use the ASCII character \u002d ('-').
<para/>
For any other <paramref name="radix"/>, negative values may either be specified with ASCII character \u002d ('-')
(as in Java) or by specifying the two's complement representation (as in .NET), but not both.
In the latter case, the highest-order binary bit of an integer (bit 7) is interpreted as the sign bit.
As a result, it is possible to write code in which a non-base 10 number that is out of the range of the <see cref="T:System.Byte"/>
data type is converted to a <see cref="T:System.Byte"/> value without the method throwing an exception.
</remarks>
<seealso cref="M:J2N.Numerics.Byte.Parse(System.Char[],System.Int32,System.Int32,System.Int32)"/>
<seealso cref="M:J2N.Numerics.Byte.Parse(System.String,System.Int32)"/>
</member>
<member name="M:J2N.Numerics.Byte.TryParse(System.Text.StringBuilder,System.Int32,System.Int32,System.Int32,System.Byte@)">
<summary>
Parses the <see cref="T:System.Text.StringBuilder"/> argument as a <see cref="T:System.Byte"/> in the specified <paramref name="radix"/>, beginning at the
specified <paramref name="startIndex"/> with the specified number of characters in <paramref name="length"/>.
<para/>
IMPORTANT: This method has .NET semantics. That is, the <paramref name="length"/> parameter
is a length rather than an exclusive end index as would be the case in Java. To translate from
Java, use <c>endIndex - beginIndex</c> to obtain the <paramref name="length"/>.
<para/>
Usage Note: This method is similar to the <see cref="M:System.Convert.ToByte(System.String,System.Int32)"/> method, however it allows conversion
of the value without allocating a substring. It also differs in that it allows the use of the ASCII character \u002d ('-')
or \u002B ('+') in any <paramref name="radix"/> and allows any <paramref name="radix"/> value from
<see cref="F:J2N.Character.MinRadix"/> to <see cref="F:J2N.Character.MaxRadix"/> inclusive.
<para/>
Supports any BMP (Basic Multilingual Plane) or SMP (Supplementary Mulitlingual Plane) digit as defined by Unicode 10.0.
<para/>
For compatibility with Java, this method successfully parses values from <see cref="F:System.SByte.MinValue"/> to <see cref="F:System.Byte.MaxValue"/>,
but the value returned is type <see cref="T:System.Byte"/> and may need to be converted to <see cref="T:System.SByte"/> depending on how it is used.
<para/>
Since <see cref="M:J2N.Numerics.Byte.Parse(System.Text.StringBuilder,System.Int32,System.Int32,System.Int32)"/> throws many different exception types and in Java they are all normalized to
<c>NumberFormatException</c>, this method can be used to mimic the same behavior by throwing <see cref="T:System.FormatException"/>
when this method returns <c>false</c>.
</summary>
<param name="s">The <see cref="T:System.Text.StringBuilder"/> containing the <see cref="T:System.Byte"/> representation to be parsed.</param>
<param name="startIndex">The zero-based starting character position of a region in <paramref name="s"/>.</param>
<param name="length">The number of characters in the region to parse.</param>
<param name="radix">The radix (or base) to use when parsing <paramref name="s"/>. The value must be in the range
<see cref="F:J2N.Character.MinRadix"/> - <see cref="F:J2N.Character.MaxRadix"/> inclusive.</param>
<param name="result">The <see cref="T:System.Byte"/> represented by the subsequence in the specified <paramref name="radix"/>.</param>
<returns><c>true</c> if <paramref name="s"/> was converted successfully; otherwise, <c>false</c>.</returns>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="startIndex"/> or <paramref name="length"/> is less than zero.
<para/>
-or-
<para/>
<paramref name="startIndex"/> and <paramref name="length"/> refer to a location outside of <paramref name="s"/>.
<para/>
-or-
<para/>
<paramref name="radix"/> is less than <see cref="F:J2N.Character.MinRadix"/> or greater than <see cref="F:J2N.Character.MaxRadix"/>.
</exception>
<remarks>
If <paramref name="radix"/> is 16, you can prefix the number specified by the <paramref name="s"/> parameter with "0x" or "0X".
<para/>
To specify a negative value for base (radix) 10 numeric representations, use the ASCII character \u002d ('-').
<para/>
For any other <paramref name="radix"/>, negative values may either be specified with ASCII character \u002d ('-')
(as in Java) or by specifying the two's complement representation (as in .NET), but not both.
In the latter case, the highest-order binary bit of an integer (bit 7) is interpreted as the sign bit.
As a result, it is possible to write code in which a non-base 10 number that is out of the range of the <see cref="T:System.Byte"/>
data type is converted to a <see cref="T:System.Byte"/> value without the method throwing an exception.
</remarks>
<seealso cref="M:J2N.Numerics.Byte.Parse(System.Text.StringBuilder,System.Int32,System.Int32,System.Int32)"/>
<seealso cref="M:J2N.Numerics.Byte.Parse(System.String,System.Int32)"/>
</member>
<member name="M:J2N.Numerics.Byte.TryParse(J2N.Text.ICharSequence,System.Int32,System.Int32,System.Int32,System.Byte@)">
<summary>
Parses the <see cref="T:J2N.Text.ICharSequence"/> argument as a <see cref="T:System.Byte"/> in the specified <paramref name="radix"/>, beginning at the
specified <paramref name="startIndex"/> with the specified number of characters in <paramref name="length"/>.
<para/>
IMPORTANT: This method has .NET semantics. That is, the <paramref name="length"/> parameter
is a length rather than an exclusive end index as would be the case in Java. To translate from
Java, use <c>endIndex - beginIndex</c> to obtain the <paramref name="length"/>.
<para/>
Usage Note: This method is similar to the <see cref="M:System.Convert.ToByte(System.String,System.Int32)"/> method, however it allows conversion
of the value without allocating a substring. It also differs in that it allows the use of the ASCII character \u002d ('-')
or \u002B ('+') in any <paramref name="radix"/> and allows any <paramref name="radix"/> value from
<see cref="F:J2N.Character.MinRadix"/> to <see cref="F:J2N.Character.MaxRadix"/> inclusive.
<para/>
Supports any BMP (Basic Multilingual Plane) or SMP (Supplementary Mulitlingual Plane) digit as defined by Unicode 10.0.
<para/>
For compatibility with Java, this method successfully parses values from <see cref="F:System.SByte.MinValue"/> to <see cref="F:System.Byte.MaxValue"/>,
but the value returned is type <see cref="T:System.Byte"/> and may need to be converted to <see cref="T:System.SByte"/> depending on how it is used.
<para/>
Since <see cref="M:J2N.Numerics.Byte.Parse(J2N.Text.ICharSequence,System.Int32,System.Int32,System.Int32)"/> throws many different exception types and in Java they are all normalized to
<c>NumberFormatException</c>, this method can be used to mimic the same behavior by throwing <see cref="T:System.FormatException"/>
when this method returns <c>false</c>.
</summary>
<param name="s">The <see cref="T:J2N.Text.ICharSequence"/> containing the <see cref="T:System.Byte"/> representation to be parsed.</param>
<param name="startIndex">The zero-based starting character position of a region in <paramref name="s"/>.</param>
<param name="length">The number of characters in the region to parse.</param>
<param name="radix">The radix (or base) to use when parsing <paramref name="s"/>. The value must be in the range
<see cref="F:J2N.Character.MinRadix"/> - <see cref="F:J2N.Character.MaxRadix"/> inclusive.</param>
<param name="result">The <see cref="T:System.Byte"/> represented by the subsequence in the specified <paramref name="radix"/>.</param>
<returns><c>true</c> if <paramref name="s"/> was converted successfully; otherwise, <c>false</c>.</returns>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="startIndex"/> or <paramref name="length"/> is less than zero.
<para/>
-or-
<para/>
<paramref name="startIndex"/> and <paramref name="length"/> refer to a location outside of <paramref name="s"/>.
<para/>
-or-
<para/>
<paramref name="radix"/> is less than <see cref="F:J2N.Character.MinRadix"/> or greater than <see cref="F:J2N.Character.MaxRadix"/>.
</exception>
<remarks>
If <paramref name="radix"/> is 16, you can prefix the number specified by the <paramref name="s"/> parameter with "0x" or "0X".
<para/>
To specify a negative value for base (radix) 10 numeric representations, use the ASCII character \u002d ('-').
<para/>
For any other <paramref name="radix"/>, negative values may either be specified with ASCII character \u002d ('-')
(as in Java) or by specifying the two's complement representation (as in .NET), but not both.
In the latter case, the highest-order binary bit of an integer (bit 7) is interpreted as the sign bit.
As a result, it is possible to write code in which a non-base 10 number that is out of the range of the <see cref="T:System.Byte"/>
data type is converted to a <see cref="T:System.Byte"/> value without the method throwing an exception.
</remarks>
<seealso cref="M:J2N.Numerics.Byte.Parse(J2N.Text.ICharSequence,System.Int32,System.Int32,System.Int32)"/>
<seealso cref="M:J2N.Numerics.Byte.Parse(System.String,System.Int32)"/>
</member>
<member name="M:J2N.Numerics.Byte.Parse(System.ReadOnlySpan{System.Char},System.Int32)">
<summary>
Parses the <see cref="T:System.String"/> argument as a <see cref="T:System.Byte"/> in the specified <paramref name="radix"/>.
<para/>
Usage Note: This method is similar to the <see cref="M:System.Convert.ToByte(System.String,System.Int32)"/> method. It differs in that
it allows the use of the ASCII character \u002d ('-') or \u002B ('+') in any <paramref name="radix"/>.
<para/>
Supports any BMP (Basic Multilingual Plane) or SMP (Supplementary Mulitlingual Plane) digit as defined by Unicode 10.0.
<para/>
For compatibility with Java, this method successfully parses values from <see cref="F:System.SByte.MinValue"/> to <see cref="F:System.Byte.MaxValue"/>,
but the value returned is type <see cref="T:System.Byte"/> and may need to be converted to <see cref="T:System.SByte"/> depending on how it is used.
</summary>
<param name="s">The <see cref="T:System.String"/> containing the <see cref="T:System.Byte"/> representation to be parsed.</param>
<param name="radix">The radix (or base) to use when parsing <paramref name="s"/>. The value must be in the range
<see cref="F:J2N.Character.MinRadix"/> - <see cref="F:J2N.Character.MaxRadix"/> inclusive.</param>
<returns>An 8-bit unsigned integer that is equivalent to the number in <paramref name="s"/>, or 0 (zero) if
<paramref name="s"/> is <c>null</c>.</returns>
<remarks>
If <paramref name="radix"/> is 16, you can prefix the number specified by the <paramref name="s"/> parameter with "0x" or "0X".
<para/>
To specify a negative value for base (radix) 10 numeric representations, use the ASCII character \u002d ('-').
<para/>
For any other <paramref name="radix"/>, negative values may either be specified with ASCII character \u002d ('-')
(as in Java) or by specifying the two's complement representation (as in .NET), but not both.
In the latter case, the highest-order binary bit of a long integer (bit 7) is interpreted as the sign bit.
As a result, it is possible to write code in which a non-base 10 number that is out of the range of the <see cref="T:System.Byte"/>
data type is converted to a <see cref="T:System.Byte"/> value without the method throwing an exception.
</remarks>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="radix"/> is less than <see cref="F:J2N.Character.MinRadix"/> or greater than <see cref="F:J2N.Character.MaxRadix"/>.
</exception>
<exception cref="T:System.FormatException">
<paramref name="s"/> contains a character that is not a valid digit in the base specified by <paramref name="radix"/>.
The exception message indicates that there are no digits to convert if the first character in <paramref name="s"/> is invalid;
otherwise, the message indicates that <paramref name="s"/> contains invalid trailing characters.
<para/>
-or-
<para/>
<paramref name="s"/> contains only a the ASCII character \u002d ('-') or \u002B ('+') sign and/or hexadecimal
prefix 0X or 0x with no digits.
</exception>
<exception cref="T:System.OverflowException">
<paramref name="s"/> represents a number that is less than <see cref="F:System.SByte.MinValue"/> or greater than <see cref="F:System.Byte.MaxValue"/>.
</exception>
<seealso cref="M:J2N.Numerics.Byte.TryParse(System.ReadOnlySpan{System.Char},System.Int32,System.Byte@)"/>
<seealso cref="M:J2N.Numerics.Byte.Parse(System.ReadOnlySpan{System.Char},System.Int32)"/>
</member>
<member name="M:J2N.Numerics.Byte.Parse(System.String,System.Int32)">
<summary>
Parses the <see cref="T:System.String"/> argument as a <see cref="T:System.Byte"/> in the specified <paramref name="radix"/>.
<para/>
Usage Note: This method is similar to the <see cref="M:System.Convert.ToByte(System.String,System.Int32)"/> method. It differs in that
it allows the use of the ASCII character \u002d ('-') or \u002B ('+') in any <paramref name="radix"/>.
<para/>
Supports any BMP (Basic Multilingual Plane) or SMP (Supplementary Mulitlingual Plane) digit as defined by Unicode 10.0.
<para/>
For compatibility with Java, this method successfully parses values from <see cref="F:System.SByte.MinValue"/> to <see cref="F:System.Byte.MaxValue"/>,
but the value returned is type <see cref="T:System.Byte"/> and may need to be converted to <see cref="T:System.SByte"/> depending on how it is used.
</summary>
<param name="s">The <see cref="T:System.String"/> containing the <see cref="T:System.Byte"/> representation to be parsed.</param>
<param name="radix">The radix (or base) to use when parsing <paramref name="s"/>. The value must be in the range
<see cref="F:J2N.Character.MinRadix"/> - <see cref="F:J2N.Character.MaxRadix"/> inclusive.</param>
<returns>An 8-bit unsigned integer that is equivalent to the number in <paramref name="s"/>, or 0 (zero) if
<paramref name="s"/> is <c>null</c>.</returns>
<remarks>
If <paramref name="radix"/> is 16, you can prefix the number specified by the <paramref name="s"/> parameter with "0x" or "0X".
<para/>
To specify a negative value for base (radix) 10 numeric representations, use the ASCII character \u002d ('-').
<para/>
For any other <paramref name="radix"/>, negative values may either be specified with ASCII character \u002d ('-')
(as in Java) or by specifying the two's complement representation (as in .NET), but not both.
In the latter case, the highest-order binary bit of a long integer (bit 7) is interpreted as the sign bit.
As a result, it is possible to write code in which a non-base 10 number that is out of the range of the <see cref="T:System.Byte"/>
data type is converted to a <see cref="T:System.Byte"/> value without the method throwing an exception.
</remarks>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="radix"/> is less than <see cref="F:J2N.Character.MinRadix"/> or greater than <see cref="F:J2N.Character.MaxRadix"/>.
</exception>
<exception cref="T:System.FormatException">
<paramref name="s"/> contains a character that is not a valid digit in the base specified by <paramref name="radix"/>.
The exception message indicates that there are no digits to convert if the first character in <paramref name="s"/> is invalid;
otherwise, the message indicates that <paramref name="s"/> contains invalid trailing characters.
<para/>
-or-
<para/>
<paramref name="s"/> contains only a the ASCII character \u002d ('-') or \u002B ('+') sign and/or hexadecimal
prefix 0X or 0x with no digits.
</exception>
<exception cref="T:System.OverflowException">
<paramref name="s"/> represents a number that is less than <see cref="F:System.SByte.MinValue"/> or greater than <see cref="F:System.Byte.MaxValue"/>.
</exception>
<seealso cref="M:J2N.Numerics.Byte.TryParse(System.String,System.Int32,System.Byte@)"/>
<seealso cref="M:J2N.Numerics.Byte.Parse(System.String,System.Int32)"/>
</member>
<member name="M:J2N.Numerics.Byte.TryParse(System.ReadOnlySpan{System.Char},System.Int32,System.Byte@)">
<summary>
Parses the <see cref="T:System.ReadOnlySpan`1"/> argument as a <see cref="T:System.Byte"/> in the specified <paramref name="radix"/>.
<para/>
Usage Note: This method is similar to the <see cref="M:System.Convert.ToByte(System.String,System.Int32)"/> method. It differs in that it
allows the use of the ASCII character \u002d ('-') or \u002B ('+') in any <paramref name="radix"/> and allows any
<paramref name="radix"/> value from <see cref="F:J2N.Character.MinRadix"/> to <see cref="F:J2N.Character.MaxRadix"/> inclusive.
<para/>
Supports any BMP (Basic Multilingual Plane) or SMP (Supplementary Mulitlingual Plane) digit as defined by Unicode 10.0.
<para/>
For compatibility with Java, this method successfully parses values from <see cref="F:System.SByte.MinValue"/> to <see cref="F:System.Byte.MaxValue"/>,
but the value returned is type <see cref="T:System.Byte"/> and may need to be converted to <see cref="T:System.SByte"/> depending on how it is used.
<para/>
Since <see cref="M:J2N.Numerics.Byte.Parse(System.ReadOnlySpan{System.Char},System.Int32)"/> throws many different exception types and in Java they are all normalized to
<c>NumberFormatException</c>, this method can be used to mimic the same behavior by throwing <see cref="T:System.FormatException"/>
when this method returns <c>false</c>.
</summary>
<param name="s">The <see cref="T:System.ReadOnlySpan`1"/> containing the <see cref="T:System.Byte"/> representation to be parsed.</param>
<param name="radix">The radix (or base) to use when parsing <paramref name="s"/>. The value must be in the range
<see cref="F:J2N.Character.MinRadix"/> - <see cref="F:J2N.Character.MaxRadix"/> inclusive.</param>
<param name="result">The <see cref="T:System.Byte"/> represented by the subsequence in the specified <paramref name="radix"/>.</param>
<returns><c>true</c> if <paramref name="s"/> was converted successfully; otherwise, <c>false</c>.</returns>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="radix"/> is less than <see cref="F:J2N.Character.MinRadix"/> or greater than <see cref="F:J2N.Character.MaxRadix"/>.
</exception>
<remarks>
If <paramref name="radix"/> is 16, you can prefix the number specified by the <paramref name="s"/> parameter with "0x" or "0X".
<para/>
To specify a negative value for base (radix) 10 numeric representations, use the ASCII character \u002d ('-').
<para/>
For any other <paramref name="radix"/>, negative values may either be specified with ASCII character \u002d ('-')
(as in Java) or by specifying the two's complement representation (as in .NET), but not both.
In the latter case, the highest-order binary bit of an integer (bit 7) is interpreted as the sign bit.
As a result, it is possible to write code in which a non-base 10 number that is out of the range of the <see cref="T:System.Byte"/>
data type is converted to a <see cref="T:System.Byte"/> value without the method throwing an exception.
</remarks>
<seealso cref="M:J2N.Numerics.Byte.Parse(System.ReadOnlySpan{System.Char},System.Int32,System.Int32,System.Int32)"/>
<seealso cref="M:J2N.Numerics.Byte.Parse(System.ReadOnlySpan{System.Char},System.Int32)"/>
</member>
<member name="M:J2N.Numerics.Byte.TryParse(System.String,System.Int32,System.Byte@)">
<summary>
Parses the <see cref="T:System.String"/> argument as a <see cref="T:System.Byte"/> in the specified <paramref name="radix"/>.
<para/>
Usage Note: This method is similar to the <see cref="M:System.Convert.ToByte(System.String,System.Int32)"/> method. It differs in that it
allows the use of the ASCII character \u002d ('-') or \u002B ('+') in any <paramref name="radix"/> and allows any
<paramref name="radix"/> value from <see cref="F:J2N.Character.MinRadix"/> to <see cref="F:J2N.Character.MaxRadix"/> inclusive.
<para/>
Supports any BMP (Basic Multilingual Plane) or SMP (Supplementary Mulitlingual Plane) digit as defined by Unicode 10.0.
<para/>
For compatibility with Java, this method successfully parses values from <see cref="F:System.SByte.MinValue"/> to <see cref="F:System.Byte.MaxValue"/>,
but the value returned is type <see cref="T:System.Byte"/> and may need to be converted to <see cref="T:System.SByte"/> depending on how it is used.
<para/>
Since <see cref="M:J2N.Numerics.Byte.Parse(System.String,System.Int32)"/> throws many different exception types and in Java they are all normalized to
<c>NumberFormatException</c>, this method can be used to mimic the same behavior by throwing <see cref="T:System.FormatException"/>
when this method returns <c>false</c>.
</summary>
<param name="s">The <see cref="T:System.String"/> containing the <see cref="T:System.Byte"/> representation to be parsed.</param>
<param name="radix">The radix (or base) to use when parsing <paramref name="s"/>. The value must be in the range
<see cref="F:J2N.Character.MinRadix"/> - <see cref="F:J2N.Character.MaxRadix"/> inclusive.</param>
<param name="result">The <see cref="T:System.Byte"/> represented by the subsequence in the specified <paramref name="radix"/>.</param>
<returns><c>true</c> if <paramref name="s"/> was converted successfully; otherwise, <c>false</c>.</returns>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="radix"/> is less than <see cref="F:J2N.Character.MinRadix"/> or greater than <see cref="F:J2N.Character.MaxRadix"/>.
</exception>
<remarks>
If <paramref name="radix"/> is 16, you can prefix the number specified by the <paramref name="s"/> parameter with "0x" or "0X".
<para/>
To specify a negative value for base (radix) 10 numeric representations, use the ASCII character \u002d ('-').
<para/>
For any other <paramref name="radix"/>, negative values may either be specified with ASCII character \u002d ('-')
(as in Java) or by specifying the two's complement representation (as in .NET), but not both.
In the latter case, the highest-order binary bit of an integer (bit 7) is interpreted as the sign bit.
As a result, it is possible to write code in which a non-base 10 number that is out of the range of the <see cref="T:System.Byte"/>
data type is converted to a <see cref="T:System.Byte"/> value without the method throwing an exception.
</remarks>
<seealso cref="M:J2N.Numerics.Byte.Parse(System.String,System.Int32,System.Int32,System.Int32)"/>
<seealso cref="M:J2N.Numerics.Byte.Parse(System.String,System.Int32)"/>
</member>
<member name="M:J2N.Numerics.Byte.Parse(System.String,System.IFormatProvider)">
<summary>
Converts the string representation of a number in a specified style and culture-specific format to its <see cref="T:System.Byte"/> equivalent.
</summary>
<param name="s">A string containing the characters representing the value to convert. The string is interpreted using the <see cref="F:J2N.Globalization.NumberStyle.Integer"/> style.
For compatibility with Java's byte (which is an 8-bit signed byte) the
value may be from <c>"-127"</c> to <c>"255"</c>. Negative numbers in this range will overflow and become high-order positive numbers.</param>
<param name="provider">An object that supplies culture-specific information about the format of <paramref name="s"/>. If provider is <c>null</c>,
the thread current culture is used.</param>
<returns>A byte value that is equivalent to the number contained in <paramref name="s"/>.</returns>
<exception cref="T:System.ArgumentNullException"><paramref name="s"/> is <c>null</c>.</exception>
<exception cref="T:System.FormatException"><paramref name="s"/> is not of the correct format.</exception>
<exception cref="T:System.OverflowException">
<paramref name="s"/> represents a number less than <see cref="F:System.SByte.MinValue"/> or <see cref="F:System.Byte.MaxValue"/>.
</exception>
<remarks>
The s parameter contains a number of the form:
<para/>
[ws][sign]digits[ws]
<para/>
Elements framed in square brackets ([ and ]) are optional. The following table describes each element.
<para/>
<list type="table">
<listheader>
<term>Element</term>
<term>Description</term>
</listheader>
<item>
<term><i>ws</i></term>
<term>A series of white-space characters.</term>
</item>
<item>
<term><i>sign</i></term>
<term>A negative sign symbol (-) or a positive sign symbol (+).</term>
</item>
<item>
<term><i>digits</i></term>
<term>A series of digits ranging from 0 to 9.</term>
</item>
</list>
<para/>
NOTE: Any terminating NUL (U+0000) characters in <paramref name="s"/> are ignored by the parsing operation.
<para/>
The <paramref name="s"/> parameter is interpreted using the <see cref="F:J2N.Globalization.NumberStyle.Integer"/> style. In addition to the byte value's
decimal digits, only leading and trailing spaces together with a leading sign are allowed. To explicitly define the style elements
together with the culture-specific formatting information that can be present in <paramref name="s"/>, use the
<see cref="M:J2N.Numerics.Byte.Parse(System.String,J2N.Globalization.NumberStyle,System.IFormatProvider)"/> method.
<para/>
The <paramref name="provider"/> parameter is an <see cref="T:System.IFormatProvider"/> implementation, such as a <see cref="T:System.Globalization.CultureInfo"/> object,
a <see cref="T:System.Globalization.NumberFormatInfo"/> object or a <see cref="T:J2N.Text.StringFormatter"/> object, whose <see cref="M:System.IFormatProvider.GetFormat(System.Type)"/>
method returns a <see cref="T:System.Globalization.NumberFormatInfo"/> object. The <see cref="T:System.Globalization.NumberFormatInfo"/> object provides culture-specific information about
the format of <paramref name="s"/>. When the <see cref="M:J2N.Numerics.Byte.Parse(System.String,System.IFormatProvider)"/> method is invoked, it calls the provider parameter's
<see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> method and passes it a <see cref="T:System.Type"/> object that represents the <see cref="T:System.Globalization.NumberFormatInfo"/> type.
The <see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> method then returns the <see cref="T:System.Globalization.NumberFormatInfo"/> object that provides information about the
format of the <paramref name="s"/> parameter. There are three ways to use the <paramref name="provider"/> parameter to supply custom formatting
information to the parse operation:
<list type="bullet">
<item><description>You can pass a <see cref="T:System.Globalization.CultureInfo"/> object that represents the culture that supplies formatting information. Its
<see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> method returns the <see cref="T:System.Globalization.NumberFormatInfo"/> object that provides numeric formatting
information for that culture.</description></item>
<item><description>You can pass the actual <see cref="T:System.Globalization.NumberFormatInfo"/> object that provides numeric formatting information. (Its
implementation of <see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> just returns itself.)</description></item>
<item><description>You can pass a custom object that implements <see cref="T:System.IFormatProvider"/>. Its <see cref="M:System.IFormatProvider.GetFormat(System.Type)"/>
method instantiates and returns the <see cref="T:System.Globalization.NumberFormatInfo"/> object that provides formatting information.</description></item>
</list>
If <paramref name="provider"/> is <c>null</c> or a <see cref="T:System.Globalization.NumberFormatInfo"/> object cannot be obtained, the <see cref="T:System.Globalization.NumberFormatInfo"/>
object for the current culture is used.
</remarks>
<seealso cref="M:J2N.Numerics.Byte.TryParse(System.String,J2N.Globalization.NumberStyle,System.IFormatProvider,System.Byte@)"/>
</member>
<member name="M:J2N.Numerics.Byte.TryParse(System.String,System.Byte@)">
<summary>
Converts the string representation of a number in a specified style and culture-specific format to its 8-bit unsigned
integer equivalent. A return value indicates whether the conversion succeeded.
<para/>
Usage Note: When porting from Java, note that this is a culture-sensitive method. Java uses the invariant
culture in the Byte class, so call <see cref="M:J2N.Numerics.Byte.TryParse(System.String,J2N.Globalization.NumberStyle,System.IFormatProvider,System.Byte@)"/>
and pass <see cref="F:J2N.Globalization.NumberStyle.AllowLeadingSign"/> and <see cref="P:System.Globalization.NumberFormatInfo.InvariantInfo"/> to exactly match the Java parsing behavior.
<para/>
Using that overload also allows you to normalize the exception behavior. The <see cref="M:J2N.Numerics.Byte.Parse(System.String,System.IFormatProvider)"/>
method may throw <see cref="T:System.ArgumentNullException"/>, <see cref="T:System.OverflowException"/>, or <see cref="T:System.FormatException"/>,
but Java only ever throws NumberFormatException in any of those cases. Using <see cref="M:J2N.Numerics.Byte.TryParse(System.String,J2N.Globalization.NumberStyle,System.IFormatProvider,System.Byte@)"/>
means a <see cref="T:System.FormatException"/> can be thrown in any of those error condtions when it returns <c>false</c>.
</summary>
<param name="s">A string containing the characters that represent the number to convert. For compatibility with Java's byte (which is an 8-bit signed byte) the
value may be from <c>"-127"</c> to <c>"255"</c>. Negative numbers in this range will overflow and become high-order positive numbers.</param>
<param name="result">When this method returns, contains the 8-bit unsigned integer value equivalent of
the number contained in <paramref name="s"/>, if the conversion succeeded, or zero if the conversion failed.
The conversion fails if the s parameter is <c>null</c> or <see cref="F:System.String.Empty"/>, is not of the correct format,
or represents a number less than <see cref="F:System.Byte.MinValue"/> or greater than <see cref="F:System.Byte.MaxValue"/>. This parameter
is passed uninitialized; any value originally supplied in <paramref name="result"/> will be overwritten.</param>
<returns><c>true</c> if <paramref name="s"/> was converted successfully; otherwise, <c>false</c>.</returns>
<remarks>
The <see cref="M:J2N.Numerics.Byte.TryParse(System.String,System.Byte@)"/> method is like the <see cref="M:J2N.Numerics.Byte.Parse(System.String,J2N.Globalization.NumberStyle,System.IFormatProvider)"/> method,
except the <see cref="M:J2N.Numerics.Byte.TryParse(System.String,System.Byte@)"/> method does not throw an exception if the
conversion fails. It eliminates the need to use exception handling to test for a <see cref="T:System.FormatException"/>
in the event that <paramref name="s"/> is invalid and cannot be successfully parsed.
<para/>
The <paramref name="s"/> parameter contains a number of the form:
<code>
[ws][sign]digits[ws]
</code>
Items in square brackets ([ and ]) are optional. The following table describes each element.
<list type="table">
<listheader>
<term>Element</term>
<term>Description</term>
</listheader>
<item>
<term><i>ws</i></term>
<term>Optional white space.</term>
</item>
<item>
<term><i>sign</i></term>
<term>An optional sign.</term>
</item>
<item>
<term><i>digits</i></term>
<term>A sequence of digits ranging from 0 to 9.</term>
</item>
</list>
<para/>
The <paramref name="s"/> parameter is interpreted using the <see cref="F:J2N.Globalization.NumberStyle.Integer"/> style.
In addition to the decimal digits, only leading and trailing spaces together with a leading sign are
allowed. To explicitly define the style elements together with the culture-specific formatting
information that can be present in <paramref name="s"/>, use the <see cref="M:J2N.Numerics.Byte.TryParse(System.String,J2N.Globalization.NumberStyle,System.IFormatProvider,System.Byte@)"/> method.
<para/>
The <paramref name="s"/> parameter is parsed using the formatting information in a <see cref="T:System.Globalization.NumberFormatInfo"/>
object initialized for the current system culture. For more information, see <see cref="P:System.Globalization.NumberFormatInfo.CurrentInfo"/>.
<para/>
This overload of the <see cref="M:J2N.Numerics.Byte.TryParse(System.String,System.Byte@)"/> method interprets all digits in the <paramref name="s"/> parameter
as decimal digits. To parse the string representation of a hexadecimal number, call the
<see cref="M:J2N.Numerics.Byte.TryParse(System.String,J2N.Globalization.NumberStyle,System.IFormatProvider,System.Byte@)"/> overload.
</remarks>
<seealso cref="M:J2N.Numerics.Byte.Parse(System.String,System.IFormatProvider)"/>
<seealso cref="M:J2N.Numerics.Byte.TryParse(System.String,J2N.Globalization.NumberStyle,System.IFormatProvider,System.Byte@)"/>
<seealso cref="M:J2N.Numerics.Number.ToString"/>
</member>
<member name="M:J2N.Numerics.Byte.TryParse(System.ReadOnlySpan{System.Char},System.Byte@)">
<summary>
Converts the span representation of a number in a specified style and culture-specific format to its 8-bit unsigned
integer equivalent. A return value indicates whether the conversion succeeded.
<para/>
Usage Note: When porting from Java, note that this is a culture-sensitive method. Java uses the invariant
culture in the Byte class, so call <see cref="M:J2N.Numerics.Byte.TryParse(System.ReadOnlySpan{System.Char},J2N.Globalization.NumberStyle,System.IFormatProvider,System.Byte@)"/>
and pass <see cref="F:J2N.Globalization.NumberStyle.AllowLeadingSign"/> and <see cref="P:System.Globalization.NumberFormatInfo.InvariantInfo"/> to exactly match the Java parsing behavior.
<para/>
Using that overload also allows you to normalize the exception behavior. The <see cref="M:J2N.Numerics.Byte.Parse(System.String,System.IFormatProvider)"/>
method may throw <see cref="T:System.ArgumentNullException"/>, <see cref="T:System.OverflowException"/>, or <see cref="T:System.FormatException"/>,
but Java only ever throws NumberFormatException in any of those cases. Using <see cref="M:J2N.Numerics.Byte.TryParse(System.ReadOnlySpan{System.Char},J2N.Globalization.NumberStyle,System.IFormatProvider,System.Byte@)"/>
means a <see cref="T:System.FormatException"/> can be thrown in any of those error condtions when it returns <c>false</c>.
</summary>
<param name="s">A span containing the characters that represent the number to convert. For compatibility with Java's byte (which is an 8-bit signed byte) the
value may be from <c>"-127"</c> to <c>"255"</c>. Negative numbers in this range will overflow and become high-order positive numbers.</param>
<param name="result">When this method returns, contains the 8-bit unsigned integer value equivalent of
the number contained in <paramref name="s"/>, if the conversion succeeded, or zero if the conversion failed.
The conversion fails if the s parameter is <c>null</c> or <see cref="F:System.String.Empty"/>, is not of the correct format,
or represents a number less than <see cref="F:System.Byte.MinValue"/> or greater than <see cref="F:System.Byte.MaxValue"/>. This parameter
is passed uninitialized; any value originally supplied in <paramref name="result"/> will be overwritten.</param>
<returns><c>true</c> if <paramref name="s"/> was converted successfully; otherwise, <c>false</c>.</returns>
<remarks>
The <see cref="M:J2N.Numerics.Byte.TryParse(System.ReadOnlySpan{System.Char},System.Byte@)"/> method is like the <see cref="M:J2N.Numerics.Byte.Parse(System.ReadOnlySpan{System.Char},J2N.Globalization.NumberStyle,System.IFormatProvider)"/> method,
except the <see cref="M:J2N.Numerics.Byte.TryParse(System.ReadOnlySpan{System.Char},System.Byte@)"/> method does not throw an exception if the
conversion fails. It eliminates the need to use exception handling to test for a <see cref="T:System.FormatException"/>
in the event that <paramref name="s"/> is invalid and cannot be successfully parsed.
<para/>
The <paramref name="s"/> parameter contains a number of the form:
<code>
[ws][sign]digits[ws]
</code>
Items in square brackets ([ and ]) are optional. The following table describes each element.
<list type="table">
<listheader>
<term>Element</term>
<term>Description</term>
</listheader>
<item>
<term><i>ws</i></term>
<term>Optional white space.</term>
</item>
<item>
<term><i>sign</i></term>
<term>An optional sign.</term>
</item>
<item>
<term><i>digits</i></term>
<term>A sequence of digits ranging from 0 to 9.</term>
</item>
</list>
<para/>
The <paramref name="s"/> parameter is interpreted using the <see cref="F:J2N.Globalization.NumberStyle.Integer"/> style.
In addition to the decimal digits, only leading and trailing spaces together with a leading sign are
allowed. To explicitly define the style elements together with the culture-specific formatting
information that can be present in <paramref name="s"/>, use the <see cref="M:J2N.Numerics.Byte.TryParse(System.ReadOnlySpan{System.Char},J2N.Globalization.NumberStyle,System.IFormatProvider,System.Byte@)"/> method.
<para/>
The <paramref name="s"/> parameter is parsed using the formatting information in a <see cref="T:System.Globalization.NumberFormatInfo"/>
object initialized for the current system culture. For more information, see <see cref="P:System.Globalization.NumberFormatInfo.CurrentInfo"/>.
<para/>
This overload of the <see cref="M:J2N.Numerics.Byte.TryParse(System.ReadOnlySpan{System.Char},System.Byte@)"/> method interprets all digits in the <paramref name="s"/> parameter
as decimal digits. To parse the string representation of a hexadecimal number, call the
<see cref="M:J2N.Numerics.Byte.TryParse(System.ReadOnlySpan{System.Char},J2N.Globalization.NumberStyle,System.IFormatProvider,System.Byte@)"/> overload.
</remarks>
<seealso cref="M:J2N.Numerics.Byte.Parse(System.ReadOnlySpan{System.Char},J2N.Globalization.NumberStyle,System.IFormatProvider)"/>
<seealso cref="M:J2N.Numerics.Byte.TryParse(System.String,System.Byte@)"/>
<seealso cref="M:J2N.Numerics.Number.ToString"/>
</member>
<member name="M:J2N.Numerics.Byte.Parse(System.String,J2N.Globalization.NumberStyle,System.IFormatProvider)">
<summary>
Converts the string representation of a number in a specified style and culture-specific format to its <see cref="T:System.Byte"/> equivalent.
</summary>
<param name="s">A string containing the characters representing the value to convert. For compatibility with Java's byte (which is an 8-bit signed byte) the
value may be from <c>"-127"</c> to <c>"255"</c>. Negative numbers in this range will overflow and become high-order positive numbers.</param>
<param name="style">A bitwise combination of enumeration values that indicates the style elements that can be present in <paramref name="s"/>.
A typical value to specify is <see cref="F:J2N.Globalization.NumberStyle.Integer"/>.</param>
<param name="provider">An object that supplies culture-specific information about the format of <paramref name="s"/>. If provider is <c>null</c>,
the thread current culture is used.</param>
<returns>A byte value that is equivalent to the number contained in <paramref name="s"/>.</returns>
<exception cref="T:System.ArgumentNullException"><paramref name="s"/> is <c>null</c>.</exception>
<exception cref="T:System.FormatException"><paramref name="s"/> is not of the correct format.</exception>
<exception cref="T:System.OverflowException">
<paramref name="s"/> represents a number less than <see cref="F:System.SByte.MinValue"/> or <see cref="F:System.Byte.MaxValue"/>.
<para/>
-or-
<para/>
<paramref name="s"/> includes non-zero, fractional digits.
</exception>
<exception cref="T:System.ArgumentException">
<paramref name="style"/> is not a <see cref="T:J2N.Globalization.NumberStyle"/> value.
<para/>
-or-
<para/>
<paramref name="style"/> is not a combination of <see cref="F:J2N.Globalization.NumberStyle.AllowHexSpecifier"/> and <see cref="F:J2N.Globalization.NumberStyle.HexNumber"/> values.
</exception>
<remarks>
The <paramref name="style"/> parameter defines the style elements (such as white space or the positive sign) that are allowed in the
<paramref name="s"/> parameter for the parse operation to succeed. It must be a combination of bit flags from the <see cref="T:J2N.Globalization.NumberStyle"/>
enumeration. Depending on the value of <paramref name="style"/>, the <paramref name="s"/> parameter may include the following elements:
<para/>
[ws][$][sign]digits[.fractional-digits][e[sign]exponential-digits][type][ws]
<para/>
Or, if the <paramref name="style"/> parameter includes <see cref="F:J2N.Globalization.NumberStyle.AllowHexSpecifier"/>:
<para/>
[ws][0x]hexdigits[hextype][ws]
<para/>
Elements framed in square brackets ([ and ]) are optional. The following table describes each element.
<para/>
<list type="table">
<listheader>
<term>Element</term>
<term>Description</term>
</listheader>
<item>
<term><i>ws</i></term>
<term>A series of white-space characters. White space can appear at the beginning of <paramref name="s"/> if style includes the
<see cref="F:J2N.Globalization.NumberStyle.AllowLeadingWhite"/> flag, and it can appear at the end of <paramref name="s"/> if style includes the
<see cref="F:J2N.Globalization.NumberStyle.AllowTrailingWhite"/> flag.</term>
</item>
<item>
<term><i>$</i></term>
<term>A culture-specific currency symbol. Its position in the string is defined by the <see cref="P:System.Globalization.NumberFormatInfo.CurrencyNegativePattern"/>
and <see cref="P:System.Globalization.NumberFormatInfo.CurrencyPositivePattern"/> properties of the <see cref="T:System.Globalization.NumberFormatInfo"/> object returned by the
<see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> method of the <paramref name="provider"/> parameter. The current culture's currency symbol can
appear in <paramref name="s"/> if style includes the <see cref="F:J2N.Globalization.NumberStyle.AllowCurrencySymbol"/> flag.</term>
</item>
<item>
<term><i>sign</i></term>
<term>A negative sign symbol (-) or a positive sign symbol (+). The sign can appear at the beginning of <paramref name="s"/> if
<paramref name="style"/> includes the <see cref="F:J2N.Globalization.NumberStyle.AllowLeadingSign"/> flag, and it can appear at the end of <paramref name="s"/>
if <paramref name="style"/> includes the <see cref="F:J2N.Globalization.NumberStyle.AllowTrailingSign"/> flag. Parentheses can be used in <paramref name="s"/>
to indicate a negative value if <paramref name="style"/> includes the <see cref="F:J2N.Globalization.NumberStyle.AllowParentheses"/> flag.</term>
</item>
<item>
<term><i>digits</i></term>
<term>A series of digits ranging from 0 to 9.</term>
</item>
<item>
<term><i>.</i></term>
<term>A culture-specific decimal point symbol. The decimal point symbol of the culture specified by <paramref name="provider"/>
can appear in <paramref name="s"/> if <paramref name="style"/> includes the <see cref="F:J2N.Globalization.NumberStyle.AllowDecimalPoint"/> flag.</term>
</item>
<item>
<term><i>fractional-digits</i>
</term>
<term>A series of digits ranging from 0 to 9 that specify the fractional part of the number. Fractional digits can appear in
<paramref name="s"/> if <paramref name="style"/> includes the <see cref="F:J2N.Globalization.NumberStyle.AllowDecimalPoint"/> flag.</term>
</item>
<item>
<term><i>e</i></term>
<term>The 'e' or 'E' character, which indicates that the value is represented in exponential notation. The <paramref name="s"/>
parameter can represent a number in exponential notation if <paramref name="style"/> includes the <see cref="F:J2N.Globalization.NumberStyle.AllowExponent"/> flag.</term>
</item>
<item>
<term><i>exponential-digits</i></term>
<term>A sequence of decimal digits from 0 through 9 that specify an exponent.</term>
</item>
<item>
<term><i>0x</i>/></term>
<term>The '0x' or '0X' characters, which indicate a hexadecimal number is to immediately follow.</term>
</item>
<item>
<term><i>hexdigits</i></term>
<term>A sequence of hexadecimal digits from 0 through f, or 0 through F. Hexadecimal digits can appear in <paramref name="s"/>
if <paramref name="style"/> includes the <see cref="F:J2N.Globalization.NumberStyle.AllowHexSpecifier"/> flag.</term>
</item>
<item>
<term><i>type</i></term>
<term>The 'UL', 'Ul', 'uL', 'ul', 'LU', 'Lu', 'lU', or 'lu', which is the
<a href="https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/language-specification/lexical-structure#6453-integer-literals">integral type suffix</a>
or 'f', 'F', 'd', 'D', 'm' or 'M' character, which is the
<a href="https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/language-specification/lexical-structure#6454-real-literals">real type suffix</a>
of the number as specified in the C# language specification. The type suffix can appear in <paramref name="s"/> if <paramref name="style"/>
includes the <see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/> flag.</term>
</item>
<item>
<term><i>hextype</i></term>
<term>The 'UL', 'Ul', 'uL', 'ul', 'LU', 'Lu', 'lU', or 'lu', which is the
<a href="https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/language-specification/lexical-structure#6453-integer-literals">integral type suffix</a>
of the number as specified in the C# language specification. The type suffix can appear in <paramref name="s"/> if <paramref name="style"/>
includes the <see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/> flag. Real type suffixes are not supported.</term>
</item>
</list>
<para/>
NOTE: Any terminating NUL (U+0000) characters in <paramref name="s"/> are ignored by the parsing operation, regardless of
the value of the <paramref name="style"/> argument.
<para/>
A string with decimal digits only (which corresponds to the <see cref="F:J2N.Globalization.NumberStyle.None"/> flag) always parses successfully.
Most of the remaining <see cref="T:J2N.Globalization.NumberStyle"/> members control elements that may be but are not required to be present in
this input string. The following table indicates how individual <see cref="T:J2N.Globalization.NumberStyle"/> members affect the elements that may
be present in <paramref name="s"/>.
<list type="table">
<listheader>
<term>Non-composite NumberStyle values</term>
<term>Elements permitted in <paramref name="s"/> in addition to digits</term>
</listheader>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.None"/></term>
<term>Decimal digits only.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowDecimalPoint"/></term>
<term>The decimal point (.) and <i>fractional-digits</i> elements. However, <i>fractional-digits</i> must consist
of only one or more 0 digits or the method returns <c>false</c>.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowExponent"/></term>
<term>The <paramref name="s"/> parameter can also use exponential notation. If <paramref name="s"/> represents a
number in exponential notation, it must represent an integer within the range of the <see cref="T:System.Byte"/> data type
without a non-zero, fractional component.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowLeadingWhite"/></term>
<term>The <i>ws</i> element at the beginning of <paramref name="s"/>.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowTrailingWhite"/></term>
<term>The <i>ws</i> element at the end of <paramref name="s"/>.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowLeadingSign"/></term>
<term>A sign can appear before <i>digits</i>.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowTrailingSign"/></term>
<term>A sign can appear after <i>digits</i>.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowParentheses"/></term>
<term>The <i>sign</i> element in the form of parentheses enclosing the numeric value.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowThousands"/></term>
<term>The thousands separator (,) element.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowCurrencySymbol"/></term>
<term>The <i>$</i> element.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/></term>
<term>The literal <i>type</i> suffix used in the literal identifier syntax of C# (suffixed with one of
'D', 'd', 'F', 'f', 'M', 'm', 'L', 'l', 'U', 'u', 'UL', 'ul', 'LU', or 'lu').</term>
</item>
</list>
<para/>
The <see cref="T:J2N.Globalization.NumberStyle"/> enum can be converted to the .NET <see cref="T:System.Globalization.NumberStyles"/> enum by using the
<see cref="M:J2N.Globalization.NumberStyleExtensions.ToNumberStyles(J2N.Globalization.NumberStyle)"/> extension method.
Similarly, <see cref="T:System.Globalization.NumberStyles"/> enum can be converted to the J2N <see cref="T:J2N.Globalization.NumberStyle"/> enum by using
the <see cref="M:J2N.Globalization.NumberStyleExtensions.ToNumberStyle(System.Globalization.NumberStyles)"/> extension method.
<para/>
If the <see cref="F:J2N.Globalization.NumberStyle.AllowHexSpecifier"/> flag is used, <paramref name="s"/> must be a hexadecimal value with or without a <c>0x</c> prefix.
For example, "F3" and "0xF3" both parse successfully. The only other flags that can be present in <paramref name="style"/> are
<see cref="F:J2N.Globalization.NumberStyle.AllowLeadingWhite"/>, <see cref="F:J2N.Globalization.NumberStyle.AllowTrailingWhite"/> and <see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/>.
(The <see cref="T:J2N.Globalization.NumberStyle"/> enumeration has a composite number style, <see cref="F:J2N.Globalization.NumberStyle.HexNumber"/>, that includes both white space
flags.)
The <see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/> only allows 'L', 'l', 'U', 'u', 'UL', 'ul', 'LU', or 'lu' for hexadecimal numbers.
<para/>
The <paramref name="provider"/> parameter is an <see cref="T:System.IFormatProvider"/> implementation, such as a <see cref="T:System.Globalization.CultureInfo"/> object,
a <see cref="T:System.Globalization.NumberFormatInfo"/> object or a <see cref="T:J2N.Text.StringFormatter"/> object, whose <see cref="M:System.IFormatProvider.GetFormat(System.Type)"/>
method returns a <see cref="T:System.Globalization.NumberFormatInfo"/> object. The <see cref="T:System.Globalization.NumberFormatInfo"/> object provides culture-specific information about
the format of <paramref name="s"/>. When the <see cref="M:J2N.Numerics.Byte.Parse(System.String,System.IFormatProvider)"/> method is invoked, it calls the provider parameter's
<see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> method and passes it a <see cref="T:System.Type"/> object that represents the <see cref="T:System.Globalization.NumberFormatInfo"/> type.
The <see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> method then returns the <see cref="T:System.Globalization.NumberFormatInfo"/> object that provides information about the
format of the <paramref name="s"/> parameter. There are three ways to use the <paramref name="provider"/> parameter to supply custom formatting
information to the parse operation:
<list type="bullet">
<item><description>You can pass a <see cref="T:System.Globalization.CultureInfo"/> object that represents the culture that supplies formatting information. Its
<see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> method returns the <see cref="T:System.Globalization.NumberFormatInfo"/> object that provides numeric formatting
information for that culture.</description></item>
<item><description>You can pass the actual <see cref="T:System.Globalization.NumberFormatInfo"/> object that provides numeric formatting information. (Its
implementation of <see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> just returns itself.)</description></item>
<item><description>You can pass a custom object that implements <see cref="T:System.IFormatProvider"/>. Its <see cref="M:System.IFormatProvider.GetFormat(System.Type)"/>
method instantiates and returns the <see cref="T:System.Globalization.NumberFormatInfo"/> object that provides formatting information.</description></item>
</list>
If <paramref name="provider"/> is <c>null</c> or a <see cref="T:System.Globalization.NumberFormatInfo"/> object cannot be obtained, the <see cref="T:System.Globalization.NumberFormatInfo"/>
object for the current culture is used.
</remarks>
<seealso cref="M:J2N.Numerics.Byte.TryParse(System.String,J2N.Globalization.NumberStyle,System.IFormatProvider,System.Byte@)"/>
</member>
<member name="M:J2N.Numerics.Byte.Parse(System.ReadOnlySpan{System.Char},J2N.Globalization.NumberStyle,System.IFormatProvider)">
<summary>
Converts the span representation of a number in a specified style and culture-specific format to its <see cref="T:System.Byte"/> equivalent.
</summary>
<param name="s">A span containing the characters representing the value to convert. For compatibility with Java's byte (which is an 8-bit signed byte) the
value may be from <c>"-127"</c> to <c>"255"</c>. Negative numbers in this range will overflow and become high-order positive numbers.</param>
<param name="style">A bitwise combination of enumeration values that indicates the style elements that can be present in <paramref name="s"/>.
A typical value to specify is <see cref="F:J2N.Globalization.NumberStyle.Integer"/>.</param>
<param name="provider">An object that supplies culture-specific information about the format of <paramref name="s"/>. If provider is <c>null</c>,
the thread current culture is used.</param>
<returns>A byte value that is equivalent to the number contained in <paramref name="s"/>.</returns>
<exception cref="T:System.FormatException"><paramref name="s"/> is not of the correct format.</exception>
<exception cref="T:System.OverflowException">
<paramref name="s"/> represents a number less than <see cref="F:System.SByte.MinValue"/> or <see cref="F:System.Byte.MaxValue"/>.
<para/>
-or-
<para/>
<paramref name="s"/> includes non-zero, fractional digits.
</exception>
<exception cref="T:System.ArgumentException">
<paramref name="style"/> is not a <see cref="T:J2N.Globalization.NumberStyle"/> value.
<para/>
-or-
<para/>
<paramref name="style"/> is not a combination of <see cref="F:J2N.Globalization.NumberStyle.AllowHexSpecifier"/> and <see cref="F:J2N.Globalization.NumberStyle.HexNumber"/> values.
</exception>
<remarks>
The <paramref name="style"/> parameter defines the style elements (such as white space or the positive sign) that are allowed in the
<paramref name="s"/> parameter for the parse operation to succeed. It must be a combination of bit flags from the <see cref="T:J2N.Globalization.NumberStyle"/>
enumeration. Depending on the value of <paramref name="style"/>, the <paramref name="s"/> parameter may include the following elements:
<para/>
[ws][$][sign]digits[.fractional-digits][e[sign]exponential-digits][type][ws]
<para/>
Or, if the <paramref name="style"/> parameter includes <see cref="F:J2N.Globalization.NumberStyle.AllowHexSpecifier"/>:
<para/>
[ws][0x]hexdigits[hextype][ws]
<para/>
Elements framed in square brackets ([ and ]) are optional. The following table describes each element.
<para/>
<list type="table">
<listheader>
<term>Element</term>
<term>Description</term>
</listheader>
<item>
<term><i>ws</i></term>
<term>A series of white-space characters. White space can appear at the beginning of <paramref name="s"/> if style includes the
<see cref="F:J2N.Globalization.NumberStyle.AllowLeadingWhite"/> flag, and it can appear at the end of <paramref name="s"/> if style includes the
<see cref="F:J2N.Globalization.NumberStyle.AllowTrailingWhite"/> flag.</term>
</item>
<item>
<term><i>$</i></term>
<term>A culture-specific currency symbol. Its position in the string is defined by the <see cref="P:System.Globalization.NumberFormatInfo.CurrencyNegativePattern"/>
and <see cref="P:System.Globalization.NumberFormatInfo.CurrencyPositivePattern"/> properties of the <see cref="T:System.Globalization.NumberFormatInfo"/> object returned by the
<see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> method of the <paramref name="provider"/> parameter. The current culture's currency symbol can
appear in <paramref name="s"/> if style includes the <see cref="F:J2N.Globalization.NumberStyle.AllowCurrencySymbol"/> flag.</term>
</item>
<item>
<term><i>sign</i></term>
<term>A negative sign symbol (-) or a positive sign symbol (+). The sign can appear at the beginning of <paramref name="s"/> if
<paramref name="style"/> includes the <see cref="F:J2N.Globalization.NumberStyle.AllowLeadingSign"/> flag, and it can appear at the end of <paramref name="s"/>
if <paramref name="style"/> includes the <see cref="F:J2N.Globalization.NumberStyle.AllowTrailingSign"/> flag. Parentheses can be used in <paramref name="s"/>
to indicate a negative value if <paramref name="style"/> includes the <see cref="F:J2N.Globalization.NumberStyle.AllowParentheses"/> flag.</term>
</item>
<item>
<term><i>digits</i></term>
<term>A series of digits ranging from 0 to 9.</term>
</item>
<item>
<term><i>.</i></term>
<term>A culture-specific decimal point symbol. The decimal point symbol of the culture specified by <paramref name="provider"/>
can appear in <paramref name="s"/> if <paramref name="style"/> includes the <see cref="F:J2N.Globalization.NumberStyle.AllowDecimalPoint"/> flag.</term>
</item>
<item>
<term><i>fractional-digits</i>
</term>
<term>A series of digits ranging from 0 to 9 that specify the fractional part of the number. Fractional digits can appear in
<paramref name="s"/> if <paramref name="style"/> includes the <see cref="F:J2N.Globalization.NumberStyle.AllowDecimalPoint"/> flag.</term>
</item>
<item>
<term><i>e</i></term>
<term>The 'e' or 'E' character, which indicates that the value is represented in exponential notation. The <paramref name="s"/>
parameter can represent a number in exponential notation if <paramref name="style"/> includes the <see cref="F:J2N.Globalization.NumberStyle.AllowExponent"/> flag.</term>
</item>
<item>
<term><i>exponential-digits</i></term>
<term>A sequence of decimal digits from 0 through 9 that specify an exponent.</term>
</item>
<item>
<term><i>0x</i>/></term>
<term>The '0x' or '0X' characters, which indicate a hexadecimal number is to immediately follow.</term>
</item>
<item>
<term><i>hexdigits</i></term>
<term>A sequence of hexadecimal digits from 0 through f, or 0 through F. Hexadecimal digits can appear in <paramref name="s"/>
if <paramref name="style"/> includes the <see cref="F:J2N.Globalization.NumberStyle.AllowHexSpecifier"/> flag.</term>
</item>
<item>
<term><i>type</i></term>
<term>The 'UL', 'Ul', 'uL', 'ul', 'LU', 'Lu', 'lU', or 'lu', which is the
<a href="https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/language-specification/lexical-structure#6453-integer-literals">integral type suffix</a>
or 'f', 'F', 'd', 'D', 'm' or 'M' character, which is the
<a href="https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/language-specification/lexical-structure#6454-real-literals">real type suffix</a>
of the number as specified in the C# language specification. The type suffix can appear in <paramref name="s"/> if <paramref name="style"/>
includes the <see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/> flag.</term>
</item>
<item>
<term><i>hextype</i></term>
<term>The 'UL', 'Ul', 'uL', 'ul', 'LU', 'Lu', 'lU', or 'lu', which is the
<a href="https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/language-specification/lexical-structure#6453-integer-literals">integral type suffix</a>
of the number as specified in the C# language specification. The type suffix can appear in <paramref name="s"/> if <paramref name="style"/>
includes the <see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/> flag. Real type suffixes are not supported.</term>
</item>
</list>
<para/>
NOTE: Any terminating NUL (U+0000) characters in <paramref name="s"/> are ignored by the parsing operation, regardless of
the value of the <paramref name="style"/> argument.
<para/>
A string with decimal digits only (which corresponds to the <see cref="F:J2N.Globalization.NumberStyle.None"/> flag) always parses successfully.
Most of the remaining <see cref="T:J2N.Globalization.NumberStyle"/> members control elements that may be but are not required to be present in
this input string. The following table indicates how individual <see cref="T:J2N.Globalization.NumberStyle"/> members affect the elements that may
be present in <paramref name="s"/>.
<list type="table">
<listheader>
<term>Non-composite NumberStyle values</term>
<term>Elements permitted in <paramref name="s"/> in addition to digits</term>
</listheader>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.None"/></term>
<term>Decimal digits only.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowDecimalPoint"/></term>
<term>The decimal point (.) and <i>fractional-digits</i> elements. However, <i>fractional-digits</i> must consist
of only one or more 0 digits or the method returns <c>false</c>.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowExponent"/></term>
<term>The <paramref name="s"/> parameter can also use exponential notation. If <paramref name="s"/> represents a
number in exponential notation, it must represent an integer within the range of the <see cref="T:System.Byte"/> data type
without a non-zero, fractional component.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowLeadingWhite"/></term>
<term>The <i>ws</i> element at the beginning of <paramref name="s"/>.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowTrailingWhite"/></term>
<term>The <i>ws</i> element at the end of <paramref name="s"/>.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowLeadingSign"/></term>
<term>A sign can appear before <i>digits</i>.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowTrailingSign"/></term>
<term>A sign can appear after <i>digits</i>.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowParentheses"/></term>
<term>The <i>sign</i> element in the form of parentheses enclosing the numeric value.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowThousands"/></term>
<term>The thousands separator (,) element.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowCurrencySymbol"/></term>
<term>The <i>$</i> element.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/></term>
<term>The literal <i>type</i> suffix used in the literal identifier syntax of C# (suffixed with one of
'D', 'd', 'F', 'f', 'M', 'm', 'L', 'l', 'U', 'u', 'UL', 'ul', 'LU', or 'lu').</term>
</item>
</list>
<para/>
The <see cref="T:J2N.Globalization.NumberStyle"/> enum can be converted to the .NET <see cref="T:System.Globalization.NumberStyles"/> enum by using the
<see cref="M:J2N.Globalization.NumberStyleExtensions.ToNumberStyles(J2N.Globalization.NumberStyle)"/> extension method.
Similarly, <see cref="T:System.Globalization.NumberStyles"/> enum can be converted to the J2N <see cref="T:J2N.Globalization.NumberStyle"/> enum by using
the <see cref="M:J2N.Globalization.NumberStyleExtensions.ToNumberStyle(System.Globalization.NumberStyles)"/> extension method.
<para/>
If the <see cref="F:J2N.Globalization.NumberStyle.AllowHexSpecifier"/> flag is used, <paramref name="s"/> must be a hexadecimal value with or without a <c>0x</c> prefix.
For example, "F3" and "0xF3" both parse successfully. The only other flags that can be present in <paramref name="style"/> are
<see cref="F:J2N.Globalization.NumberStyle.AllowLeadingWhite"/>, <see cref="F:J2N.Globalization.NumberStyle.AllowTrailingWhite"/> and <see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/>.
(The <see cref="T:J2N.Globalization.NumberStyle"/> enumeration has a composite number style, <see cref="F:J2N.Globalization.NumberStyle.HexNumber"/>, that includes both white space
flags.)
The <see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/> only allows 'L', 'l', 'U', 'u', 'UL', 'ul', 'LU', or 'lu' for hexadecimal numbers.
<para/>
The <paramref name="provider"/> parameter is an <see cref="T:System.IFormatProvider"/> implementation, such as a <see cref="T:System.Globalization.CultureInfo"/> object,
a <see cref="T:System.Globalization.NumberFormatInfo"/> object or a <see cref="T:J2N.Text.StringFormatter"/> object, whose <see cref="M:System.IFormatProvider.GetFormat(System.Type)"/>
method returns a <see cref="T:System.Globalization.NumberFormatInfo"/> object. The <see cref="T:System.Globalization.NumberFormatInfo"/> object provides culture-specific information about
the format of <paramref name="s"/>. When the <see cref="M:J2N.Numerics.Byte.Parse(System.String,System.IFormatProvider)"/> method is invoked, it calls the provider parameter's
<see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> method and passes it a <see cref="T:System.Type"/> object that represents the <see cref="T:System.Globalization.NumberFormatInfo"/> type.
The <see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> method then returns the <see cref="T:System.Globalization.NumberFormatInfo"/> object that provides information about the
format of the <paramref name="s"/> parameter. There are three ways to use the <paramref name="provider"/> parameter to supply custom formatting
information to the parse operation:
<list type="bullet">
<item><description>You can pass a <see cref="T:System.Globalization.CultureInfo"/> object that represents the culture that supplies formatting information. Its
<see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> method returns the <see cref="T:System.Globalization.NumberFormatInfo"/> object that provides numeric formatting
information for that culture.</description></item>
<item><description>You can pass the actual <see cref="T:System.Globalization.NumberFormatInfo"/> object that provides numeric formatting information. (Its
implementation of <see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> just returns itself.)</description></item>
<item><description>You can pass a custom object that implements <see cref="T:System.IFormatProvider"/>. Its <see cref="M:System.IFormatProvider.GetFormat(System.Type)"/>
method instantiates and returns the <see cref="T:System.Globalization.NumberFormatInfo"/> object that provides formatting information.</description></item>
</list>
If <paramref name="provider"/> is <c>null</c> or a <see cref="T:System.Globalization.NumberFormatInfo"/> object cannot be obtained, the <see cref="T:System.Globalization.NumberFormatInfo"/>
object for the current culture is used.
</remarks>
<seealso cref="M:J2N.Numerics.Byte.TryParse(System.ReadOnlySpan{System.Char},J2N.Globalization.NumberStyle,System.IFormatProvider,System.Byte@)"/>
</member>
<member name="M:J2N.Numerics.Byte.TryParse(System.String,J2N.Globalization.NumberStyle,System.IFormatProvider,System.Byte@)">
<summary>
Converts the span representation of a number in a specified style and culture-specific format to its 8-bit unsigned integer equivalent.
A return value indicates whether the conversion succeeded.
<para/>
Usage Note: To exactly match Java, use <see cref="F:J2N.Globalization.NumberStyle.AllowLeadingSign"/> for <paramref name="style"/> and
<see cref="P:System.Globalization.NumberFormatInfo.InvariantInfo"/> for <paramref name="provider"/>. We recommend factoring out
exceptions when parsing, but if the Java code depends on exceptions, throw <see cref="T:System.FormatException"/>
when this method returns <c>false</c>.
</summary>
<param name="s">A span containing the characters that represent the number to convert. The span is interpreted using
the style specified by <paramref name="style"/>. For compatibility with Java's byte (which is an 8-bit signed byte) the
value may be from <c>"-127"</c> to <c>"255"</c>. Negative numbers in this range will overflow and become high-order positive numbers.</param>
<param name="style">A bitwise combination of enumeration values that indicates the style elements that can be present in <paramref name="s"/>.
A typical value to specify is <see cref="F:J2N.Globalization.NumberStyle.Integer"/>.</param>
<param name="provider">An object that supplies culture-specific formatting information about <paramref name="s"/>.</param>
<param name="result">When this method returns, contains the 8-bit unsigned integer value equivalent of
the number contained in <paramref name="s"/>, if the conversion succeeded, or zero if the conversion failed.
The conversion fails if the s parameter is <c>null</c> or <see cref="F:System.String.Empty"/>, is not of the correct format,
or represents a number less than <see cref="F:System.Byte.MinValue"/> or greater than <see cref="F:System.Byte.MaxValue"/>. This parameter
is passed uninitialized; any value originally supplied in <paramref name="result"/> will be overwritten.</param>
<returns><c>true</c> if <paramref name="s"/> was converted successfully; otherwise, <c>false</c>.</returns>
<exception cref="T:System.ArgumentException">
<paramref name="style"/> is not a <see cref="T:J2N.Globalization.NumberStyle"/> value.
<para/>
-or-
<para/>
<paramref name="style"/> is not a combination of <see cref="F:J2N.Globalization.NumberStyle.AllowHexSpecifier"/> and <see cref="F:J2N.Globalization.NumberStyle.HexNumber"/> values.
</exception>
<remarks>
The <see cref="M:J2N.Numerics.Byte.TryParse(System.String,J2N.Globalization.NumberStyle,System.IFormatProvider,System.Byte@)"/> method is like the <see cref="M:J2N.Numerics.Byte.Parse(System.String,J2N.Globalization.NumberStyle,System.IFormatProvider)"/> method,
except the <see cref="M:J2N.Numerics.Byte.TryParse(System.String,J2N.Globalization.NumberStyle,System.IFormatProvider,System.Byte@)"/> method does not throw an exception if the
conversion fails. It eliminates the need to use exception handling to test for a <see cref="T:System.FormatException"/>
in the event that <paramref name="s"/> is invalid and cannot be successfully parsed.
<para/>
The <paramref name="style"/> parameter defines the style elements (such as white space or a positive or negative sign)
that are allowed in the <paramref name="s"/> parameter for the parse operation to succeed. It must be a combination of
bit flags from the <see cref="T:J2N.Globalization.NumberStyle"/> enumeration. Depending on the value of <paramref name="style"/>, the <paramref name="s"/>
parameter may include the following elements:
<code>
[ws][$][sign][digits,]digits[.fractional-digits][e[sign]exponential-digits][type][ws]
</code>
Or, if the <paramref name="style"/> parameter includes <see cref="F:J2N.Globalization.NumberStyle.AllowHexSpecifier"/>:
<code>
[ws][0x]hexdigits[hextype][ws]
</code>
Items in square brackets ([ and ]) are optional. The following table describes each element.
<list type="table">
<listheader>
<term>Element</term>
<term>Description</term>
</listheader>
<item>
<term><i>ws</i></term>
<term>Optional white space.</term>
</item>
<item>
<term><i>$</i></term>
<term>A culture-specific currency symbol. Its position in the string is defined by the <see cref="P:System.Globalization.NumberFormatInfo.CurrencyPositivePattern"/>
property of the <see cref="T:System.Globalization.NumberFormatInfo"/> object returned by the <see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> method of the
<paramref name="provider"/> parameter. The currency symbol can appear in <paramref name="s"/> if style includes the
<see cref="F:J2N.Globalization.NumberStyle.AllowCurrencySymbol"/> flag.</term>
</item>
<item>
<term><i>sign</i></term>
<term>An optional sign.</term>
</item>
<item>
<term><i>digits</i></term>
<term>A sequence of digits ranging from 0 to 9.</term>
</item>
<item>
<term><i>,</i></term>
<term>A culture-specific thousands separator. The thousands separator of the culture specified by <paramref name="provider"/>
can appear in <paramref name="s"/> if <paramref name="style"/> includes the <see cref="F:J2N.Globalization.NumberStyle.AllowThousands"/> flag.</term>
</item>
<item>
<term><i>.</i></term>
<term>A culture-specific decimal point symbol. The decimal point symbol of the culture specified by <paramref name="provider"/>
can appear in <paramref name="s"/> if <paramref name="style"/> includes the <see cref="F:J2N.Globalization.NumberStyle.AllowDecimalPoint"/> flag.</term>
</item>
<item>
<term><i>fractional-digits</i></term>
<term>One or more occurrences of the digit 0. Fractional digits can appear in <paramref name="s"/> only if style includes
the <see cref="F:J2N.Globalization.NumberStyle.AllowDecimalPoint"/> flag.</term>
</item>
<item>
<term><i>e</i></term>
<term>The 'e' or 'E' character, which indicates that the value is represented in exponential notation. The <paramref name="s"/>
parameter can represent a number in exponential notation if style includes the <see cref="F:J2N.Globalization.NumberStyle.AllowExponent"/> flag.</term>
</item>
<item>
<term><i>exponential-digits</i></term>
<term>A sequence of decimal digits from 0 through 9 that specify an exponent.</term>
</item>
<item>
<term><i>0x</i>/></term>
<term>The '0x' or '0X' characters, which indicate a hexadecimal number is to immediately follow.</term>
</item>
<item>
<term><i>hexdigits</i></term>
<term>A sequence of hexadecimal digits from 0 through f, or 0 through F.</term>
</item>
<item>
<term><i>type</i></term>
<term>The 'UL', 'Ul', 'uL', 'ul', 'LU', 'Lu', 'lU', or 'lu', which is the
<a href="https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/language-specification/lexical-structure#6453-integer-literals">integral type suffix</a>
or 'f', 'F', 'd', 'D', 'm' or 'M' character, which is the
<a href="https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/language-specification/lexical-structure#6454-real-literals">real type suffix</a>
of the number as specified in the C# language specification. The type suffix can appear in <paramref name="s"/> if <paramref name="style"/>
includes the <see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/> flag.</term>
</item>
<item>
<term><i>hextype</i></term>
<term>The 'UL', 'Ul', 'uL', 'ul', 'LU', 'Lu', 'lU', or 'lu', which is the
<a href="https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/language-specification/lexical-structure#6453-integer-literals">integral type suffix</a>
of the number as specified in the C# language specification. The type suffix can appear in <paramref name="s"/> if <paramref name="style"/>
includes the <see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/> flag. Real type suffixes are not supported.</term>
</item>
</list>
<para/>
NOTE: Any terminating NUL (U+0000) characters in <paramref name="s"/> are ignored by the parsing operation, regardless of
the value of the <paramref name="style"/> argument.
<para/>
A string with decimal digits only (which corresponds to the <see cref="F:J2N.Globalization.NumberStyle.None"/> flag) always parses successfully.
Most of the remaining <see cref="T:J2N.Globalization.NumberStyle"/> members control elements that may be but are not required to be present in
this input string. The following table indicates how individual <see cref="T:J2N.Globalization.NumberStyle"/> members affect the elements that may
be present in <paramref name="s"/>.
<list type="table">
<listheader>
<term>Non-composite NumberStyle values</term>
<term>Elements permitted in <paramref name="s"/> in addition to digits</term>
</listheader>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.None"/></term>
<term>Decimal digits only.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowDecimalPoint"/></term>
<term>The decimal point (.) and <i>fractional-digits</i> elements. However, <i>fractional-digits</i> must consist
of only one or more 0 digits or the method returns <c>false</c>.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowExponent"/></term>
<term>The <paramref name="s"/> parameter can also use exponential notation. If <paramref name="s"/> represents a
number in exponential notation, it must represent an integer within the range of the <see cref="T:System.Byte"/> data type
without a non-zero, fractional component.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowLeadingWhite"/></term>
<term>The <i>ws</i> element at the beginning of <paramref name="s"/>.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowTrailingWhite"/></term>
<term>The <i>ws</i> element at the end of <paramref name="s"/>.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowLeadingSign"/></term>
<term>A sign can appear before <i>digits</i>.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowTrailingSign"/></term>
<term>A sign can appear after <i>digits</i>.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowParentheses"/></term>
<term>The <i>sign</i> element in the form of parentheses enclosing the numeric value.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowThousands"/></term>
<term>The thousands separator (,) element.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowCurrencySymbol"/></term>
<term>The <i>$</i> element.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/></term>
<term>The literal <i>type</i> suffix used in the literal identifier syntax of C# (suffixed with one of
'D', 'd', 'F', 'f', 'M', 'm', 'L', 'l', 'U', 'u', 'UL', 'ul', 'LU', or 'lu').</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.Currency"/></term>
<term>All elements. The <paramref name="s"/> parameter cannot represent a hexadecimal
number or a number in exponential notation.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.Float"/></term>
<term>The <i>ws</i> element at the beginning or end of <paramref name="s"/>, sign at
the beginning of <paramref name="s"/>, and the decimal point (.) symbol. The <paramref name="s"/>
parameter can also use exponential notation.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.Number"/></term>
<term>The <i>ws</i>, <i>sign</i>, thousands separator (,), and decimal point (.) elements.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.Any"/></term>
<term>All styles, except <paramref name="s"/> cannot represent a hexadecimal number.</term>
</item>
</list>
<para/>
The <see cref="T:J2N.Globalization.NumberStyle"/> enum is a match in both symbol and value for the .NET <see cref="T:System.Globalization.NumberStyles"/> enum.
Therefore, simply casting the value will convert it properly between the two in both directions.
<para/>
If the <see cref="F:J2N.Globalization.NumberStyle.AllowHexSpecifier"/> flag is used, <paramref name="s"/> must be a hexadecimal value with or without a <c>0x</c> prefix.
For example, "F3" and "0xF3" both parse successfully. The only other flags that can be present in <paramref name="style"/> are
<see cref="F:J2N.Globalization.NumberStyle.AllowLeadingWhite"/>, <see cref="F:J2N.Globalization.NumberStyle.AllowTrailingWhite"/> and <see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/>.
(The <see cref="T:J2N.Globalization.NumberStyle"/> enumeration has a composite number style, <see cref="F:J2N.Globalization.NumberStyle.HexNumber"/>, that includes both white space
flags.)
The <see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/> only allows 'L', 'l', 'U', 'u', 'UL', 'ul', 'LU', or 'lu' for hexadecimal numbers.
<para/>
The <paramref name="provider"/> parameter is an <see cref="T:System.IFormatProvider"/> implementation, such as a <see cref="T:System.Globalization.CultureInfo"/> object,
a <see cref="T:System.Globalization.NumberFormatInfo"/> object or a <see cref="T:J2N.Text.StringFormatter"/> object, whose <see cref="M:System.IFormatProvider.GetFormat(System.Type)"/>
method returns a <see cref="T:System.Globalization.NumberFormatInfo"/> object. The <see cref="T:System.Globalization.NumberFormatInfo"/> object provides culture-specific information about
the format of <paramref name="s"/>. If <paramref name="provider"/> is <c>null</c>, the <see cref="T:System.Globalization.NumberFormatInfo"/> object for the current
culture is used.
</remarks>
<seealso cref="M:J2N.Numerics.Byte.Parse(System.String,J2N.Globalization.NumberStyle,System.IFormatProvider)"/>
<seealso cref="M:J2N.Numerics.Byte.TryParse(System.String,System.Byte@)"/>
<seealso cref="M:J2N.Numerics.Number.ToString"/>
<seealso cref="T:J2N.Globalization.NumberStyle"/>
</member>
<member name="M:J2N.Numerics.Byte.TryParse(System.ReadOnlySpan{System.Char},J2N.Globalization.NumberStyle,System.IFormatProvider,System.Byte@)">
<summary>
Converts the span representation of a number in a specified style and culture-specific format to its 8-bit unsigned integer equivalent.
A return value indicates whether the conversion succeeded.
<para/>
Usage Note: To exactly match Java, use <see cref="F:J2N.Globalization.NumberStyle.AllowLeadingSign"/> for <paramref name="style"/> and
<see cref="P:System.Globalization.NumberFormatInfo.InvariantInfo"/> for <paramref name="provider"/>. We recommend factoring out
exceptions when parsing, but if the Java code depends on exceptions, throw <see cref="T:System.FormatException"/>
when this method returns <c>false</c>.
</summary>
<param name="s">A span containing the characters that represent the number to convert. The span is interpreted using
the style specified by <paramref name="style"/>. For compatibility with Java's byte (which is an 8-bit signed byte) the
value may be from <c>"-127"</c> to <c>"255"</c>. Negative numbers in this range will overflow and become high-order positive numbers.</param>
<param name="style">A bitwise combination of enumeration values that indicates the style elements that can be present in <paramref name="s"/>.
A typical value to specify is <see cref="F:J2N.Globalization.NumberStyle.Integer"/>.</param>
<param name="provider">An object that supplies culture-specific formatting information about <paramref name="s"/>.</param>
<param name="result">When this method returns, contains the 8-bit unsigned integer value equivalent of
the number contained in <paramref name="s"/>, if the conversion succeeded, or zero if the conversion failed.
The conversion fails if the s parameter is <c>null</c> or <see cref="F:System.String.Empty"/>, is not of the correct format,
or represents a number less than <see cref="F:System.SByte.MinValue"/> or greater than <see cref="F:System.Byte.MaxValue"/>. This parameter
is passed uninitialized; any value originally supplied in <paramref name="result"/> will be overwritten.</param>
<returns><c>true</c> if <paramref name="s"/> was converted successfully; otherwise, <c>false</c>.</returns>
<exception cref="T:System.ArgumentException">
<paramref name="style"/> is not a <see cref="T:J2N.Globalization.NumberStyle"/> value.
<para/>
-or-
<para/>
<paramref name="style"/> is not a combination of <see cref="F:J2N.Globalization.NumberStyle.AllowHexSpecifier"/> and <see cref="F:J2N.Globalization.NumberStyle.HexNumber"/> values.
</exception>
<remarks>
The <see cref="M:J2N.Numerics.Byte.TryParse(System.ReadOnlySpan{System.Char},J2N.Globalization.NumberStyle,System.IFormatProvider,System.Byte@)"/> method is like the <see cref="M:J2N.Numerics.Byte.Parse(System.ReadOnlySpan{System.Char},J2N.Globalization.NumberStyle,System.IFormatProvider)"/> method,
except the <see cref="M:J2N.Numerics.Byte.TryParse(System.ReadOnlySpan{System.Char},J2N.Globalization.NumberStyle,System.IFormatProvider,System.Byte@)"/> method does not throw an exception if the
conversion fails. It eliminates the need to use exception handling to test for a <see cref="T:System.FormatException"/>
in the event that <paramref name="s"/> is invalid and cannot be successfully parsed.
<para/>
The <paramref name="style"/> parameter defines the style elements (such as white space or a positive or negative sign)
that are allowed in the <paramref name="s"/> parameter for the parse operation to succeed. It must be a combination of
bit flags from the <see cref="T:J2N.Globalization.NumberStyle"/> enumeration. Depending on the value of <paramref name="style"/>, the <paramref name="s"/>
parameter may include the following elements:
<code>
[ws][$][sign][digits,]digits[.fractional-digits][e[sign]exponential-digits][type][ws]
</code>
Or, if the <paramref name="style"/> parameter includes <see cref="F:J2N.Globalization.NumberStyle.AllowHexSpecifier"/>:
<code>
[ws][0x]hexdigits[hextype][ws]
</code>
Items in square brackets ([ and ]) are optional. The following table describes each element.
<list type="table">
<listheader>
<term>Element</term>
<term>Description</term>
</listheader>
<item>
<term><i>ws</i></term>
<term>Optional white space.</term>
</item>
<item>
<term><i>$</i></term>
<term>A culture-specific currency symbol. Its position in the string is defined by the <see cref="P:System.Globalization.NumberFormatInfo.CurrencyPositivePattern"/>
property of the <see cref="T:System.Globalization.NumberFormatInfo"/> object returned by the <see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> method of the
<paramref name="provider"/> parameter. The currency symbol can appear in <paramref name="s"/> if style includes the
<see cref="F:J2N.Globalization.NumberStyle.AllowCurrencySymbol"/> flag.</term>
</item>
<item>
<term><i>sign</i></term>
<term>An optional sign.</term>
</item>
<item>
<term><i>digits</i></term>
<term>A sequence of digits ranging from 0 to 9.</term>
</item>
<item>
<term><i>,</i></term>
<term>A culture-specific thousands separator. The thousands separator of the culture specified by <paramref name="provider"/>
can appear in <paramref name="s"/> if <paramref name="style"/> includes the <see cref="F:J2N.Globalization.NumberStyle.AllowThousands"/> flag.</term>
</item>
<item>
<term><i>.</i></term>
<term>A culture-specific decimal point symbol. The decimal point symbol of the culture specified by <paramref name="provider"/>
can appear in <paramref name="s"/> if <paramref name="style"/> includes the <see cref="F:J2N.Globalization.NumberStyle.AllowDecimalPoint"/> flag.</term>
</item>
<item>
<term><i>fractional-digits</i></term>
<term>One or more occurrences of the digit 0. Fractional digits can appear in <paramref name="s"/> only if style includes
the <see cref="F:J2N.Globalization.NumberStyle.AllowDecimalPoint"/> flag.</term>
</item>
<item>
<term><i>The 'e' or 'E' character, which indicates that the value is represented in exponential notation. The <paramref name="s"/>
parameter can represent a number in exponential notation if style includes the <see cref="F:J2N.Globalization.NumberStyle.AllowExponent"/> flag.</i></term>
<term></term>
</item>
<item>
<term><i>exponential-digits</i></term>
<term>A sequence of decimal digits from 0 through 9 that specify an exponent.</term>
</item>
<item>
<term><i>0x</i>/></term>
<term>The '0x' or '0X' characters, which indicate a hexadecimal number is to immediately follow.</term>
</item>
<item>
<term><i>hexdigits</i></term>
<term>A sequence of hexadecimal digits from 0 through f, or 0 through F.</term>
</item>
<item>
<term><i>type</i></term>
<term>The 'UL', 'Ul', 'uL', 'ul', 'LU', 'Lu', 'lU', or 'lu', which is the
<a href="https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/language-specification/lexical-structure#6453-integer-literals">integral type suffix</a>
or 'f', 'F', 'd', 'D', 'm' or 'M' character, which is the
<a href="https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/language-specification/lexical-structure#6454-real-literals">real type suffix</a>
of the number as specified in the C# language specification. The type suffix can appear in <paramref name="s"/> if <paramref name="style"/>
includes the <see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/> flag.</term>
</item>
<item>
<term><i>hextype</i></term>
<term>The 'UL', 'Ul', 'uL', 'ul', 'LU', 'Lu', 'lU', or 'lu', which is the
<a href="https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/language-specification/lexical-structure#6453-integer-literals">integral type suffix</a>
of the number as specified in the C# language specification. The type suffix can appear in <paramref name="s"/> if <paramref name="style"/>
includes the <see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/> flag. Real type suffixes are not supported.</term>
</item>
</list>
<para/>
NOTE: Any terminating NUL (U+0000) characters in <paramref name="s"/> are ignored by the parsing operation, regardless of
the value of the <paramref name="style"/> argument.
<para/>
A string with decimal digits only (which corresponds to the <see cref="F:J2N.Globalization.NumberStyle.None"/> flag) always parses successfully.
Most of the remaining <see cref="T:J2N.Globalization.NumberStyle"/> members control elements that may be but are not required to be present in
this input string. The following table indicates how individual <see cref="T:J2N.Globalization.NumberStyle"/> members affect the elements that may
be present in <paramref name="s"/>.
<list type="table">
<listheader>
<term>Non-composite NumberStyle values</term>
<term>Elements permitted in <paramref name="s"/> in addition to digits</term>
</listheader>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.None"/></term>
<term>Decimal digits only.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowDecimalPoint"/></term>
<term>The decimal point (.) and <i>fractional-digits</i> elements. However, <i>fractional-digits</i> must consist
of only one or more 0 digits or the method returns <c>false</c>.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowExponent"/></term>
<term>The <paramref name="s"/> parameter can also use exponential notation. If <paramref name="s"/> represents a
number in exponential notation, it must represent an integer within the range of the <see cref="T:System.Byte"/> data type
without a non-zero, fractional component.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowLeadingWhite"/></term>
<term>The <i>ws</i> element at the beginning of <paramref name="s"/>.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowTrailingWhite"/></term>
<term>The <i>ws</i> element at the end of <paramref name="s"/>.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowLeadingSign"/></term>
<term>A sign can appear before <i>digits</i>.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowTrailingSign"/></term>
<term>A sign can appear after <i>digits</i>.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowParentheses"/></term>
<term>The <i>sign</i> element in the form of parentheses enclosing the numeric value.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowThousands"/></term>
<term>The thousands separator (,) element.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowCurrencySymbol"/></term>
<term>The <i>$</i> element.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/></term>
<term>The literal <i>type</i> suffix used in the literal identifier syntax of C# (suffixed with one of
'D', 'd', 'F', 'f', 'M', 'm', 'L', 'l', 'U', 'u', 'UL', 'ul', 'LU', or 'lu').</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.Currency"/></term>
<term>All elements. The <paramref name="s"/> parameter cannot represent a hexadecimal
number or a number in exponential notation.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.Float"/></term>
<term>The <i>ws</i> element at the beginning or end of <paramref name="s"/>, sign at
the beginning of <paramref name="s"/>, and the decimal point (.) symbol. The <paramref name="s"/>
parameter can also use exponential notation.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.Number"/></term>
<term>The <i>ws</i>, <i>sign</i>, thousands separator (,), and decimal point (.) elements.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.Any"/></term>
<term>All styles, except <paramref name="s"/> cannot represent a hexadecimal number.</term>
</item>
</list>
<para/>
The <see cref="T:J2N.Globalization.NumberStyle"/> enum can be converted to the .NET <see cref="T:System.Globalization.NumberStyles"/> enum by using the
<see cref="M:J2N.Globalization.NumberStyleExtensions.ToNumberStyles(J2N.Globalization.NumberStyle)"/> extension method.
Similarly, <see cref="T:System.Globalization.NumberStyles"/> enum can be converted to the J2N <see cref="T:J2N.Globalization.NumberStyle"/> enum by using
the <see cref="M:J2N.Globalization.NumberStyleExtensions.ToNumberStyle(System.Globalization.NumberStyles)"/> extension method.
<para/>
If the <see cref="F:J2N.Globalization.NumberStyle.AllowHexSpecifier"/> flag is used, <paramref name="s"/> must be a hexadecimal value with or without a <c>0x</c> prefix.
For example, "F3" and "0xF3" both parse successfully. The only other flags that can be present in <paramref name="style"/> are
<see cref="F:J2N.Globalization.NumberStyle.AllowLeadingWhite"/>, <see cref="F:J2N.Globalization.NumberStyle.AllowTrailingWhite"/> and <see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/>.
(The <see cref="T:J2N.Globalization.NumberStyle"/> enumeration has a composite number style, <see cref="F:J2N.Globalization.NumberStyle.HexNumber"/>, that includes both white space
flags.)
The <see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/> only allows 'L', 'l', 'U', 'u', 'UL', 'ul', 'LU', or 'lu' for hexadecimal numbers.
<para/>
The <paramref name="provider"/> parameter is an <see cref="T:System.IFormatProvider"/> implementation, such as a <see cref="T:System.Globalization.CultureInfo"/> object,
a <see cref="T:System.Globalization.NumberFormatInfo"/> object or a <see cref="T:J2N.Text.StringFormatter"/> object, whose <see cref="M:System.IFormatProvider.GetFormat(System.Type)"/>
method returns a <see cref="T:System.Globalization.NumberFormatInfo"/> object. The <see cref="T:System.Globalization.NumberFormatInfo"/> object provides culture-specific information about
the format of <paramref name="s"/>. If <paramref name="provider"/> is <c>null</c>, the <see cref="T:System.Globalization.NumberFormatInfo"/> object for the current
culture is used.
</remarks>
<seealso cref="M:J2N.Numerics.Byte.Parse(System.ReadOnlySpan{System.Char},J2N.Globalization.NumberStyle,System.IFormatProvider)"/>
<seealso cref="M:J2N.Numerics.Byte.TryParse(System.ReadOnlySpan{System.Char},System.Byte@)"/>
<seealso cref="M:J2N.Numerics.Number.ToString"/>
<seealso cref="T:J2N.Globalization.NumberStyle"/>
</member>
<member name="M:J2N.Numerics.Byte.ToString">
<summary>
Converts the value of the current <see cref="T:J2N.Numerics.Byte"/> object to its equivalent string representation.
</summary>
<returns>The string representation of the value of this object, which consists of a sequence of digits
that range from 0 to 9 with no leading zeroes.</returns>
<remarks>
The <see cref="M:J2N.Numerics.Byte.ToString"/> method formats the current instance in the default ("J", or Java)
format of the current culture. If you want to specify a different format, precision, or culture, use the
other overloads of the <see cref="M:J2N.Numerics.Byte.ToString(System.String,System.IFormatProvider)"/> method, as follows:
<list type="table">
<listheader>
<term>To use format</term>
<term>For culture</term>
<term>Use the overload</term>
</listheader>
<item>
<term>Default ("J") format</term>
<term>A specific culture</term>
<term><see cref="M:J2N.Numerics.Byte.ToString(System.Byte,System.IFormatProvider)"/> or <see cref="M:J2N.Numerics.Byte.ToString(System.IFormatProvider)"/></term>
</item>
<item>
<term>A specific format or precision</term>
<term>Default (current) culture</term>
<term><see cref="M:J2N.Numerics.Byte.ToString(System.Byte,System.String)"/> or <see cref="M:J2N.Numerics.Byte.ToString(System.String)"/></term>
</item>
<item>
<term>A specific format or precision</term>
<term>A specific culture</term>
<term><see cref="M:J2N.Numerics.Byte.ToString(System.Byte,System.String,System.IFormatProvider)"/> or <see cref="M:J2N.Numerics.Byte.ToString(System.String,System.IFormatProvider)"/></term>
</item>
</list>
<para/>
.NET provides extensive formatting support, which is described in greater detail in the following formatting topics:
<list type="bullet">
<item><description>For more information about numeric format specifiers, see
<a href="https://docs.microsoft.com/en-us/dotnet/standard/base-types/standard-numeric-format-strings">Standard Numeric Format Strings</a>
and <a href="https://docs.microsoft.com/en-us/dotnet/standard/base-types/custom-numeric-format-strings">Custom Numeric Format Strings</a>.
</description></item>
<item><description>For more information about formatting, see
<a href="https://docs.microsoft.com/en-us/dotnet/standard/base-types/formatting-types">Formatting Types</a>.</description></item>
</list>
</remarks>
<seealso cref="M:J2N.Numerics.Byte.Parse(System.String,System.IFormatProvider)"/>
</member>
<member name="M:J2N.Numerics.Byte.ToString(System.String)">
<summary>
Converts the value of the current <see cref="T:J2N.Numerics.Byte"/> object to its equivalent string representation
using the specified format.
</summary>
<param name="format">A numeric format string.</param>
<returns>The string representation of the current <see cref="T:J2N.Numerics.Byte"/> object, formatted as specified by
the <paramref name="format"/> parameter.</returns>
<exception cref="T:System.FormatException">
<paramref name="format"/> includes an unsupported specifier. Supported format specifiers are listed in the Remarks section.
</exception>
<remarks>
The <see cref="M:J2N.Numerics.Byte.ToString(System.String)"/> method formats the current instance in
a specified format by using the conventions of the current culture. If you want to specify a different format or culture,
use the other overloads of the <see cref="M:J2N.Numerics.Byte.ToString(System.String,System.IFormatProvider)"/> method, as follows:
<list type="table">
<listheader>
<term>To use format</term>
<term>For culture</term>
<term>Use the overload</term>
</listheader>
<item>
<term>Default ("J") format</term>
<term>Default (current) culture</term>
<term><see cref="M:J2N.Numerics.Byte.ToString(System.Byte)"/> or <see cref="M:J2N.Numerics.Byte.ToString"/></term>
</item>
<item>
<term>Default ("J") format</term>
<term>A specific culture</term>
<term><see cref="M:J2N.Numerics.Byte.ToString(System.Byte,System.IFormatProvider)"/> or <see cref="M:J2N.Numerics.Byte.ToString(System.IFormatProvider)"/></term>
</item>
<item>
<term>A specific format or precision</term>
<term>A specific culture</term>
<term><see cref="M:J2N.Numerics.Byte.ToString(System.Byte,System.String,System.IFormatProvider)"/> or <see cref="M:J2N.Numerics.Byte.ToString(System.String,System.IFormatProvider)"/></term>
</item>
</list>
<para/>
The format parameter can be either a standard or a custom numeric format string. All standard numeric format strings other
than "R" (or "r") are supported, as are all custom numeric format characters. If format is <c>null</c> or an empty string (""),
the return value is formatted with the Java numeric format specifier ("J").
<para/>
The return value of this function is formatted using the <see cref="T:System.Globalization.NumberFormatInfo"/> object for the thread current culture.
For information about the thread current culture, see <see cref="P:System.Threading.Thread.CurrentCulture"/>. To provide formatting information
for cultures other than the current culture, call the <see cref="M:J2N.Numerics.Byte.ToString(System.String,System.IFormatProvider)"/> method.
<para/>
.NET provides extensive formatting support, which is described in greater detail in the following formatting topics:
<list type="bullet">
<item><description>For more information about numeric format specifiers, see
<a href="https://docs.microsoft.com/en-us/dotnet/standard/base-types/standard-numeric-format-strings">Standard Numeric Format Strings</a>
and <a href="https://docs.microsoft.com/en-us/dotnet/standard/base-types/custom-numeric-format-strings">Custom Numeric Format Strings</a>.
</description></item>
<item><description>For more information about formatting, see
<a href="https://docs.microsoft.com/en-us/dotnet/standard/base-types/formatting-types">Formatting Types</a>.</description></item>
</list>
</remarks>
<seealso cref="M:J2N.Numerics.Byte.Parse(System.String,System.IFormatProvider)"/>
</member>
<member name="M:J2N.Numerics.Byte.ToString(System.IFormatProvider)">
<summary>
Converts the numeric value of the current <see cref="T:J2N.Numerics.Byte"/> object to its equivalent string representation using the
specified culture-specific formatting information.
</summary>
<param name="provider">An object that supplies culture-specific formatting information.</param>
<returns>The string representation of the value of this object in the format specified by the <paramref name="provider"/> parameter.</returns>
<remarks>
The <see cref="M:J2N.Numerics.Byte.ToString(System.IFormatProvider)"/> method formats the current instance in
the default ("J") format of a specified culture. If you want to specify a different format or culture, use the
other overloads of the <see cref="M:J2N.Numerics.Byte.ToString(System.String,System.IFormatProvider)"/> method, as follows:
<list type="table">
<listheader>
<term>To use format</term>
<term>For culture</term>
<term>Use the overload</term>
</listheader>
<item>
<term>Default ("J") format</term>
<term>Default (current) culture</term>
<term><see cref="M:J2N.Numerics.Byte.ToString(System.Byte)"/> or <see cref="M:J2N.Numerics.Byte.ToString"/></term>
</item>
<item>
<term>A specific format or precision</term>
<term>Default (current) culture</term>
<term><see cref="M:J2N.Numerics.Byte.ToString(System.Byte,System.String)"/> or <see cref="M:J2N.Numerics.Byte.ToString(System.String)"/></term>
</item>
<item>
<term>A specific format or precision</term>
<term>A specific culture</term>
<term><see cref="M:J2N.Numerics.Byte.ToString(System.Byte,System.String,System.IFormatProvider)"/> or <see cref="M:J2N.Numerics.Byte.ToString(System.String,System.IFormatProvider)"/></term>
</item>
</list>
<para/>
The return value is formatted with the Java numeric format specifier ("J").
<para/>
The <paramref name="provider"/> parameter is an object that implements the <see cref="T:System.IFormatProvider"/> interface. Its <see cref="M:System.IFormatProvider.GetFormat(System.Type)"/>
method returns a <see cref="T:System.Globalization.NumberFormatInfo"/> object that provides culture-specific information about the format of the string that is
returned by this method. The object that implements <see cref="T:System.IFormatProvider"/> can be any of the following:
<list type="bullet">
<item><description>A <see cref="T:System.Globalization.CultureInfo"/> object that represents the culture whose formatting rules are to be used.</description></item>
<item><description>A <see cref="T:System.Globalization.NumberFormatInfo"/> object that contains specific numeric formatting information for this value.</description></item>
<item><description>A custom object that implements <see cref="T:System.IFormatProvider"/>.</description></item>
</list>
<para/>
If provider is <c>null</c> or a <see cref="T:System.Globalization.NumberFormatInfo"/> object cannot be obtained from provider, the return value is formatted
using the <see cref="T:System.Globalization.NumberFormatInfo"/> object for the thread current culture. For information about the thread current culture, see
<see cref="P:System.Threading.Thread.CurrentCulture"/>.
<para/>
.NET provides extensive formatting support, which is described in greater detail in the following formatting topics:
<list type="bullet">
<item><description>For more information about numeric format specifiers, see
<a href="https://docs.microsoft.com/en-us/dotnet/standard/base-types/standard-numeric-format-strings">Standard Numeric Format Strings</a>
and <a href="https://docs.microsoft.com/en-us/dotnet/standard/base-types/custom-numeric-format-strings">Custom Numeric Format Strings</a>.
</description></item>
<item><description>For more information about formatting, see
<a href="https://docs.microsoft.com/en-us/dotnet/standard/base-types/formatting-types">Formatting Types</a>.</description></item>
</list>
</remarks>
<seealso cref="M:J2N.Numerics.Byte.Parse(System.String,System.IFormatProvider)"/>
</member>
<member name="M:J2N.Numerics.Byte.ToString(System.String,System.IFormatProvider)">
<summary>
Converts the value of the current <see cref="T:J2N.Numerics.Byte"/> object to its equivalent string representation using the specified format
and culture-specific formatting information.
</summary>
<param name="format">A standard or custom numeric format string.</param>
<param name="provider">An object that supplies culture-specific formatting information.</param>
<returns>The string representation of the current <see cref="T:J2N.Numerics.Byte"/> object, formatted as specified by the <paramref name="format"/>
and <paramref name="provider"/> parameters.</returns>
<exception cref="T:System.FormatException"><paramref name="format"/> includes an unsupported specifier. Supported format specifiers are listed
in the Remarks section.</exception>
<remarks>
The <see cref="M:J2N.Numerics.Byte.ToString(System.String,System.IFormatProvider)"/> method formats the current instance in
a specified format of a specified culture. If you want to specify a different format or culture, use the
other overloads of the <see cref="M:J2N.Numerics.Byte.ToString(System.String,System.IFormatProvider)"/> method, as follows:
<list type="table">
<listheader>
<term>To use format</term>
<term>For culture</term>
<term>Use the overload</term>
</listheader>
<item>
<term>Default ("J") format</term>
<term>Default (current) culture</term>
<term><see cref="M:J2N.Numerics.Byte.ToString(System.Byte)"/> or <see cref="M:J2N.Numerics.Byte.ToString"/></term>
</item>
<item>
<term>Default ("J") format</term>
<term>A specific culture</term>
<term><see cref="M:J2N.Numerics.Byte.ToString(System.Byte,System.IFormatProvider)"/> or <see cref="M:J2N.Numerics.Byte.ToString(System.IFormatProvider)"/></term>
</item>
<item>
<term>A specific format or precision</term>
<term>Default (current) culture</term>
<term><see cref="M:J2N.Numerics.Byte.ToString(System.Byte,System.String)"/> or <see cref="M:J2N.Numerics.Byte.ToString(System.String)"/></term>
</item>
</list>
<para/>
The <see cref="M:J2N.Numerics.Byte.ToString(System.String,System.IFormatProvider)"/> method formats a <see cref="T:J2N.Numerics.Byte"/> value in a specified format
of a specified culture. To format a number by using the default ("J") format of the current culture, call the
<see cref="M:J2N.Numerics.Byte.ToString"/> method. To format a number by using a specified format of the current culture, call the
<see cref="M:J2N.Numerics.Byte.ToString(System.String)"/> method.
<para/>
The <paramref name="format"/> parameter can be either a standard or a custom numeric format string. All standard
numeric format strings other than "R" (or "r") are supported, as are all custom numeric format characters. If
<paramref name="format"/> is <c>null</c> or an empty string (""), the return value of this method is formatted
with the Java numeric format specifier ("J").
<para/>
The <paramref name="provider"/> parameter is an object that implements the <see cref="T:System.IFormatProvider"/> interface. Its <see cref="M:System.IFormatProvider.GetFormat(System.Type)"/>
method returns a <see cref="T:System.Globalization.NumberFormatInfo"/> object that provides culture-specific information about the format of the string that is
returned by this method. The object that implements <see cref="T:System.IFormatProvider"/> can be any of the following:
<list type="bullet">
<item><description>A <see cref="T:System.Globalization.CultureInfo"/> object that represents the culture whose formatting rules are to be used.</description></item>
<item><description>A <see cref="T:System.Globalization.NumberFormatInfo"/> object that contains specific numeric formatting information for this value.</description></item>
<item><description>A custom object that implements <see cref="T:System.IFormatProvider"/>.</description></item>
</list>
<para/>
If provider is <c>null</c> or a <see cref="T:System.Globalization.NumberFormatInfo"/> object cannot be obtained from provider, the return value is formatted
using the <see cref="T:System.Globalization.NumberFormatInfo"/> object for the thread current culture. For information about the thread current culture, see
<see cref="P:System.Threading.Thread.CurrentCulture"/>.
<para/>
.NET provides extensive formatting support, which is described in greater detail in the following formatting topics:
<list type="bullet">
<item><description>For more information about numeric format specifiers, see
<a href="https://docs.microsoft.com/en-us/dotnet/standard/base-types/standard-numeric-format-strings">Standard Numeric Format Strings</a>
and <a href="https://docs.microsoft.com/en-us/dotnet/standard/base-types/custom-numeric-format-strings">Custom Numeric Format Strings</a>.
</description></item>
<item><description>For more information about formatting, see
<a href="https://docs.microsoft.com/en-us/dotnet/standard/base-types/formatting-types">Formatting Types</a>.</description></item>
</list>
</remarks>
<seealso cref="M:J2N.Numerics.Byte.Parse(System.String,System.IFormatProvider)"/>
</member>
<member name="M:J2N.Numerics.Byte.ToString(System.Byte)">
<summary>
Converts the specified <paramref name="value"/> to its equivalent string representation.
</summary>
<param name="value">The <see cref="T:System.Byte"/> to convert.</param>
<returns>The string representation of the <paramref name="value"/> parameter, which consists of a sequence of digits
that range from 0 to 9 with no leading zeroes.</returns>
<remarks>
The <see cref="M:J2N.Numerics.Byte.ToString"/> method formats the current instance in the default ("J", or Java)
format of the current culture. If you want to specify a different format, precision, or culture, use the
other overloads of the <see cref="M:J2N.Numerics.Byte.ToString(System.Byte,System.String,System.IFormatProvider)"/> method, as follows:
<list type="table">
<listheader>
<term>To use format</term>
<term>For culture</term>
<term>Use the overload</term>
</listheader>
<item>
<term>Default ("J") format</term>
<term>A specific culture</term>
<term><see cref="M:J2N.Numerics.Byte.ToString(System.Byte,System.IFormatProvider)"/> or <see cref="M:J2N.Numerics.Byte.ToString(System.IFormatProvider)"/></term>
</item>
<item>
<term>A specific format or precision</term>
<term>Default (current) culture</term>
<term><see cref="M:J2N.Numerics.Byte.ToString(System.Byte,System.String)"/> or <see cref="M:J2N.Numerics.Byte.ToString(System.String)"/></term>
</item>
<item>
<term>A specific format or precision</term>
<term>A specific culture</term>
<term><see cref="M:J2N.Numerics.Byte.ToString(System.Byte,System.String,System.IFormatProvider)"/> or <see cref="M:J2N.Numerics.Byte.ToString(System.String,System.IFormatProvider)"/></term>
</item>
</list>
<para/>
.NET provides extensive formatting support, which is described in greater detail in the following formatting topics:
<list type="bullet">
<item><description>For more information about numeric format specifiers, see
<a href="https://docs.microsoft.com/en-us/dotnet/standard/base-types/standard-numeric-format-strings">Standard Numeric Format Strings</a>
and <a href="https://docs.microsoft.com/en-us/dotnet/standard/base-types/custom-numeric-format-strings">Custom Numeric Format Strings</a>.
</description></item>
<item><description>For more information about formatting, see
<a href="https://docs.microsoft.com/en-us/dotnet/standard/base-types/formatting-types">Formatting Types</a>.</description></item>
</list>
</remarks>
<seealso cref="M:J2N.Numerics.Byte.Parse(System.String,System.IFormatProvider)"/>
</member>
<member name="M:J2N.Numerics.Byte.ToString(System.Byte,System.String)">
<summary>
Converts the specified <paramref name="value"/> to its equivalent string representation
using the specified format.
</summary>
<param name="value">The <see cref="T:System.Byte"/> to convert.</param>
<param name="format">A numeric format string.</param>
<returns>The string representation of the <paramref name="value"/> parameter, formatted as specified by
the <paramref name="format"/> parameter.</returns>
<exception cref="T:System.FormatException">
<paramref name="format"/> includes an unsupported specifier. Supported format specifiers are listed in the Remarks section.
</exception>
<remarks>
The <see cref="M:J2N.Numerics.Byte.ToString(System.Byte,System.String)"/> method formats the current instance in
a specified format by using the conventions of the current culture. If you want to specify a different format or culture,
use the other overloads of the <see cref="M:J2N.Numerics.Byte.ToString(System.Byte,System.String,System.IFormatProvider)"/> method, as follows:
<list type="table">
<listheader>
<term>To use format</term>
<term>For culture</term>
<term>Use the overload</term>
</listheader>
<item>
<term>Default ("J") format</term>
<term>Default (current) culture</term>
<term><see cref="M:J2N.Numerics.Byte.ToString(System.Byte)"/> or <see cref="M:J2N.Numerics.Byte.ToString"/></term>
</item>
<item>
<term>Default ("J") format</term>
<term>A specific culture</term>
<term><see cref="M:J2N.Numerics.Byte.ToString(System.Byte,System.IFormatProvider)"/> or <see cref="M:J2N.Numerics.Byte.ToString(System.IFormatProvider)"/></term>
</item>
<item>
<term>A specific format or precision</term>
<term>A specific culture</term>
<term><see cref="M:J2N.Numerics.Byte.ToString(System.Byte,System.String,System.IFormatProvider)"/> or <see cref="M:J2N.Numerics.Byte.ToString(System.String,System.IFormatProvider)"/></term>
</item>
</list>
<para/>
The format parameter can be either a standard or a custom numeric format string. All standard numeric format strings other
than "R" (or "r") are supported, as are all custom numeric format characters. If format is <c>null</c> or an empty string (""),
the return value is formatted with the Java numeric format specifier ("J").
<para/>
The return value of this function is formatted using the <see cref="T:System.Globalization.NumberFormatInfo"/> object for the thread current culture.
For information about the thread current culture, see <see cref="P:System.Threading.Thread.CurrentCulture"/>. To provide formatting information
for cultures other than the current culture, call the <see cref="M:J2N.Numerics.Byte.ToString(System.Byte,System.String,System.IFormatProvider)"/> method.
<para/>
.NET provides extensive formatting support, which is described in greater detail in the following formatting topics:
<list type="bullet">
<item><description>For more information about numeric format specifiers, see
<a href="https://docs.microsoft.com/en-us/dotnet/standard/base-types/standard-numeric-format-strings">Standard Numeric Format Strings</a>
and <a href="https://docs.microsoft.com/en-us/dotnet/standard/base-types/custom-numeric-format-strings">Custom Numeric Format Strings</a>.
</description></item>
<item><description>For more information about formatting, see
<a href="https://docs.microsoft.com/en-us/dotnet/standard/base-types/formatting-types">Formatting Types</a>.</description></item>
</list>
</remarks>
<seealso cref="M:J2N.Numerics.Byte.Parse(System.String,System.IFormatProvider)"/>
</member>
<member name="M:J2N.Numerics.Byte.ToString(System.Byte,System.IFormatProvider)">
<summary>
Converts the specified <paramref name="value"/> to its equivalent string representation using the
specified culture-specific formatting information.
</summary>
<param name="value">The <see cref="T:System.Byte"/> to convert.</param>
<param name="provider">An object that supplies culture-specific formatting information.</param>
<returns>The string representation of the specified <paramref name="value"/> in the format specified
by the <paramref name="provider"/> parameter.</returns>
<remarks>
The <see cref="M:J2N.Numerics.Byte.ToString(System.Byte,System.IFormatProvider)"/> method formats the current instance in
the default ("J") format of a specified culture. If you want to specify a different format or culture, use the
other overloads of the <see cref="M:J2N.Numerics.Byte.ToString(System.Byte,System.String,System.IFormatProvider)"/> method, as follows:
<list type="table">
<listheader>
<term>To use format</term>
<term>For culture</term>
<term>Use the overload</term>
</listheader>
<item>
<term>Default ("J") format</term>
<term>Default (current) culture</term>
<term><see cref="M:J2N.Numerics.Byte.ToString(System.Byte)"/> or <see cref="M:J2N.Numerics.Byte.ToString"/></term>
</item>
<item>
<term>A specific format or precision</term>
<term>Default (current) culture</term>
<term><see cref="M:J2N.Numerics.Byte.ToString(System.Byte,System.String)"/> or <see cref="M:J2N.Numerics.Byte.ToString(System.String)"/></term>
</item>
<item>
<term>A specific format or precision</term>
<term>A specific culture</term>
<term><see cref="M:J2N.Numerics.Byte.ToString(System.Byte,System.String,System.IFormatProvider)"/> or <see cref="M:J2N.Numerics.Byte.ToString(System.String,System.IFormatProvider)"/></term>
</item>
</list>
<para/>
The return value is formatted with the Java numeric format specifier ("J").
<para/>
The <paramref name="provider"/> parameter is an object that implements the <see cref="T:System.IFormatProvider"/> interface. Its <see cref="M:System.IFormatProvider.GetFormat(System.Type)"/>
method returns a <see cref="T:System.Globalization.NumberFormatInfo"/> object that provides culture-specific information about the format of the string that is
returned by this method. The object that implements <see cref="T:System.IFormatProvider"/> can be any of the following:
<list type="bullet">
<item><description>A <see cref="T:System.Globalization.CultureInfo"/> object that represents the culture whose formatting rules are to be used.</description></item>
<item><description>A <see cref="T:System.Globalization.NumberFormatInfo"/> object that contains specific numeric formatting information for this value.</description></item>
<item><description>A custom object that implements <see cref="T:System.IFormatProvider"/>.</description></item>
</list>
<para/>
If provider is <c>null</c> or a <see cref="T:System.Globalization.NumberFormatInfo"/> object cannot be obtained from provider, the return value is formatted
using the <see cref="T:System.Globalization.NumberFormatInfo"/> object for the thread current culture. For information about the thread current culture, see
<see cref="P:System.Threading.Thread.CurrentCulture"/>.
<para/>
.NET provides extensive formatting support, which is described in greater detail in the following formatting topics:
<list type="bullet">
<item><description>For more information about numeric format specifiers, see
<a href="https://docs.microsoft.com/en-us/dotnet/standard/base-types/standard-numeric-format-strings">Standard Numeric Format Strings</a>
and <a href="https://docs.microsoft.com/en-us/dotnet/standard/base-types/custom-numeric-format-strings">Custom Numeric Format Strings</a>.
</description></item>
<item><description>For more information about formatting, see
<a href="https://docs.microsoft.com/en-us/dotnet/standard/base-types/formatting-types">Formatting Types</a>.</description></item>
</list>
</remarks>
<seealso cref="M:J2N.Numerics.Byte.Parse(System.String,System.IFormatProvider)"/>
</member>
<member name="M:J2N.Numerics.Byte.ToString(System.Byte,System.String,System.IFormatProvider)">
<summary>
Converts the specified <paramref name="value"/> to its equivalent string representation using the specified format
and culture-specific formatting information.
</summary>
<param name="value">The <see cref="T:System.Byte"/> to convert.</param>
<param name="format">A standard or custom numeric format string.</param>
<param name="provider">An object that supplies culture-specific formatting information.</param>
<returns>The string representation of the specified <paramref name="value"/> parameter, formatted as specified by the <paramref name="format"/>
and <paramref name="provider"/> parameters.</returns>
<exception cref="T:System.FormatException"><paramref name="format"/> includes an unsupported specifier. Supported format specifiers are listed
in the Remarks section.</exception>
<remarks>
The <see cref="M:J2N.Numerics.Byte.ToString(System.Byte,System.String,System.IFormatProvider)"/> method formats the current instance in
a specified format of a specified culture. If you want to specify a different format or culture, use the
other overloads of the <see cref="M:J2N.Numerics.Byte.ToString(System.Byte,System.String,System.IFormatProvider)"/> method, as follows:
<list type="table">
<listheader>
<term>To use format</term>
<term>For culture</term>
<term>Use the overload</term>
</listheader>
<item>
<term>Default ("J") format</term>
<term>Default (current) culture</term>
<term><see cref="M:J2N.Numerics.Byte.ToString(System.Byte)"/> or <see cref="M:J2N.Numerics.Byte.ToString"/></term>
</item>
<item>
<term>Default ("J") format</term>
<term>A specific culture</term>
<term><see cref="M:J2N.Numerics.Byte.ToString(System.Byte,System.IFormatProvider)"/> or <see cref="M:J2N.Numerics.Byte.ToString(System.IFormatProvider)"/></term>
</item>
<item>
<term>A specific format or precision</term>
<term>Default (current) culture</term>
<term><see cref="M:J2N.Numerics.Byte.ToString(System.Byte,System.String)"/> or <see cref="M:J2N.Numerics.Byte.ToString(System.String)"/></term>
</item>
</list>
<para/>
The <see cref="M:J2N.Numerics.Byte.ToString(System.Byte,System.String,System.IFormatProvider)"/> method formats a <see cref="T:System.Byte"/> value in a specified format
of a specified culture. To format a number by using the default ("J") format of the current culture, call the
<see cref="M:J2N.Numerics.Byte.ToString(System.Byte)"/> method. To format a number by using a specified format of the current culture, call the
<see cref="M:J2N.Numerics.Byte.ToString(System.Byte,System.String)"/> method.
<para/>
The <paramref name="format"/> parameter can be either a standard or a custom numeric format string. All standard
numeric format strings other than "R" (or "r") are supported, as are all custom numeric format characters. If
<paramref name="format"/> is <c>null</c> or an empty string (""), the return value of this method is formatted
with the Java numeric format specifier ("J").
<para/>
The <paramref name="provider"/> parameter is an object that implements the <see cref="T:System.IFormatProvider"/> interface. Its <see cref="M:System.IFormatProvider.GetFormat(System.Type)"/>
method returns a <see cref="T:System.Globalization.NumberFormatInfo"/> object that provides culture-specific information about the format of the string that is
returned by this method. The object that implements <see cref="T:System.IFormatProvider"/> can be any of the following:
<list type="bullet">
<item><description>A <see cref="T:System.Globalization.CultureInfo"/> object that represents the culture whose formatting rules are to be used.</description></item>
<item><description>A <see cref="T:System.Globalization.NumberFormatInfo"/> object that contains specific numeric formatting information for this value.</description></item>
<item><description>A custom object that implements <see cref="T:System.IFormatProvider"/>.</description></item>
</list>
<para/>
If provider is <c>null</c> or a <see cref="T:System.Globalization.NumberFormatInfo"/> object cannot be obtained from provider, the return value is formatted
using the <see cref="T:System.Globalization.NumberFormatInfo"/> object for the thread current culture. For information about the thread current culture, see
<see cref="P:System.Threading.Thread.CurrentCulture"/>.
<para/>
.NET provides extensive formatting support, which is described in greater detail in the following formatting topics:
<list type="bullet">
<item><description>For more information about numeric format specifiers, see
<a href="https://docs.microsoft.com/en-us/dotnet/standard/base-types/standard-numeric-format-strings">Standard Numeric Format Strings</a>
and <a href="https://docs.microsoft.com/en-us/dotnet/standard/base-types/custom-numeric-format-strings">Custom Numeric Format Strings</a>.
</description></item>
<item><description>For more information about formatting, see
<a href="https://docs.microsoft.com/en-us/dotnet/standard/base-types/formatting-types">Formatting Types</a>.</description></item>
</list>
</remarks>
<seealso cref="M:J2N.Numerics.Byte.Parse(System.String,System.IFormatProvider)"/>
</member>
<member name="M:J2N.Numerics.Byte.TryFormat(System.Span{System.Char},System.Int32@,System.ReadOnlySpan{System.Char},System.IFormatProvider)">
<summary>
Tries to format the value of the current 8-bit unsigned integer number instance into the provided span of characters.
</summary>
<param name="destination">The span in which to write this instance's value formatted as a span of characters.</param>
<param name="charsWritten">When this method returns, contains the number of characters that were written in
<paramref name="destination"/>.</param>
<param name="format">A span containing the characters that represent a standard or custom format string that
defines the acceptable format for <paramref name="destination"/>.</param>
<param name="provider">An optional object that supplies culture-specific formatting information for
<paramref name="destination"/>.</param>
<returns><c>true</c> if the formatting was successful; otherwise, <c>false</c>.</returns>
</member>
<member name="M:J2N.Numerics.Byte.TryFormat(System.Byte,System.Span{System.Char},System.Int32@,System.ReadOnlySpan{System.Char},System.IFormatProvider)">
<summary>
Tries to format the value of the <paramref name="value"/> into the provided span of characters.
</summary>
<param name="value">The 8-bit unsigned integer number to format.</param>
<param name="destination">The span in which to write this instance's value formatted as a span of characters.</param>
<param name="charsWritten">When this method returns, contains the number of characters that were written in
<paramref name="destination"/>.</param>
<param name="format">A span containing the characters that represent a standard or custom format string that
defines the acceptable format for <paramref name="destination"/>.</param>
<param name="provider">An optional object that supplies culture-specific formatting information for
<paramref name="destination"/>.</param>
<returns><c>true</c> if the formatting was successful; otherwise, <c>false</c>.</returns>
</member>
<member name="M:J2N.Numerics.Byte.GetInstance(System.String,System.IFormatProvider)">
<summary>
Converts the string representation of a number in a specified style and culture-specific format to its <see cref="T:J2N.Numerics.Byte"/> equivalent.
</summary>
<param name="s">A string containing the characters representing the value to convert. The string is interpreted using the <see cref="F:J2N.Globalization.NumberStyle.Integer"/> style.
For compatibility with Java's byte (which is an 8-bit signed byte) the
value may be from <c>"-127"</c> to <c>"255"</c>. Negative numbers in this range will overflow and become high-order positive numbers.</param>
<param name="provider">An object that supplies culture-specific information about the format of <paramref name="s"/>. If provider is <c>null</c>,
the thread current culture is used.</param>
<returns>An immutable <see cref="T:J2N.Numerics.Byte"/> instance that is equivalent to the number contained in <paramref name="s"/>.</returns>
<exception cref="T:System.ArgumentNullException"><paramref name="s"/> is <c>null</c>.</exception>
<exception cref="T:System.FormatException"><paramref name="s"/> is not of the correct format.</exception>
<exception cref="T:System.OverflowException">
<paramref name="s"/> represents a number less than <see cref="F:System.SByte.MinValue"/> or <see cref="F:System.Byte.MaxValue"/>.
</exception>
<remarks>
The s parameter contains a number of the form:
<para/>
[ws][sign]digits[ws]
<para/>
Elements framed in square brackets ([ and ]) are optional. The following table describes each element.
<para/>
<list type="table">
<listheader>
<term>Element</term>
<term>Description</term>
</listheader>
<item>
<term><i>ws</i></term>
<term>A series of white-space characters.</term>
</item>
<item>
<term><i>sign</i></term>
<term>A negative sign symbol (-) or a positive sign symbol (+).</term>
</item>
<item>
<term><i>digits</i></term>
<term>A series of digits ranging from 0 to 9.</term>
</item>
</list>
<para/>
NOTE: Any terminating NUL (U+0000) characters in <paramref name="s"/> are ignored by the parsing operation.
<para/>
The <paramref name="s"/> parameter is interpreted using the <see cref="F:J2N.Globalization.NumberStyle.Integer"/> style. In addition to the byte value's
decimal digits, only leading and trailing spaces together with a leading sign are allowed. To explicitly define the style elements
together with the culture-specific formatting information that can be present in <paramref name="s"/>, use the
<see cref="M:J2N.Numerics.Byte.GetInstance(System.String,J2N.Globalization.NumberStyle,System.IFormatProvider)"/> method.
<para/>
The <paramref name="provider"/> parameter is an <see cref="T:System.IFormatProvider"/> implementation, such as a <see cref="T:System.Globalization.CultureInfo"/> object,
a <see cref="T:System.Globalization.NumberFormatInfo"/> object or a <see cref="T:J2N.Text.StringFormatter"/> object, whose <see cref="M:System.IFormatProvider.GetFormat(System.Type)"/>
method returns a <see cref="T:System.Globalization.NumberFormatInfo"/> object. The <see cref="T:System.Globalization.NumberFormatInfo"/> object provides culture-specific information about
the format of <paramref name="s"/>. When the <see cref="M:J2N.Numerics.Byte.GetInstance(System.String,System.IFormatProvider)"/> method is invoked, it calls the provider parameter's
<see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> method and passes it a <see cref="T:System.Type"/> object that represents the <see cref="T:System.Globalization.NumberFormatInfo"/> type.
The <see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> method then returns the <see cref="T:System.Globalization.NumberFormatInfo"/> object that provides information about the
format of the <paramref name="s"/> parameter. There are three ways to use the <paramref name="provider"/> parameter to supply custom formatting
information to the parse operation:
<list type="bullet">
<item><description>You can pass a <see cref="T:System.Globalization.CultureInfo"/> object that represents the culture that supplies formatting information. Its
<see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> method returns the <see cref="T:System.Globalization.NumberFormatInfo"/> object that provides numeric formatting
information for that culture.</description></item>
<item><description>You can pass the actual <see cref="T:System.Globalization.NumberFormatInfo"/> object that provides numeric formatting information. (Its
implementation of <see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> just returns itself.)</description></item>
<item><description>You can pass a custom object that implements <see cref="T:System.IFormatProvider"/>. Its <see cref="M:System.IFormatProvider.GetFormat(System.Type)"/>
method instantiates and returns the <see cref="T:System.Globalization.NumberFormatInfo"/> object that provides formatting information.</description></item>
</list>
If <paramref name="provider"/> is <c>null</c> or a <see cref="T:System.Globalization.NumberFormatInfo"/> object cannot be obtained, the <see cref="T:System.Globalization.NumberFormatInfo"/>
object for the current culture is used.
</remarks>
<seealso cref="M:J2N.Numerics.Byte.TryParse(System.String,J2N.Globalization.NumberStyle,System.IFormatProvider,System.Byte@)"/>
<seealso cref="M:J2N.Numerics.Byte.Parse(System.String,System.IFormatProvider)"/>
</member>
<member name="M:J2N.Numerics.Byte.GetInstance(System.String,J2N.Globalization.NumberStyle,System.IFormatProvider)">
<summary>
Converts the string representation of a number in a specified style and culture-specific format to its <see cref="T:J2N.Numerics.Byte"/> equivalent.
</summary>
<param name="s">A string containing the characters representing the value to convert. For compatibility with Java's byte (which is an 8-bit signed byte) the
value may be from <c>"-127"</c> to <c>"255"</c>. Negative numbers in this range will overflow and become high-order positive numbers.</param>
<param name="style">A bitwise combination of enumeration values that indicates the style elements that can be present in <paramref name="s"/>.
A typical value to specify is <see cref="F:J2N.Globalization.NumberStyle.Integer"/>.</param>
<param name="provider">An object that supplies culture-specific information about the format of <paramref name="s"/>. If provider is <c>null</c>,
the thread current culture is used.</param>
<returns>An immutable <see cref="T:J2N.Numerics.Byte"/> instance that is equivalent to the number contained in <paramref name="s"/>.</returns>
<exception cref="T:System.ArgumentNullException"><paramref name="s"/> is <c>null</c>.</exception>
<exception cref="T:System.FormatException"><paramref name="s"/> is not of the correct format.</exception>
<exception cref="T:System.OverflowException">
<paramref name="s"/> represents a number less than <see cref="F:System.SByte.MinValue"/> or <see cref="F:System.Byte.MaxValue"/>.
<para/>
-or-
<para/>
<paramref name="s"/> includes non-zero, fractional digits.
</exception>
<exception cref="T:System.ArgumentException">
<paramref name="style"/> is not a <see cref="T:J2N.Globalization.NumberStyle"/> value.
<para/>
-or-
<para/>
<paramref name="style"/> is not a combination of <see cref="F:J2N.Globalization.NumberStyle.AllowHexSpecifier"/> and <see cref="F:J2N.Globalization.NumberStyle.HexNumber"/> values.
</exception>
<remarks>
The <paramref name="style"/> parameter defines the style elements (such as white space or the positive sign) that are allowed in the
<paramref name="s"/> parameter for the parse operation to succeed. It must be a combination of bit flags from the <see cref="T:J2N.Globalization.NumberStyle"/>
enumeration. Depending on the value of <paramref name="style"/>, the <paramref name="s"/> parameter may include the following elements:
<para/>
[ws][$][sign]digits[.fractional-digits][e[sign]exponential-digits][ws]
<para/>
Or, if the <paramref name="style"/> parameter includes <see cref="F:J2N.Globalization.NumberStyle.AllowHexSpecifier"/>:
<para/>
[ws]hexdigits[ws]
<para/>
Elements framed in square brackets ([ and ]) are optional. The following table describes each element.
<para/>
<list type="table">
<listheader>
<term>Element</term>
<term>Description</term>
</listheader>
<item>
<term><i>ws</i></term>
<term>A series of white-space characters. White space can appear at the beginning of <paramref name="s"/> if style includes the
<see cref="F:J2N.Globalization.NumberStyle.AllowLeadingWhite"/> flag, and it can appear at the end of <paramref name="s"/> if style includes the
<see cref="F:J2N.Globalization.NumberStyle.AllowTrailingWhite"/> flag.</term>
</item>
<item>
<term><i>$</i></term>
<term>A culture-specific currency symbol. Its position in the string is defined by the <see cref="P:System.Globalization.NumberFormatInfo.CurrencyNegativePattern"/>
and <see cref="P:System.Globalization.NumberFormatInfo.CurrencyPositivePattern"/> properties of the <see cref="T:System.Globalization.NumberFormatInfo"/> object returned by the
<see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> method of the <paramref name="provider"/> parameter. The current culture's currency symbol can
appear in <paramref name="s"/> if style includes the <see cref="F:J2N.Globalization.NumberStyle.AllowCurrencySymbol"/> flag.</term>
</item>
<item>
<term><i>sign</i></term>
<term>A negative sign symbol (-) or a positive sign symbol (+). The sign can appear at the beginning of <paramref name="s"/> if
<paramref name="style"/> includes the <see cref="F:J2N.Globalization.NumberStyle.AllowLeadingSign"/> flag, and it can appear at the end of <paramref name="s"/>
if <paramref name="style"/> includes the <see cref="F:J2N.Globalization.NumberStyle.AllowTrailingSign"/> flag. Parentheses can be used in <paramref name="s"/>
to indicate a negative value if <paramref name="style"/> includes the <see cref="F:J2N.Globalization.NumberStyle.AllowParentheses"/> flag.</term>
</item>
<item>
<term><i>digits</i></term>
<term>A series of digits ranging from 0 to 9.</term>
</item>
<item>
<term><i>.</i></term>
<term>A culture-specific decimal point symbol. The decimal point symbol of the culture specified by <paramref name="provider"/>
can appear in <paramref name="s"/> if <paramref name="style"/> includes the <see cref="F:J2N.Globalization.NumberStyle.AllowDecimalPoint"/> flag.</term>
</item>
<item>
<term><i>fractional-digits</i>
</term>
<term>A series of digits ranging from 0 to 9 that specify the fractional part of the number. Fractional digits can appear in
<paramref name="s"/> if <paramref name="style"/> includes the <see cref="F:J2N.Globalization.NumberStyle.AllowDecimalPoint"/> flag.</term>
</item>
<item>
<term><i>e</i></term>
<term>The 'e' or 'E' character, which indicates that the value is represented in exponential notation. The <paramref name="s"/>
parameter can represent a number in exponential notation if <paramref name="style"/> includes the <see cref="F:J2N.Globalization.NumberStyle.AllowExponent"/> flag.</term>
</item>
<item>
<term><i>exponential-digits</i></term>
<term>A sequence of decimal digits from 0 through 9 that specify an exponent.</term>
</item>
<item>
<term><i>hexdigits</i></term>
<term>A sequence of hexadecimal digits from 0 through f, or 0 through F. Hexadecimal digits can appear in <paramref name="s"/>
if <paramref name="style"/> includes the <see cref="F:J2N.Globalization.NumberStyle.AllowHexSpecifier"/> flag.</term>
</item>
</list>
<para/>
NOTE: Any terminating NUL (U+0000) characters in <paramref name="s"/> are ignored by the parsing operation, regardless of
the value of the <paramref name="style"/> argument.
<para/>
A string with decimal digits only (which corresponds to the <see cref="F:J2N.Globalization.NumberStyle.None"/> flag) always parses successfully.
Most of the remaining <see cref="T:J2N.Globalization.NumberStyle"/> members control elements that may be but are not required to be present in
this input string. The following table indicates how individual <see cref="T:J2N.Globalization.NumberStyle"/> members affect the elements that may
be present in <paramref name="s"/>.
<list type="table">
<listheader>
<term>Non-composite NumberStyle values</term>
<term>Elements permitted in <paramref name="s"/> in addition to digits</term>
</listheader>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.None"/></term>
<term>Decimal digits only.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowDecimalPoint"/></term>
<term>The decimal point (.) and <i>fractional-digits</i> elements. However, <i>fractional-digits</i> must consist
of only one or more 0 digits or the method returns <c>false</c>.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowExponent"/></term>
<term>The <paramref name="s"/> parameter can also use exponential notation. If <paramref name="s"/> represents a
number in exponential notation, it must represent an integer within the range of the <see cref="T:System.Byte"/> data type
without a non-zero, fractional component.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowLeadingWhite"/></term>
<term>The <i>ws</i> element at the beginning of <paramref name="s"/>.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowTrailingWhite"/></term>
<term>The <i>ws</i> element at the end of <paramref name="s"/>.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowLeadingSign"/></term>
<term>A sign can appear before <i>digits</i>.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowTrailingSign"/></term>
<term>A sign can appear after <i>digits</i>.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowParentheses"/></term>
<term>The <i>sign</i> element in the form of parentheses enclosing the numeric value.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowThousands"/></term>
<term>The thousands separator (,) element.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowCurrencySymbol"/></term>
<term>The <i>$</i> element.</term>
</item>
</list>
<para/>
The <see cref="T:J2N.Globalization.NumberStyle"/> enum can be converted to the .NET <see cref="T:System.Globalization.NumberStyles"/> enum by using the
<see cref="M:J2N.Globalization.NumberStyleExtensions.ToNumberStyles(J2N.Globalization.NumberStyle)"/> extension method.
Similarly, <see cref="T:System.Globalization.NumberStyles"/> enum can be converted to the J2N <see cref="T:J2N.Globalization.NumberStyle"/> enum by using
the <see cref="M:J2N.Globalization.NumberStyleExtensions.ToNumberStyle(System.Globalization.NumberStyles)"/> extension method.
<para/>
If the <see cref="F:J2N.Globalization.NumberStyle.AllowHexSpecifier"/> flag is used, <paramref name="s"/> must be a hexadecimal value without a prefix.
For example, "F3" parses successfully, but "0xF3" does not. The only other flags that can be present in <paramref name="style"/> are
<see cref="F:J2N.Globalization.NumberStyle.AllowLeadingWhite"/> and <see cref="F:J2N.Globalization.NumberStyle.AllowTrailingWhite"/>. (The <see cref="T:J2N.Globalization.NumberStyle"/> enumeration
has a composite number style, <see cref="F:J2N.Globalization.NumberStyle.HexNumber"/>, that includes both white space flags.)
<para/>
The <paramref name="provider"/> parameter is an <see cref="T:System.IFormatProvider"/> implementation, such as a <see cref="T:System.Globalization.CultureInfo"/> object,
a <see cref="T:System.Globalization.NumberFormatInfo"/> object or a <see cref="T:J2N.Text.StringFormatter"/> object, whose <see cref="M:System.IFormatProvider.GetFormat(System.Type)"/>
method returns a <see cref="T:System.Globalization.NumberFormatInfo"/> object. The <see cref="T:System.Globalization.NumberFormatInfo"/> object provides culture-specific information about
the format of <paramref name="s"/>. When the <see cref="M:J2N.Numerics.Byte.GetInstance(System.String,System.IFormatProvider)"/> method is invoked, it calls the provider parameter's
<see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> method and passes it a <see cref="T:System.Type"/> object that represents the <see cref="T:System.Globalization.NumberFormatInfo"/> type.
The <see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> method then returns the <see cref="T:System.Globalization.NumberFormatInfo"/> object that provides information about the
format of the <paramref name="s"/> parameter. There are three ways to use the <paramref name="provider"/> parameter to supply custom formatting
information to the parse operation:
<list type="bullet">
<item><description>You can pass a <see cref="T:System.Globalization.CultureInfo"/> object that represents the culture that supplies formatting information. Its
<see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> method returns the <see cref="T:System.Globalization.NumberFormatInfo"/> object that provides numeric formatting
information for that culture.</description></item>
<item><description>You can pass the actual <see cref="T:System.Globalization.NumberFormatInfo"/> object that provides numeric formatting information. (Its
implementation of <see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> just returns itself.)</description></item>
<item><description>You can pass a custom object that implements <see cref="T:System.IFormatProvider"/>. Its <see cref="M:System.IFormatProvider.GetFormat(System.Type)"/>
method instantiates and returns the <see cref="T:System.Globalization.NumberFormatInfo"/> object that provides formatting information.</description></item>
</list>
If <paramref name="provider"/> is <c>null</c> or a <see cref="T:System.Globalization.NumberFormatInfo"/> object cannot be obtained, the <see cref="T:System.Globalization.NumberFormatInfo"/>
object for the current culture is used.
</remarks>
<seealso cref="M:J2N.Numerics.Byte.TryParse(System.String,J2N.Globalization.NumberStyle,System.IFormatProvider,System.Byte@)"/>
<seealso cref="M:J2N.Numerics.Byte.Parse(System.String,J2N.Globalization.NumberStyle,System.IFormatProvider)"/>
</member>
<member name="M:J2N.Numerics.Byte.GetInstance(System.String,System.Int32)">
<summary>
Parses the <see cref="T:System.String"/> argument as a <see cref="T:J2N.Numerics.Byte"/> in the specified <paramref name="radix"/>.
<para/>
Usage Note: The conversion operation is similar to the <see cref="M:System.Convert.ToByte(System.String,System.Int32)"/> method. It differs in that
it allows the use of the ASCII character \u002d ('-') or \u002B ('+') in any <paramref name="radix"/>.
<para/>
Supports any BMP (Basic Multilingual Plane) or SMP (Supplementary Mulitlingual Plane) digit as defined by Unicode 10.0.
<para/>
For compatibility with Java, this method successfully parses values from <see cref="F:System.SByte.MinValue"/> to <see cref="F:System.Byte.MaxValue"/>,
but the value stored is type <see cref="T:System.Byte"/> and may need to be converted to <see cref="T:System.SByte"/> depending on how it is used.
<para/>
This is the same operation as Byte.valueOf(string) in the JDK when specifying a <paramref name="radix"/> of 10, or
Byte.valueOf(string, int) for any valid <paramref name="radix"/>.
</summary>
<param name="s">The <see cref="T:System.String"/> containing the <see cref="T:System.Byte"/> representation to be parsed.</param>
<param name="radix">The radix (or base) to use when parsing <paramref name="s"/>. The value must be in the range
<see cref="F:J2N.Character.MinRadix"/> - <see cref="F:J2N.Character.MaxRadix"/> inclusive.</param>
<returns>An immutable <see cref="T:J2N.Numerics.Byte"/> instance that is equivalent to the number in <paramref name="s"/>, or 0 (zero) if
<paramref name="s"/> is <c>null</c>.</returns>
<remarks>
If <paramref name="radix"/> is 16, you can prefix the number specified by the <paramref name="s"/> parameter with "0x" or "0X".
<para/>
To specify a negative value for base (radix) 10 numeric representations, use the ASCII character \u002d ('-').
<para/>
For any other <paramref name="radix"/>, negative values may either be specified with ASCII character \u002d ('-')
(as in Java) or by specifying the two's complement representation (as in .NET), but not both.
In the latter case, the highest-order binary bit of a long integer (bit 7) is interpreted as the sign bit.
As a result, it is possible to write code in which a non-base 10 number that is out of the range of the <see cref="T:System.Byte"/>
data type is converted to a <see cref="T:System.Byte"/> value without the method throwing an exception.
</remarks>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="radix"/> is less than <see cref="F:J2N.Character.MinRadix"/> or greater than <see cref="F:J2N.Character.MaxRadix"/>.
</exception>
<exception cref="T:System.FormatException">
<paramref name="s"/> contains a character that is not a valid digit in the base specified by <paramref name="radix"/>.
The exception message indicates that there are no digits to convert if the first character in <paramref name="s"/> is invalid;
otherwise, the message indicates that <paramref name="s"/> contains invalid trailing characters.
<para/>
-or-
<para/>
<paramref name="s"/> contains only a the ASCII character \u002d ('-') or \u002B ('+') sign and/or hexadecimal
prefix 0X or 0x with no digits.
</exception>
<exception cref="T:System.OverflowException">
<paramref name="s"/> represents a number that is less than <see cref="F:System.SByte.MinValue"/> or greater than <see cref="F:System.Byte.MaxValue"/>.
</exception>
<seealso cref="M:J2N.Numerics.Byte.TryParse(System.String,System.Int32,System.Byte@)"/>
<seealso cref="M:J2N.Numerics.Byte.Parse(System.String,System.Int32)"/>
</member>
<member name="M:J2N.Numerics.Byte.GetInstance(System.Byte)">
<summary>
Returns an immutable <see cref="T:J2N.Numerics.Byte"/> instance for the specified <paramref name="value"/>.
<para/>
Usage Note: This is the same operation as Byte.valueOf() in the JDK.
</summary>
<param name="value">The <see cref="T:System.Byte"/> value the returned instance represents.</param>
<returns>An immutable <see cref="T:J2N.Numerics.Byte"/> instance containing the <paramref name="value"/>,
which may be retrieved from a cache.</returns>
</member>
<member name="M:J2N.Numerics.Byte.op_Implicit(J2N.Numerics.Byte)~System.Byte">
<inheritdoc/>
</member>
<member name="M:J2N.Numerics.Byte.op_Implicit(System.Byte)~J2N.Numerics.Byte">
<inheritdoc/>
</member>
<member name="M:J2N.Numerics.Byte.ToByte">
<inheritdoc/>
</member>
<member name="M:J2N.Numerics.Byte.ToDouble">
<inheritdoc/>
</member>
<member name="M:J2N.Numerics.Byte.ToInt16">
<inheritdoc/>
</member>
<member name="M:J2N.Numerics.Byte.ToInt32">
<inheritdoc/>
</member>
<member name="M:J2N.Numerics.Byte.ToInt64">
<inheritdoc/>
</member>
<member name="M:J2N.Numerics.Byte.ToSByte">
<inheritdoc/>
</member>
<member name="M:J2N.Numerics.Byte.ToSingle">
<inheritdoc/>
</member>
<member name="M:J2N.Numerics.Byte.GetTypeCode">
<summary>
Returns the <see cref="T:System.TypeCode"/> for value type <see cref="T:System.Byte"/>.
</summary>
<returns>The enumerated constant, <see cref="F:System.TypeCode.Byte"/>.</returns>
</member>
<member name="M:J2N.Numerics.DotNetNumber.FloatingPointHexNumberBuffer.ParseExponent">
<summary>
Parses the exponent field.
</summary>
</member>
<member name="M:J2N.Numerics.DotNetNumber.FloatingPointHexNumberBuffer.TryParseMantissa">
<summary>
Parses the mantissa field.
</summary>
</member>
<member name="M:J2N.Numerics.DotNetNumber.FloatingPointHexNumberBuffer.CheckedAddExponent(System.Int64)">
<summary>
Sets the exponent variable to <see cref="F:System.Int64.MaxValue"/> or -<see cref="F:System.Int64.MaxValue"/> if
overflow or underflow happens.
</summary>
</member>
<member name="M:J2N.Numerics.DotNetNumber.FloatingPointHexNumberBuffer.FitMantissaInDesiredWidth(System.Int32)">
<summary>
Adjusts the mantissa to desired width for further analysis.
</summary>
</member>
<member name="M:J2N.Numerics.DotNetNumber.FloatingPointHexNumberBuffer.DiscardTrailingBits(System.Int32)">
<summary>
Stores the discarded bits to abandonedNumber.
</summary>
</member>
<member name="M:J2N.Numerics.DotNetNumber.FloatingPointHexNumberBuffer.Round">
<summary>
The value is rounded up or down to the nearest infinitely precise result.
If the value is exactly halfway between two infinitely precise results,
then it should be rounded up to the nearest infinitely precise even.
</summary>
</member>
<member name="M:J2N.Numerics.DotNetNumber.FloatingPointHexNumberBuffer.TryGetOffset(System.Int32@)">
<summary>
Calculates the offset between the normalized number and unnormalized
number. In a normalized representation, significand is represented by the
characters "0x1." followed by a lowercase hexadecimal representation of
the rest of the significand as a fraction.
</summary>
</member>
<member name="M:J2N.Numerics.DotNetNumber.SingleHexNumberBuffer.TryGetValue(System.Single@)">
<summary>
Parses the hex string to a <see cref="T:System.Single"/> number.
</summary>
<param name="result">A single-precision floating-point number equivalent to the numeric value or symbol.</param>
</member>
<member name="M:J2N.Numerics.DotNetNumber.DoubleNumberBuffer.TryGetValue(System.Double@)">
<summary>
Parses the hex string to a <see cref="T:System.Single"/> number.
</summary>
<param name="result">A double-precision floating-point number equivalent to the numeric value or symbol.</param>
</member>
<member name="M:J2N.Numerics.DotNetNumber.FormatDoubleHex(J2N.Text.ValueStringBuilder@,System.Double,System.Globalization.NumberFormatInfo,System.Boolean)">
<summary>
Implements Java's decimal hexadecimal format (sourced from Apache Harmony) for <see cref="T:System.Double"/>. See <see cref="M:J2N.DoubleExtensions.ToHexString(System.Double,System.IFormatProvider)"/> for documentation.
</summary>
<returns>Returns a value if not finite, NaN, positive or negative zero. Othewise, writes the formatted value to <paramref name="sb"/>.</returns>
</member>
<member name="M:J2N.Numerics.DotNetNumber.FormatDouble(J2N.Text.ValueStringBuilder@,System.Double,System.ReadOnlySpan{System.Char},System.Globalization.NumberFormatInfo)">
<summary>Formats the specified value according to the specified format and info.</summary>
<returns>
Non-null if an existing string can be returned, in which case the builder will be unmodified.
Null if no existing string was returned, in which case the formatted output is in the builder.
</returns>
</member>
<member name="M:J2N.Numerics.DotNetNumber.SingleToHexStr(J2N.Text.ValueStringBuilder@,System.Single,System.Globalization.NumberFormatInfo,System.Boolean)">
<summary>
Implements Java's decimal hexadecimal format (sourced from Apache Harmony) for <see cref="T:System.Single"/>. See <see cref="M:J2N.SingleExtensions.ToHexString(System.Single,System.IFormatProvider)"/> for documentation.
</summary>
<returns>Returns a value if not finite, NaN, positive or negative zero. Othewise, writes the formatted value to <paramref name="sb"/>.</returns>
</member>
<member name="M:J2N.Numerics.DotNetNumber.FormatSingle(J2N.Text.ValueStringBuilder@,System.Single,System.ReadOnlySpan{System.Char},System.Globalization.NumberFormatInfo)">
<summary>Formats the specified value according to the specified format and info.</summary>
<returns>
Non-null if an existing string can be returned, in which case the builder will be unmodified.
Null if no existing string was returned, in which case the formatted output is in the builder.
</returns>
</member>
<member name="M:J2N.Numerics.DotNetNumber.TryParseInt32IntegerStyle(System.ReadOnlySpan{System.Char},J2N.Globalization.NumberStyle,System.Globalization.NumberFormatInfo,System.Int32@)">
<summary>Parses int limited to styles that make up NumberStyle.Integer.</summary>
</member>
<member name="M:J2N.Numerics.DotNetNumber.TryParseInt64IntegerStyle(System.ReadOnlySpan{System.Char},J2N.Globalization.NumberStyle,System.Globalization.NumberFormatInfo,System.Int64@)">
<summary>Parses long inputs limited to styles that make up NumberStyle.Integer.</summary>
</member>
<member name="M:J2N.Numerics.DotNetNumber.TryParseUInt32HexNumberStyle(System.ReadOnlySpan{System.Char},J2N.Globalization.NumberStyle,System.UInt32@)">
<summary>Parses uint limited to styles that make up NumberStyle.HexNumber.</summary>
</member>
<member name="M:J2N.Numerics.DotNetNumber.TryParseUInt64HexNumberStyle(System.ReadOnlySpan{System.Char},J2N.Globalization.NumberStyle,System.UInt64@)">
<summary>Parses ulong limited to styles that make up NumberStyle.HexNumber.</summary>
</member>
<member name="M:J2N.Numerics.DotNetNumber.TrailingCharsHex(System.Int32,J2N.Globalization.NumberStyle,System.ReadOnlySpan{System.Char},System.Int32)">
<summary>
Returns <c>true</c> if the pattern matches, otherwise returns <c>false</c>.
</summary>
</member>
<member name="T:J2N.Numerics.Double">
<summary>
An immutable reference type that wraps the primitive <see cref="T:System.Double"/> type.
<para/>
In addition, this class provides methods for converting a <see cref="T:System.Double"/> to a <see cref="T:System.String"/> and
a <see cref="T:System.String"/> to a <see cref="T:System.Double"/> that are compatible with Java. These methods provide better performance
for .NET Core 3.0 and higher as well as patch the broken round-trip behavior and add support for negative zero for
.NET platforms prior to .NET Core 3.0.
<para/>
Instances of this class can be produced implicitly by setting a <see cref="T:System.Double"/> value to a variable declared
as <see cref="T:J2N.Numerics.Double"/>
<code>
double value = 4.4d;
Double instance = value;
</code>
Or explicitly by calling one of the <see cref="M:J2N.Numerics.Double.GetInstance(System.Double)"/> methods.
<para/>
The <see cref="T:System.Double"/> value of a <see cref="T:J2N.Numerics.Double"/> can also be retrieved in several ways. For implicit
conversion, simply assign a <see cref="T:System.Double"/> variable an instance of <see cref="T:J2N.Numerics.Double"/>.
<code>
Double instance = Double.GetInstance(4.4d);
double value = instance;
</code>
To explicitly get the value, call <see cref="M:J2N.Numerics.Double.ToDouble"/> or use the <see cref="T:System.Convert"/> class.
<code>
double converted1 = instance.ToDouble();
double converted2 = Convert.ToDouble(instance, NumberFormatInfo.InvariantInfo);
</code>
<para/>
In most cases, the number types in .NET will suffice. The main reason for creating an object to wrap numeric types is to
provide a way to make strongly-typed instances that can co-exist in collections and arrays with reference types.
For example, when creating a table object that has columns with a mix of number and string data types.
When porting code from Java, there are sometimes cases where the design didn't factor in the use of value types,
so these classes can be used rather than reworking the design.
For more information about numbers classes, see
<a href="https://docs.oracle.com/javase/tutorial/java/data/numberclasses.html">The Numbers Classes</a>.
</summary>
<seealso cref="T:J2N.Numerics.Number"/>
<seealso cref="T:System.IConvertible"/>
<seealso cref="T:System.IFormattable"/>
<seealso cref="T:System.IComparable"/>
</member>
<member name="F:J2N.Numerics.Double.value">
<summary>
The value which the receiver represents.
</summary>
</member>
<member name="F:J2N.Numerics.Double.MaxExponent">
<summary>
Maximum exponent a finite <see cref="T:System.Double"/> variable may have.
</summary>
</member>
<member name="F:J2N.Numerics.Double.MinExponent">
<summary>
Minimum exponent a normalized <see cref="T:System.Double"/> variable may have.
</summary>
</member>
<member name="F:J2N.Numerics.Double.MinNormal">
<summary>
The smallest positive normal value of type <see cref="T:System.Double"/>, 2<sup>-1022</sup>.
It is equal to the value <c>BitConversion.Int64BitsToDouble(0x0010000000000000L)</c>.
</summary>
</member>
<member name="F:J2N.Numerics.Double.Size">
<summary>
The number of bits needed to represent a <see cref="T:System.Double"/> in
two's complement form.
</summary>
</member>
<member name="M:J2N.Numerics.Double.#ctor(System.Double)">
<summary>
Initializes a new instance of the <see cref="T:J2N.Numerics.Double"/> class.
</summary>
<param name="value">The primitive <see cref="T:System.Double"/> value to store in the new instance.</param>
</member>
<member name="M:J2N.Numerics.Double.CompareTo(J2N.Numerics.Double)">
<summary>
Compares this instance to a specified <see cref="T:J2N.Numerics.Double"/> and returns an indication of their relative values.
</summary>
<param name="value">A <see cref="T:J2N.Numerics.Double"/> to compare, or <c>null</c>.</param>
<returns>
A signed integer that indicates the relative order of this instance and <paramref name="value"/>.
<list type="table">
<listheader>
<term>Return Value</term>
<term>Description </term>
</listheader>
<item>
<term>Less than zero</term>
<term>This instance is less than <paramref name="value"/>.</term>
</item>
<item>
<term>Zero</term>
<term>This instance is equal to <paramref name="value"/>.</term>
</item>
<item>
<term>Greater than zero</term>
<term>This instance is greater than <paramref name="value"/>, or <paramref name="value"/> is <c>null</c>.</term>
</item>
</list>
</returns>
<remarks>
There are two special cases:
<list type="table">
<item><description><see cref="F:System.Double.NaN"/> is equal to <see cref="F:System.Double.NaN"/> and it is greater
than any other double value, including <see cref="F:System.Double.PositiveInfinity"/></description></item>
<item><description>+0.0d (positive zero) is greater than -0.0d (negative zero).</description></item>
</list>
<para/>
This method implements the <see cref="T:System.IComparable`1"/> interface and performs slightly better than the <see cref="M:J2N.Numerics.Double.CompareTo(System.Object)"/>
method because it does not have to convert the <paramref name="value"/> parameter to an object.
</remarks>
</member>
<member name="M:J2N.Numerics.Double.CompareTo(System.Object)">
<summary>
Compares this instance to a specified object and returns an indication of their relative values.
</summary>
<param name="value">An object to compare, or <c>null</c>.</param>
<returns>
A signed integer that indicates the relative order of this instance and <paramref name="value"/>.
<list type="table">
<listheader>
<term>Return Value</term>
<term>Description </term>
</listheader>
<item>
<term>Less than zero</term>
<term>This instance is less than <paramref name="value"/>.</term>
</item>
<item>
<term>Zero</term>
<term>This instance is equal to <paramref name="value"/>.</term>
</item>
<item>
<term>Greater than zero</term>
<term>This instance is greater than <paramref name="value"/>, or <paramref name="value"/> is <c>null</c>.</term>
</item>
</list>
</returns>
<exception cref="T:System.ArgumentException"><paramref name="value"/> is not a <see cref="T:J2N.Numerics.Double"/>.</exception>
<remarks>
<paramref name="value"/> must be <c>null</c> or an instance of <see cref="T:J2N.Numerics.Double"/>; otherwise, an exception is thrown.
<para/>
Any instance of <see cref="T:J2N.Numerics.Double"/>, regardless of its value, is considered greater than <c>null</c>.
<para/>
There are two special cases:
<list type="table">
<item><description><see cref="F:System.Double.NaN"/> is equal to <see cref="F:System.Double.NaN"/> and it is greater
than any other double value, including <see cref="F:System.Double.PositiveInfinity"/></description></item>
<item><description>+0.0d (positive zero) is greater than -0.0d (negative zero).</description></item>
</list>
<para/>
This method is implemented to support the <see cref="T:System.IComparable"/> interface.
</remarks>
</member>
<member name="M:J2N.Numerics.Double.DoubleToInt64Bits(System.Double)">
<summary>
Returns a representation of the specified floating-point value
according to the IEEE 754 floating-point "double
format" bit layout.
<para/>Bit 63 (the bit that is selected by the mask
<c>0x8000000000000000L</c>) represents the sign of the
floating-point number. Bits
62-52 (the bits that are selected by the mask
<c>0x7ff0000000000000L</c>) represent the exponent. Bits 51-0
(the bits that are selected by the mask
<c>0x000fffffffffffffL</c>) represent the significand
(sometimes called the mantissa) of the floating-point number.
<para/>If the argument is positive infinity, the result is
<c>0x7ff0000000000000L</c>.
<para/>If the argument is negative infinity, the result is
<c>0xfff0000000000000L</c>.
<para/>If the argument is NaN, the result is
<c>0x7ff8000000000000L</c>.
<para/>In all cases, the result is a <see cref="T:System.Int64"/> integer that, when
given to the <see cref="M:J2N.Numerics.Double.Int64BitsToDouble(System.Int64)"/> method, will produce a
floating-point value the same as the argument to
<see cref="M:J2N.Numerics.Double.DoubleToInt64Bits(System.Double)"/> (except all NaN values are
collapsed to a single "canonical" NaN value).
<para/>
NOTE: This corresponds to Double.doubleToLongBits() in the JDK.
There is no corresponding method in .NET.
</summary>
<param name="value">A <see cref="T:System.Double"/> precision floating-point number.</param>
<returns>The bits that represent the floating-point number.</returns>
</member>
<member name="M:J2N.Numerics.Double.DoubleToRawInt64Bits(System.Double)">
<summary>
Returns a representation of the specified floating-point value
according to the IEEE 754 floating-point "double
format" bit layout, preserving Not-a-Number (NaN) values.
<para/>Bit 63 (the bit that is selected by the mask
<c>0x8000000000000000L</c>) represents the sign of the
floating-point number. Bits
62-52 (the bits that are selected by the mask
<c>0x7ff0000000000000L</c>) represent the exponent. Bits 51-0
(the bits that are selected by the mask
<c>0x000fffffffffffffL</c>) represent the significand
(sometimes called the mantissa) of the floating-point number.
<para/>If the argument is positive infinity, the result is
<c>0x7ff0000000000000L</c>.
<para/>If the argument is negative infinity, the result is
<c>0xfff0000000000000L</c>.
<para/>If the argument is NaN, the result is the <see cref="T:System.Int64"/>
integer representing the actual NaN value. Unlike the
<see cref="M:J2N.Numerics.Double.DoubleToInt64Bits(System.Double)"/> method,
<see cref="M:J2N.Numerics.Double.DoubleToRawInt64Bits(System.Double)"/> does not collapse all the bit
patterns encoding a NaN to a single "canonical" NaN
value.
<para/>In all cases, the result is a <see cref="T:System.Int64"/> integer that,
when given to the <see cref="M:J2N.Numerics.Double.Int64BitsToDouble(System.Int64)"/> method, will
produce a floating-point value the same as the argument to
<see cref="M:J2N.Numerics.Double.DoubleToRawInt64Bits(System.Double)"/>.
<para/>
NOTE: This corresponds to Double.doubleToRawLongBits() in the JDK
and to <see cref="M:System.BitConverter.DoubleToInt64Bits(System.Double)"/> in .NET.
</summary>
<param name="value">A <see cref="T:System.Double"/> precision floating-point number.</param>
<returns>The bits that represent the floating-point number.</returns>
</member>
<member name="M:J2N.Numerics.Double.Equals(J2N.Numerics.Double)">
<summary>
Returns a value indicating whether this instance and a specified <see cref="T:J2N.Numerics.Double"/> object represent the same value.
</summary>
<param name="obj">A <see cref="T:J2N.Numerics.Double"/> object to compare to this instance.</param>
<returns><c>true</c> if <paramref name="obj"/> is equal to the value of this instance; otherwise, <c>false</c>.</returns>
<remarks>
This method implements the <see cref="T:System.IEquatable`1"/> interface, and performs slightly better than
<see cref="M:J2N.Numerics.Double.Equals(J2N.Numerics.Double)"/> because it does not have to convert the <paramref name="obj"/> parameter to an object.
<para/>
The <see cref="M:J2N.Numerics.Double.Equals(J2N.Numerics.Double)"/> method should be used with caution, because two apparently equivalent values
can be unequal due to the differing precision of the two values. The following example reports that the <see cref="T:J2N.Numerics.Double"/>
value .3333 and the <see cref="T:J2N.Numerics.Double"/> returned by dividing 1 by 3 are unequal.
<code>
// Initialize two doubles with apparently identical values<br/>
Double double1 = .33333;<br/>
Double double2 = (double)1 / 3;<br/>
// Compare them for equality<br/>
Console.WriteLine(double1.Equals(double2)); // displays false
</code>
<para/>
Rather than comparing for equality, one technique involves defining an acceptable relative margin of difference
between two values (such as .001% of one of the values). If the absolute value of the difference between the two
values is less than or equal to that margin, the difference is likely to be due to differences in precision and,
therefore, the values are likely to be equal. The following example uses this technique to compare .33333 and 1/3,
the two <see cref="T:J2N.Numerics.Double"/> values that the previous code example found to be unequal. In this case, the values are equal.
<code>
// Initialize two doubles with apparently identical values<br/>
Double double1 = .333333;<br/>
Double double2 = 1/3;<br/>
// Define the tolerance for variation in their values<br/>
double difference = Math.Abs(double1 * .00001);<br/>
<br/>
// Compare the values<br/>
// The output to the console indicates that the two values are equal<br/>
if (Math.Abs(double1 - double2) &lt;= difference)<br/>
Console.WriteLine("double1 and double2 are equal.");<br/>
else<br/>
Console.WriteLine("double1 and double2 are unequal.");
</code>
In this case, the values are equal.
<para/>
NOTE: Because <see cref="F:System.Double.Epsilon"/> defines the minimum expression of a positive value
whose range is near zero, the margin of difference between two similar values must be greater
than <see cref="F:System.Double.Epsilon"/>. Typically, it is many times greater than <see cref="F:System.Double.Epsilon"/>.
<para/>
A second technique involves comparing the difference between two floating-point numbers with some absolute value.
If the difference is less than or equal to that absolute value, the numbers are equal. If it is greater, the
numbers are not equal. One alternative is to arbitrarily select an absolute value. This is problematic, however,
because an acceptable margin of difference depends on the magnitude of the <see cref="T:J2N.Numerics.Double"/> values. A second
alternative takes advantage of a design feature of the floating-point format: The difference between the integer
representation of two floating-point values indicates the number of possible floating-point values that separates
them. For example, the difference between 0.0 and <see cref="F:System.Double.Epsilon"/> is 1, because <see cref="F:System.Double.Epsilon"/>
is the smallest representable value when working with a <see cref="T:J2N.Numerics.Double"/> whose value is zero. The following
example uses this technique to compare .33333 and 1/3, which are the two <see cref="T:J2N.Numerics.Double"/> values that the
previous code example with the <see cref="M:J2N.Numerics.Double.Equals(J2N.Numerics.Double)"/> method found to be unequal. Note that the example
uses the <see cref="M:J2N.BitConversion.DoubleToRawInt64Bits(System.Double)"/> method to convert a double-precision floating-point
value to its integer representation.
<code>
using System;<br/>
<br/>
public class Example<br/>
{<br/>
public static void Main()<br/>
{<br/>
Double value1 = .1 * 10;<br/>
double value2x = 0;<br/>
for (int ctr = 0; ctr &lt; 10; ctr++)<br/>
value2x += .1;<br/>
Double value2 = Double.GetInstance(value2x);<br/>
<br/>
Console.WriteLine("{0:R} = {1:R}: {2}", value1, value2,<br/>
HasMinimalDifference(value1, value2, 1));<br/>
}<br/>
<br/>
public static bool HasMinimalDifference(double value1, double value2, int units)<br/>
{<br/>
long lValue1 = BitConversion.DoubleToRawInt64Bits(value1);<br/>
long lValue2 = BitConversion.DoubleToRawInt64Bits(value2);<br/>
<br/>
// If the signs are different, return false except for +0 and -0.<br/>
if ((lValue1 &gt;&gt; 63) != (lValue2 &gt;&gt; 63))<br/>
{<br/>
if (value1 == value2)<br/>
return true;<br/>
<br/>
return false;<br/>
}<br/>
<br/>
long diff = Math.Abs(lValue1 - lValue2);<br/>
<br/>
if (diff &lt;= (long)units)<br/>
return true;<br/>
<br/>
return false;<br/>
}<br/>
}<br/>
// The example displays the following output:<br/>
// 1 = 0.99999999999999989: True
</code>
<para/>
If two <see cref="F:System.Double.NaN"/> values are tested for equality by calling the <see cref="M:J2N.Numerics.Double.Equals(System.Object)"/>
method, the method returns <c>true</c>. However, if two <see cref="F:System.Double.NaN"/> values are tested for equality
by using the equality operator, the operator returns <c>false</c>. When you want to determine whether the value
of a <see cref="T:J2N.Numerics.Double"/> is not a number (NaN), an alternative is to call the <see cref="M:J2N.Numerics.Double.IsNaN"/> method.
</remarks>
</member>
<member name="M:J2N.Numerics.Double.Equals(System.Object)">
<summary>
Returns a value indicating whether this instance is equal to a specified object.
</summary>
<param name="obj">An object to compare with this instance.</param>
<returns><c>true</c> if <paramref name="obj"/> is an instance of <see cref="T:J2N.Numerics.Double"/> and equals the value of
this instance; otherwise, <c>false</c>.</returns>
<remarks>
The <see cref="M:J2N.Numerics.Double.Equals(System.Object)"/> method should be used with caution, because two apparently equivalent values
can be unequal due to the differing precision of the two values. The following example reports that the <see cref="T:J2N.Numerics.Double"/>
value .3333 and the <see cref="T:J2N.Numerics.Double"/> returned by dividing 1 by 3 are unequal.
<code>
// Initialize two doubles with apparently identical values<br/>
double double1 = .33333;<br/>
object double2 = (double)1 / 3;<br/>
// Compare them for equality<br/>
Console.WriteLine(double1.Equals(double2)); // displays false
</code>
<para/>
NOTE: Because <see cref="F:System.Double.Epsilon"/> defines the minimum expression of a positive value
whose range is near zero, the margin of difference between two similar values must be greater
than <see cref="F:System.Double.Epsilon"/>. Typically, it is many times greater than <see cref="F:System.Double.Epsilon"/>.
<para/>
If two <see cref="F:System.Double.NaN"/> values are tested for equality by calling the <see cref="M:J2N.Numerics.Double.Equals(System.Object)"/>
method, the method returns <c>true</c>. However, if two <see cref="F:System.Double.NaN"/> values are tested for equality
by using the equality operator, the operator returns <c>false</c>. When you want to determine whether the value
of a <see cref="T:J2N.Numerics.Double"/> is not a number (NaN), an alternative is to call the <see cref="M:J2N.Numerics.Double.IsNaN"/> method.
</remarks>
</member>
<member name="M:J2N.Numerics.Double.GetHashCode">
<summary>
Returns the hash code for this instance.
</summary>
<returns>A 32-bit signed integer hash code.</returns>
</member>
<member name="M:J2N.Numerics.Double.IsFinite">
<summary>
Determines whether this object's value is finite (zero, subnormal, or normal).
</summary>
<returns><c>true</c> if the value is finite (zero, subnormal or normal); otherwise <c>false</c>.</returns>
</member>
<member name="M:J2N.Numerics.Double.IsInfinity">
<summary>
Returns a value indicating whether this object's value evaluates to negative or positive infinity.
</summary>
<returns><c>true</c> if this object's value evaluates to <see cref="F:System.Double.PositiveInfinity"/> or
<see cref="F:System.Double.NegativeInfinity"/>; otherwise, <c>false</c>.</returns>
</member>
<member name="M:J2N.Numerics.Double.IsNaN">
<summary>
Returns a value that indicates whether this objects's value is not a number
(<see cref="F:System.Double.NaN"/>).
</summary>
<returns><c>true</c> if this object's' value evaluates to <see cref="F:System.Double.NaN"/>;
otherwise, <c>false</c>.</returns>
</member>
<member name="M:J2N.Numerics.Double.IsNegative">
<summary>
Determines whether this object's value value is negative.
</summary>
<returns><c>true</c> if the value is negative; otherwise, <c>false</c>.</returns>
</member>
<member name="M:J2N.Numerics.Double.IsNegativeInfinity">
<summary>
Returns a value indicating whether this object's value evaluates to negative
infinity.
</summary>
<returns><c>true</c> if the value evaluates to <see cref="F:System.Double.NegativeInfinity"/>;
otherwise, <c>false</c>.</returns>
</member>
<member name="M:J2N.Numerics.Double.IsNegativeZero">
<summary>
Gets a value indicating whether the current <see cref="T:System.Double"/> has the value negative zero (<c>-0.0d</c>).
While negative zero is supported by the <see cref="T:System.Double"/> datatype in .NET, comparisons and string formatting ignore
this feature. This method allows a simple way to check whether the current <see cref="T:System.Double"/> has the value negative zero.
</summary>
<returns><c>true</c> if the current value represents negative zero; otherwise, <c>false</c>.</returns>
</member>
<member name="M:J2N.Numerics.Double.IsNormal">
<summary>
Determines whether this object's value specified value is normal.
</summary>
<returns><c>true</c> if the value is normal; <c>false</c> otherwise.</returns>
</member>
<member name="M:J2N.Numerics.Double.IsPositiveInfinity">
<summary>
Returns a value indicating whether this object's value evaluates to positive infinity.
</summary>
<returns><c>true</c> if the value evaluates to <see cref="F:System.Double.PositiveInfinity"/>; otherwise, <c>false</c>.</returns>
</member>
<member name="M:J2N.Numerics.Double.IsSubnormal">
<summary>
Determines whether this object's value is subnormal.
</summary>
<returns><c>true</c> if the value is subnormal; <c>false</c> otherwise.</returns>
</member>
<member name="M:J2N.Numerics.Double.Int64BitsToDouble(System.Int64)">
<summary>
Returns the <see cref="T:System.Double"/> value corresponding to a given
bit representation.
The argument is considered to be a representation of a
floating-point value according to the IEEE 754 floating-point
"double format" bit layout.
<para/>If the argument is <c>0x7ff0000000000000L</c>, the result
is positive infinity.
<para/>If the argument is <c>0xfff0000000000000L</c>, the result
is negative infinity.
<para/>If the argument is any value in the range
<c>0x7ff0000000000001L</c> through
<c>0x7fffffffffffffffL</c> or in the range
<c>0xfff0000000000001L</c> through
<c>0xffffffffffffffffL</c>, the result is a NaN. No IEEE
754 floating-point operation provided by .NET can distinguish
between two NaN values of the same type with different bit
patterns. Distinct values of NaN are only distinguishable by
use of the <see cref="M:J2N.Numerics.Double.DoubleToRawInt64Bits(System.Double)"/> method.
<para/>In all other cases, let <i>s</i>, <i>e</i>, and <i>m</i> be three
values that can be computed from the argument:
<code>
int s = ((bits &gt;&gt; 63) == 0) ? 1 : -1;
int e = (int)((bits &gt;&gt; 52) &amp; 0x7ffL);
long m = (e == 0) ?
(bits &amp; 0xfffffffffffffL) &lt;&lt; 1 :
(bits &amp; 0xfffffffffffffL) | 0x10000000000000L;
</code>
Then the floating-point result equals the value of the mathematical
expression <i>s</i>&#183;<i>m</i>&#183;2<sup><i>e</i>-1075</sup>.
<para/>Note that this method may not be able to return a
<see cref="T:System.Double"/> NaN with exactly same bit pattern as the
<see cref="T:System.Int64"/> argument. IEEE 754 distinguishes between two
kinds of NaNs, quiet NaNs and <i>signaling NaNs</i>. The
differences between the two kinds of NaN are generally not
visible in .NET. Arithmetic operations on signaling NaNs turn
them into quiet NaNs with a different, but often similar, bit
pattern. However, on some processors merely copying a
signaling NaN also performs that conversion. In particular,
copying a signaling NaN to return it to the calling method
may perform this conversion. So <see cref="M:J2N.Numerics.Double.Int64BitsToDouble(System.Int64)"/>
may not be able to return a <see cref="T:System.Double"/> with a
signaling NaN bit pattern. Consequently, for some
<see cref="T:System.Int64"/> values,
<c>BitConversion.DoubleToRawInt64Bits(BitConversion.Int64BitsToDouble(start))</c> may
<i>not</i> equal <c>start</c>. Moreover, which
particular bit patterns represent signaling NaNs is platform
dependent; although all NaN bit patterns, quiet or signaling,
must be in the NaN range identified above.
<para/>
NOTE: This corresponds to Double.longBitsToDouble() in the JDK
and <see cref="M:System.BitConverter.Int64BitsToDouble(System.Int64)"/> in .NET.
</summary>
<param name="value">Any <see cref="T:System.Int64"/> integer.</param>
<returns>The <see cref="T:System.Double"/> floating-point value with
the same bit pattern.</returns>
</member>
<member name="M:J2N.Numerics.Double.Parse(System.String,System.IFormatProvider)">
<summary>
Converts the string representation of a number in a specified style and culture-specific format to
its double-precision floating-point number equivalent.
<para/>
Usage Note: To approximately match the behavior of the JDK for decimal numbers, use <see cref="F:J2N.Globalization.NumberStyle.Float"/> combined with
<see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/> for <c>style</c> and <see cref="P:System.Globalization.NumberFormatInfo.InvariantInfo"/> for <paramref name="provider"/>.
To approximately match the behavior of the JDK for hexadecimal numbers, use <see cref="F:J2N.Globalization.NumberStyle.HexFloat"/> combined with
<see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/> for <c>style</c> and <see cref="P:System.Globalization.NumberFormatInfo.InvariantInfo"/> for <paramref name="provider"/>.
These options will parse any number that is supported by Java, but the hex specifier, exponent, and type suffix are all optional.
</summary>
<param name="s">A string that contains a number to convert.</param>
<param name="provider">An object that supplies culture-specific formatting information about <paramref name="s"/>.</param>
<returns>A double-precision floating-point number equivalent to the numeric value or symbol specified in <paramref name="s"/>.</returns>
<exception cref="T:System.ArgumentNullException"><paramref name="s"/> is <c>null</c>.</exception>
<exception cref="T:System.FormatException"><paramref name="s"/> does not represent a number in a valid format.</exception>
<remarks>
In .NET Core 3.0 and later, values that are too large to represent are rounded to <see cref="F:System.Double.PositiveInfinity"/> or
<see cref="F:System.Double.NegativeInfinity"/> as required by the IEEE 754 specification. In prior versions, including .NET Framework, parsing a
value that was too large to represent resulted in failure. This implementation uses the new parser, but patches it back to .NET Framework 4.0.
<para/>
This overload is typically used to convert text that can be formatted in a variety of ways to a <see cref="T:System.Double"/> value. For example,
it can be used to convert the text entered by a user into an HTML text box to a numeric value.
<para/>
The <paramref name="s"/> parameter is interpreted using a combination of the <see cref="F:J2N.Globalization.NumberStyle.Float"/> and <see cref="F:J2N.Globalization.NumberStyle.AllowThousands"/> flags.
The <paramref name="s"/> parameter can contain <see cref="P:System.Globalization.NumberFormatInfo.PositiveInfinitySymbol"/>, <see cref="P:System.Globalization.NumberFormatInfo.NegativeInfinitySymbol"/>, or
<see cref="P:System.Globalization.NumberFormatInfo.NaNSymbol"/> for the culture specified by <paramref name="provider"/>, or it can contain a string of the form:
<para/>
[ws][sign]integral-digits[.[fractional-digits]][E[sign]exponential-digits][ws]
<para/>
Elements framed in square brackets ([ and ]) are optional. Elements that contain the term "digits" consist of a series of numeric characters
ranging from 0 to 9. The following table describes each element.
<para/>
<list type="table">
<listheader>
<term>Element</term>
<term>Description</term>
</listheader>
<item>
<term><i>ws</i></term>
<term>A series of white-space characters.</term>
</item>
<item>
<term><i>sign</i></term>
<term>A negative sign symbol (-) or a positive sign symbol (+).</term>
</item>
<item>
<term><i>integral-digits</i></term>
<term>A series of digits ranging from 0 to 9 that specify the integral part of the number. Runs of <i>integral-digits</i> can be partitioned
by a group-separator symbol. For example, in some cultures a comma (,) separates groups of thousands. The <i>integral-digits</i> element can be absent
if the string contains the <i>fractional-digits</i> element.</term>
</item>
<item>
<term><i>.</i></term>
<term>A culture-specific decimal point symbol.</term>
</item>
<item>
<term><i>fractional-digits</i>
</term>
<term>A series of digits ranging from 0 to 9 that specify the fractional part of the number.</term>
</item>
<item>
<term><i>e</i></term>
<term>The 'e' or 'E' character, which indicates that the value is represented in exponential notation.</term>
</item>
<item>
<term><i>exponential-digits</i></term>
<term>A sequence of decimal digits from 0 through 9 that specify an exponent.</term>
</item>
</list>
<para/>
For more information about numeric formats, see the <a href="https://docs.microsoft.com/en-us/dotnet/standard/base-types/formatting-types">
Formatting Types</a> topic.
<para/>
The <paramref name="provider"/> parameter is an <see cref="T:System.IFormatProvider"/> implementation, such as a <see cref="T:System.Globalization.CultureInfo"/> object,
a <see cref="T:System.Globalization.NumberFormatInfo"/> object or a <see cref="T:J2N.Text.StringFormatter"/> object, whose <see cref="M:System.IFormatProvider.GetFormat(System.Type)"/>
method returns a <see cref="T:System.Globalization.NumberFormatInfo"/> object. The <see cref="T:System.Globalization.NumberFormatInfo"/> object provides culture-specific information about
the format of <paramref name="s"/>. When the <see cref="M:J2N.Numerics.Double.Parse(System.String,System.IFormatProvider)"/> method is invoked, it calls the provider parameter's
<see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> method and passes it a <see cref="T:System.Type"/> object that represents the <see cref="T:System.Globalization.NumberFormatInfo"/> type.
The <see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> method then returns the <see cref="T:System.Globalization.NumberFormatInfo"/> object that provides information about the
format of the <paramref name="s"/> parameter. There are three ways to use the <paramref name="provider"/> parameter to supply custom formatting
information to the parse operation:
<list type="bullet">
<item><description>You can pass a <see cref="T:System.Globalization.CultureInfo"/> object that represents the culture that supplies formatting information. Its
<see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> method returns the <see cref="T:System.Globalization.NumberFormatInfo"/> object that provides numeric formatting
information for that culture.</description></item>
<item><description>You can pass the actual <see cref="T:System.Globalization.NumberFormatInfo"/> object that provides numeric formatting information. (Its
implementation of <see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> just returns itself.)</description></item>
<item><description>You can pass a custom object that implements <see cref="T:System.IFormatProvider"/>. Its <see cref="M:System.IFormatProvider.GetFormat(System.Type)"/>
method instantiates and returns the <see cref="T:System.Globalization.NumberFormatInfo"/> object that provides formatting information.</description></item>
</list>
If <paramref name="provider"/> is <c>null</c> or a <see cref="T:System.Globalization.NumberFormatInfo"/> object cannot be obtained, the <see cref="T:System.Globalization.NumberFormatInfo"/>
object for the current culture is used.
<para/>
If <paramref name="s"/> is out of range of the <see cref="T:System.Double"/> data type, the method returns <see cref="F:System.Double.NegativeInfinity"/> if
<paramref name="s"/> is less than <see cref="F:System.Double.MinValue"/> and <see cref="F:System.Double.PositiveInfinity"/> if <paramref name="s"/> is greater
than <see cref="F:System.Double.MaxValue"/>.
<para/>
If a separator is encountered in the <paramref name="s"/> parameter during a parse operation, and the applicable currency or number
decimal and group separators are the same, the parse operation assumes that the separator is a decimal separator rather than a group
separator. For more information about separators, see <see cref="P:System.Globalization.NumberFormatInfo.CurrencyDecimalSeparator"/>,
<see cref="P:System.Globalization.NumberFormatInfo.NumberDecimalSeparator"/>, <see cref="P:System.Globalization.NumberFormatInfo.CurrencyGroupSeparator"/>, and
<see cref="P:System.Globalization.NumberFormatInfo.NumberGroupSeparator"/>.
<para/>
Some examples of <paramref name="s"/> are "100", "-123,456,789", "123.45e+6", "+500", "5e2", "3.1416", "600.", "-.123", and "-Infinity".
</remarks>
<seealso cref="M:J2N.Numerics.Double.GetInstance(System.String,System.IFormatProvider)"/>
<seealso cref="M:J2N.Numerics.Double.TryParse(System.String,J2N.Globalization.NumberStyle,System.IFormatProvider,System.Double@)"/>
</member>
<member name="M:J2N.Numerics.Double.TryParse(System.String,System.Double@)">
<summary>
Converts the string representation of a number to
its double-precision floating-point number equivalent. A return value indicates whether the
conversion succeeded or failed.
<para/>
Usage Note: To approximately match the behavior of the JDK for decimal numbers, use <see cref="F:J2N.Globalization.NumberStyle.Float"/> combined with
<see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/> for <c>style</c> and <see cref="P:System.Globalization.NumberFormatInfo.InvariantInfo"/> for <c>provider</c>.
To approximately match the behavior of the JDK for hexadecimal numbers, use <see cref="F:J2N.Globalization.NumberStyle.HexFloat"/> combined with
<see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/> for <c>style</c> and <see cref="P:System.Globalization.NumberFormatInfo.InvariantInfo"/> for <c>provider</c>.
These options will parse any number that is supported by Java, but the hex specifier, exponent, and type suffix are all optional.
</summary>
<param name="s">A string representing a number to convert.</param>
<param name="result">When this method returns, contains the double-precision floating-point number equivalent to the
numeric value or symbol contained in <paramref name="s"/>, if the conversion succeeded, or zero if the conversion failed.
The conversion fails if the <paramref name="s"/> parameter is <c>null</c> or <see cref="F:System.String.Empty"/>.
This parameter is passed uninitialized; any value originally supplied in result will be overwritten.</param>
<returns><c>true</c> if <paramref name="s"/> was converted successfully; otherwise, <c>false</c>.</returns>
<remarks>
In .NET Core 3.0 and later, values that are too large to represent are rounded to <see cref="F:System.Double.PositiveInfinity"/> or
<see cref="F:System.Double.NegativeInfinity"/> as required by the IEEE 754 specification. In prior versions, including .NET Framework, parsing a
value that was too large to represent resulted in failure. This implementation uses the new parser, but patches it back to .NET Framework 4.0
and upgrades it to support Java's hexadecimal floating point format.
<para/>
This overload differs from the <see cref="M:J2N.Numerics.Double.Parse(System.String,J2N.Globalization.NumberStyle,System.IFormatProvider)"/> method by returning a Boolean value that indicates
whether the parse operation succeeded instead of returning the parsed numeric value. It eliminates the need to use exception handling to test
for a <see cref="T:System.FormatException"/> in the event that <paramref name="s"/> is invalid and cannot be successfully parsed.
<para/>
The <paramref name="s"/> parameter can contain <see cref="P:System.Globalization.NumberFormatInfo.PositiveInfinitySymbol"/>, <see cref="P:System.Globalization.NumberFormatInfo.NegativeInfinitySymbol"/>, or
<see cref="P:System.Globalization.NumberFormatInfo.NaNSymbol"/> (the string comparison will use <see cref="F:System.StringComparison.OrdinalIgnoreCase"/> comparison rules), or a string of the form:
<para/>
[ws][sign][integral-digits,]integral-digits[.[fractional-digits]][e[sign]exponential-digits][ws]
<para/>
Elements framed in square brackets ([ and ]) are optional. Elements that contain the term "digits" consist of a series of numeric characters
ranging from 0 to 9. The following table describes each element.
<para/>
<list type="table">
<listheader>
<term>Element</term>
<term>Description</term>
</listheader>
<item>
<term><i>ws</i></term>
<term>A series of white-space characters.</term>
</item>
<item>
<term><i>sign</i></term>
<term>A negative sign symbol (-) or a positive sign symbol (+).</term>
</item>
<item>
<term><i>integral-digits</i></term>
<term>A series of digits ranging from 0 to 9 that specify the integral part of the number. The <i>integral-digits</i> element can be absent
if the string contains the <i>fractional-digits</i> element.</term>
</item>
<item>
<term><i>,</i></term>
<term>A culture-specific group separator symbol.</term>
</item>
<item>
<term><i>.</i></term>
<term>A culture-specific decimal point symbol.</term>
</item>
<item>
<term><i>fractional-digits</i>
</term>
<term>A series of digits ranging from 0 to 9 that specify the fractional part of the number.</term>
</item>
<item>
<term><i>e</i></term>
<term>The 'e' or 'E' character, which indicates that the value is represented in exponential (scientific) notation.</term>
</item>
<item>
<term><i>exponential-digits</i></term>
<term>A sequence of decimal digits from 0 through 9 that specify an exponent.</term>
</item>
</list>
<para/>
For more information about numeric formats, see the <a href="https://docs.microsoft.com/en-us/dotnet/standard/base-types/formatting-types">
Formatting Types</a> topic.
<para/>
The <paramref name="s"/> parameter is interpreted using a combination of the <see cref="F:J2N.Globalization.NumberStyle.Float"/> and <see cref="F:J2N.Globalization.NumberStyle.AllowThousands"/>
flags. This means that white space and thousands separators are allowed but currency symbols are not. To explicitly define the
elements (such as currency symbols, thousands separators, and white space) that can be present in <paramref name="s"/>, use the
<see cref="M:J2N.Numerics.Double.TryParse(System.String,J2N.Globalization.NumberStyle,System.IFormatProvider,System.Double@)"/> method overload.
<para/>
The <paramref name="s"/> parameter is parsed using the formatting information in a <see cref="T:System.Globalization.NumberFormatInfo"/> object that is initialized for the
current system culture. For more information, see <see cref="P:System.Globalization.NumberFormatInfo.CurrentInfo"/>. To parse a string using the formatting information of
some other specified culture, use the <see cref="M:J2N.Numerics.Double.TryParse(System.String,J2N.Globalization.NumberStyle,System.IFormatProvider,System.Double@)"/> method overload.
<para/>
If you pass the <see cref="M:J2N.Numerics.Double.TryParse(System.String,System.Double@)"/> method a string that is created by calling the <see cref="M:J2N.Numerics.Double.ToString(System.Double,System.IFormatProvider)"/>
method and pass <see cref="P:J2N.Text.StringFormatter.InvariantCulture"/>, the original <see cref="T:System.Double"/> value is returned. However, because of a loss of precision,
the values using other implementations of <see cref="T:System.IFormatProvider"/> may not be equal.
<para/>
If <paramref name="s"/> is out of range of the <see cref="T:System.Double"/> data type, the method returns <see cref="F:System.Double.NegativeInfinity"/> if
<paramref name="s"/> is less than <see cref="F:System.Double.MinValue"/> and <see cref="F:System.Double.PositiveInfinity"/> if <paramref name="s"/> is greater
than <see cref="F:System.Double.MaxValue"/>.
<para/>
If a separator is encountered in the <paramref name="s"/> parameter during a parse operation, and the applicable currency or number
decimal and group separators are the same, the parse operation assumes that the separator is a decimal separator rather than a group
separator. For more information about separators, see <see cref="P:System.Globalization.NumberFormatInfo.CurrencyDecimalSeparator"/>,
<see cref="P:System.Globalization.NumberFormatInfo.NumberDecimalSeparator"/>, <see cref="P:System.Globalization.NumberFormatInfo.CurrencyGroupSeparator"/>, and
<see cref="P:System.Globalization.NumberFormatInfo.NumberGroupSeparator"/>.
</remarks>
<seealso cref="M:J2N.Numerics.Double.Parse(System.String,System.IFormatProvider)"/>
<seealso cref="M:J2N.Numerics.Double.GetInstance(System.String,System.IFormatProvider)"/>
</member>
<member name="M:J2N.Numerics.Double.TryParse(System.ReadOnlySpan{System.Char},System.Double@)">
<summary>
Converts the string representation of a number in a character span to its double-precision floating-point number equivalent.
A return value indicates whether the conversion succeeded or failed.
<para/>
Usage Note: To approximately match the behavior of the JDK for decimal numbers, use <see cref="F:J2N.Globalization.NumberStyle.Float"/> combined with
<see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/> for <c>style</c> and <see cref="P:System.Globalization.NumberFormatInfo.InvariantInfo"/> for <c>provider</c>.
To approximately match the behavior of the JDK for hexadecimal numbers, use <see cref="F:J2N.Globalization.NumberStyle.HexFloat"/> combined with
<see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/> for <c>style</c> and <see cref="P:System.Globalization.NumberFormatInfo.InvariantInfo"/> for <c>provider</c>.
These options will parse any number that is supported by Java, but the hex specifier, exponent, and type suffix are all optional.
</summary>
<param name="s">A string representing a number to convert.</param>
<param name="result">When this method returns, contains the double-precision floating-point number equivalent to the
numeric value or symbol contained in <paramref name="s"/>, if the conversion succeeded, or zero if the conversion failed.
The conversion fails if the <paramref name="s"/> parameter is <c>null</c> or <see cref="F:System.String.Empty"/>.
This parameter is passed uninitialized; any value originally supplied in result will be overwritten.</param>
<returns><c>true</c> if <paramref name="s"/> was converted successfully; otherwise, <c>false</c>.</returns>
<remarks>
In .NET Core 3.0 and later, values that are too large to represent are rounded to <see cref="F:System.Double.PositiveInfinity"/> or
<see cref="F:System.Double.NegativeInfinity"/> as required by the IEEE 754 specification. In prior versions, including .NET Framework, parsing a
value that was too large to represent resulted in failure. This implementation uses the new parser, but patches it back to .NET Framework 4.0
and upgrades it to support Java's hexadecimal floating point format.
<para/>
This overload differs from the <see cref="M:J2N.Numerics.Double.Parse(System.String,J2N.Globalization.NumberStyle,System.IFormatProvider)"/> method by returning a Boolean value that indicates
whether the parse operation succeeded instead of returning the parsed numeric value. It eliminates the need to use exception handling to test
for a <see cref="T:System.FormatException"/> in the event that <paramref name="s"/> is invalid and cannot be successfully parsed.
<para/>
The <paramref name="s"/> parameter can contain <see cref="P:System.Globalization.NumberFormatInfo.PositiveInfinitySymbol"/>, <see cref="P:System.Globalization.NumberFormatInfo.NegativeInfinitySymbol"/>, or
<see cref="P:System.Globalization.NumberFormatInfo.NaNSymbol"/> (the string comparison will use <see cref="F:System.StringComparison.OrdinalIgnoreCase"/> comparison rules), or a string of the form:
<para/>
[ws][sign][integral-digits,]integral-digits[.[fractional-digits]][e[sign]exponential-digits][ws]
<para/>
Elements framed in square brackets ([ and ]) are optional. Elements that contain the term "digits" consist of a series of numeric characters
ranging from 0 to 9. The following table describes each element.
<para/>
<list type="table">
<listheader>
<term>Element</term>
<term>Description</term>
</listheader>
<item>
<term><i>ws</i></term>
<term>A series of white-space characters.</term>
</item>
<item>
<term><i>sign</i></term>
<term>A negative sign symbol (-) or a positive sign symbol (+).</term>
</item>
<item>
<term><i>integral-digits</i></term>
<term>A series of digits ranging from 0 to 9 that specify the integral part of the number. The <i>integral-digits</i> element can be absent
if the string contains the <i>fractional-digits</i> element.</term>
</item>
<item>
<term><i>,</i></term>
<term>A culture-specific group separator symbol.</term>
</item>
<item>
<term><i>.</i></term>
<term>A culture-specific decimal point symbol.</term>
</item>
<item>
<term><i>fractional-digits</i>
</term>
<term>A series of digits ranging from 0 to 9 that specify the fractional part of the number.</term>
</item>
<item>
<term><i>e</i></term>
<term>The 'e' or 'E' character, which indicates that the value is represented in exponential (scientific) notation.</term>
</item>
<item>
<term><i>exponential-digits</i></term>
<term>A sequence of decimal digits from 0 through 9 that specify an exponent.</term>
</item>
</list>
<para/>
For more information about numeric formats, see the <a href="https://docs.microsoft.com/en-us/dotnet/standard/base-types/formatting-types">
Formatting Types</a> topic.
<para/>
The <paramref name="s"/> parameter is interpreted using a combination of the <see cref="F:J2N.Globalization.NumberStyle.Float"/> and <see cref="F:J2N.Globalization.NumberStyle.AllowThousands"/>
flags. This means that white space and thousands separators are allowed but currency symbols are not. To explicitly define the
elements (such as currency symbols, thousands separators, and white space) that can be present in <paramref name="s"/>, use the
<see cref="M:J2N.Numerics.Double.TryParse(System.String,J2N.Globalization.NumberStyle,System.IFormatProvider,System.Double@)"/> method overload.
<para/>
The <paramref name="s"/> parameter is parsed using the formatting information in a <see cref="T:System.Globalization.NumberFormatInfo"/> object that is initialized for the
current system culture. For more information, see <see cref="P:System.Globalization.NumberFormatInfo.CurrentInfo"/>. To parse a string using the formatting information of
some other specified culture, use the <see cref="M:J2N.Numerics.Double.TryParse(System.String,J2N.Globalization.NumberStyle,System.IFormatProvider,System.Double@)"/> method overload.
<para/>
If you pass the <see cref="M:J2N.Numerics.Double.TryParse(System.ReadOnlySpan{System.Char},System.Double@)"/> method a string that is created by calling the <see cref="M:J2N.Numerics.Double.ToString(System.Double,System.IFormatProvider)"/>
method and pass <see cref="P:J2N.Text.StringFormatter.InvariantCulture"/>, the original <see cref="T:System.Double"/> value is returned. However, because of a loss of precision,
the values using other implementations of <see cref="T:System.IFormatProvider"/> may not be equal.
<para/>
If <paramref name="s"/> is out of range of the <see cref="T:System.Double"/> data type, the method returns <see cref="F:System.Double.NegativeInfinity"/> if
<paramref name="s"/> is less than <see cref="F:System.Double.MinValue"/> and <see cref="F:System.Double.PositiveInfinity"/> if <paramref name="s"/> is greater
than <see cref="F:System.Double.MaxValue"/>.
<para/>
If a separator is encountered in the <paramref name="s"/> parameter during a parse operation, and the applicable currency or number
decimal and group separators are the same, the parse operation assumes that the separator is a decimal separator rather than a group
separator. For more information about separators, see <see cref="P:System.Globalization.NumberFormatInfo.CurrencyDecimalSeparator"/>,
<see cref="P:System.Globalization.NumberFormatInfo.NumberDecimalSeparator"/>, <see cref="P:System.Globalization.NumberFormatInfo.CurrencyGroupSeparator"/>, and
<see cref="P:System.Globalization.NumberFormatInfo.NumberGroupSeparator"/>.
</remarks>
<seealso cref="M:J2N.Numerics.Double.Parse(System.ReadOnlySpan{System.Char},J2N.Globalization.NumberStyle,System.IFormatProvider)"/>
<seealso cref="M:J2N.Numerics.Double.GetInstance(System.String,System.IFormatProvider)"/>
</member>
<member name="M:J2N.Numerics.Double.Parse(System.String,J2N.Globalization.NumberStyle,System.IFormatProvider)">
<summary>
Converts the string representation of a number in a specified style and culture-specific format to
its double-precision floating-point number equivalent.
<para/>
Usage Note: To approximately match the behavior of the JDK for decimal numbers, use <see cref="F:J2N.Globalization.NumberStyle.Float"/> combined with
<see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/> for <paramref name="style"/> and <see cref="P:System.Globalization.NumberFormatInfo.InvariantInfo"/> for <paramref name="provider"/>.
To approximately match the behavior of the JDK for hexadecimal numbers, use <see cref="F:J2N.Globalization.NumberStyle.HexFloat"/> combined with
<see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/> for <paramref name="style"/> and <see cref="P:System.Globalization.NumberFormatInfo.InvariantInfo"/> for <paramref name="provider"/>.
These options will parse any number that is supported by Java, but the hex specifier, exponent, and type suffix are all optional.
</summary>
<param name="s">A string that contains a number to convert.</param>
<param name="style">A bitwise combination of enumeration values that indicates the style elements
that can be present in <paramref name="s"/>. Typical values to specify is <see cref="F:J2N.Globalization.NumberStyle.Float"/>
combined with <see cref="F:J2N.Globalization.NumberStyle.AllowThousands"/> or, in the case of hexadecimal numbers,
<see cref="F:J2N.Globalization.NumberStyle.HexFloat"/>.</param>
<param name="provider">An object that supplies culture-specific formatting information about <paramref name="s"/>.</param>
<returns>A double-precision floating-point number equivalent to the numeric value or symbol specified in <paramref name="s"/>.</returns>
<exception cref="T:System.ArgumentNullException"><paramref name="s"/> is <c>null</c>.</exception>
<exception cref="T:System.FormatException"><paramref name="s"/> does not represent a numeric value.</exception>
<exception cref="T:System.ArgumentException">
<paramref name="style"/> is not a <see cref="T:J2N.Globalization.NumberStyle"/> value.
<para/>
-or-
<para/>
<paramref name="style"/> is not a combination of <see cref="F:J2N.Globalization.NumberStyle.AllowHexSpecifier"/>, <see cref="F:J2N.Globalization.NumberStyle.HexFloat"/>
and <see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/> values.
<para/>
-or-
<para/>
<paramref name="style"/> has <see cref="F:J2N.Globalization.NumberStyle.AllowHexSpecifier"/> and <see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/> values
but not <see cref="F:J2N.Globalization.NumberStyle.AllowExponent"/>. When type suffix is supplied in a hexadecimal number, exponent (prefixed with a
p or P) is required.
<para/>
-or-
<para/>
<paramref name="style"/> is a combination of <see cref="F:J2N.Globalization.NumberStyle.AllowCurrencySymbol"/> and <see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/>.
</exception>
<remarks>
In .NET Core 3.0 and later, values that are too large to represent are rounded to <see cref="F:System.Double.PositiveInfinity"/> or
<see cref="F:System.Double.NegativeInfinity"/> as required by the IEEE 754 specification. In prior versions, including .NET Framework, parsing a
value that was too large to represent resulted in failure. This implementation uses the new parser, but patches it back to .NET Framework 4.0
and upgrades it to support Java's hexadecimal floating point format.
<para/>
The <paramref name="style"/> parameter defines the style elements (such as white space, thousands separators, and currency symbols) that
are allowed in the s parameter for the parse operation to succeed. It must be a combination of bit flags from the <see cref="T:J2N.Globalization.NumberStyle"/> enumeration.
<para/>
The <paramref name="s"/> parameter can contain <see cref="P:System.Globalization.NumberFormatInfo.PositiveInfinitySymbol"/>, <see cref="P:System.Globalization.NumberFormatInfo.NegativeInfinitySymbol"/>, or
<see cref="P:System.Globalization.NumberFormatInfo.NaNSymbol"/> for the culture specified by <paramref name="provider"/>. Depending on the value of <paramref name="style"/>,
it can also take one of the following forms:
<para/>
[ws] [$] [sign][integral-digits,]integral-digits[.[fractional-digits]][E[sign]exponential-digits][type][ws]
<para/>
Or, if <paramref name="style"/> includes <see cref="F:J2N.Globalization.NumberStyle.AllowHexSpecifier"/>:
<para/>
[ws] [$] [sign][0x][hexdigits,]hexdigits[.[fractional-hexdigits]][P[sign]exponential-digits][type][ws]
<para/>
Elements framed in square brackets ([ and ]) are optional. The following table describes each element.
<para/>
<list type="table">
<listheader>
<term>Element</term>
<term>Description</term>
</listheader>
<item>
<term><i>ws</i></term>
<term>A series of white-space characters. White space can appear at the beginning of <paramref name="s"/> if style includes the
<see cref="F:J2N.Globalization.NumberStyle.AllowLeadingWhite"/> flag, and it can appear at the end of <paramref name="s"/> if style includes the
<see cref="F:J2N.Globalization.NumberStyle.AllowTrailingWhite"/> flag.</term>
</item>
<item>
<term><i>$</i></term>
<term>A culture-specific currency symbol. Its position in the string is defined by the <see cref="P:System.Globalization.NumberFormatInfo.CurrencyNegativePattern"/>
and <see cref="P:System.Globalization.NumberFormatInfo.CurrencyPositivePattern"/> properties of the <see cref="T:System.Globalization.NumberFormatInfo"/> object returned by the
<see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> method of the <paramref name="provider"/> parameter. The current culture's currency symbol can
appear in <paramref name="s"/> if style includes the <see cref="F:J2N.Globalization.NumberStyle.AllowCurrencySymbol"/> flag.</term>
</item>
<item>
<term><i>sign</i></term>
<term>A negative sign symbol (-) or a positive sign symbol (+). The sign can appear at the beginning of <paramref name="s"/> if
<paramref name="style"/> includes the <see cref="F:J2N.Globalization.NumberStyle.AllowLeadingSign"/> flag, and it can appear at the end of <paramref name="s"/>
if <paramref name="style"/> includes the <see cref="F:J2N.Globalization.NumberStyle.AllowTrailingSign"/> flag. Parentheses can be used in <paramref name="s"/>
to indicate a negative value if <paramref name="style"/> includes the <see cref="F:J2N.Globalization.NumberStyle.AllowParentheses"/> flag.</term>
</item>
<item>
<term><i>integral-digits</i></term>
<term>A series of digits ranging from 0 to 9 that specify the integral part of the number. The <i>integral-digits</i> element can be absent
if the string contains the <i>fractional-digits</i> element.</term>
</item>
<item>
<term><i>0x</i>/></term>
<term>The '0x' or '0X' characters, which indicate a hexadecimal number is to immediately follow.</term>
</item>
<item>
<term><i>hexdigits</i></term>
<term>A sequence of hexadecimal digits from 0 through f, or 0 through F that specify the integral part of the number. The <i>hexdigits</i>
element can be absent if the string contains the <i>fractional-hexdigits</i> element. Hexadecimal digits can appear in <paramref name="s"/>
if <paramref name="style"/> includes the <see cref="F:J2N.Globalization.NumberStyle.AllowHexSpecifier"/> flag.</term>
</item>
<item>
<term><i>,</i></term>
<term>A culture-specific thousands separator. The thousands separator of the culture specified by <paramref name="provider"/>
can appear in <paramref name="s"/> if <paramref name="style"/> includes the <see cref="F:J2N.Globalization.NumberStyle.AllowThousands"/> flag.</term>
</item>
<item>
<term><i>.</i></term>
<term>A culture-specific decimal point symbol. The decimal point symbol of the culture specified by <paramref name="provider"/>
can appear in <paramref name="s"/> if <paramref name="style"/> includes the <see cref="F:J2N.Globalization.NumberStyle.AllowDecimalPoint"/> flag.</term>
</item>
<item>
<term><i>fractional-digits</i>
</term>
<term>A series of digits ranging from 0 to 9 that specify the fractional part of the number. Fractional digits can appear in
<paramref name="s"/> if <paramref name="style"/> includes the <see cref="F:J2N.Globalization.NumberStyle.AllowDecimalPoint"/> flag.</term>
</item>
<item>
<term><i>fractional-hexdigits</i>
</term>
<term>A sequence of hexadecimal digits from 0 through f, or 0 through F that specify the fractional part of the number.
Fractional digits can appear in <paramref name="s"/> if <paramref name="style"/> includes both the
<see cref="F:J2N.Globalization.NumberStyle.AllowDecimalPoint"/> and <see cref="F:J2N.Globalization.NumberStyle.AllowHexSpecifier"/> flags.</term>
</item>
<item>
<term><i>e</i></term>
<term>The 'e' or 'E' character, which indicates that the value is represented in exponential notation. The <paramref name="s"/>
parameter can represent a number in exponential notation if style includes the <see cref="F:J2N.Globalization.NumberStyle.AllowExponent"/> flag.</term>
</item>
<item>
<term><i>p</i></term>
<term>The 'p' or 'P' character, which indicates that the hexadecimal value is represented in exponential notation. The <paramref name="s"/>
parameter can represent a hexadecimal number in exponential notation if style includes both the <see cref="F:J2N.Globalization.NumberStyle.AllowExponent"/>
and <see cref="F:J2N.Globalization.NumberStyle.AllowHexSpecifier"/> flags.</term>
</item>
<item>
<term><i>exponential-digits</i></term>
<term>A sequence of decimal digits from 0 through 9 that specify an exponent.</term>
</item>
<item>
<term><i>type</i></term>
<term>The 'UL', 'Ul', 'uL', 'ul', 'LU', 'Lu', 'lU', or 'lu', which is the
<a href="https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/language-specification/lexical-structure#6453-integer-literals">integral type suffix</a>
or 'f', 'F', 'd', 'D', 'm' or 'M' character, which is the
<a href="https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/language-specification/lexical-structure#6454-real-literals">real type suffix</a>
of the number as specified in the C# language specification. The type suffix can appear in <paramref name="s"/> if <paramref name="style"/>
includes the <see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/> flag. If <paramref name="style"/> includes the <see cref="F:J2N.Globalization.NumberStyle.AllowHexSpecifier"/>
flag, specifying the <see cref="F:J2N.Globalization.NumberStyle.AllowExponent"/> is required. Including an exponent in the string (prefixed with 'p' or 'P') is
required for the type suffix characters 'f', 'F', 'd', and 'D' since they would otherwise be interpreted as hexadecimal integral or fractional digits.</term>
</item>
</list>
<para/>
NOTE: Any terminating NUL (U+0000) characters in <paramref name="s"/> are ignored by the parsing operation, regardless of
the value of the <paramref name="style"/> argument.
<para/>
A string with decimal digits only (which corresponds to the <see cref="F:J2N.Globalization.NumberStyle.None"/> flag) always parses successfully.
Most of the remaining <see cref="T:J2N.Globalization.NumberStyle"/> members control elements that may be but are not required to be present in
this input string. The following table indicates how individual <see cref="T:J2N.Globalization.NumberStyle"/> members affect the elements that may
be present in <paramref name="s"/>.
<list type="table">
<listheader>
<term>Non-composite NumberStyle values</term>
<term>Elements permitted in <paramref name="s"/> in addition to digits</term>
</listheader>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.None"/></term>
<term>Decimal digits only.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowDecimalPoint"/></term>
<term>The decimal point (.) and <i>fractional-digits</i> elements. However, <i>fractional-digits</i> must consist
of only one or more 0 digits or the method returns <c>false</c>.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowExponent"/></term>
<term>The <paramref name="s"/> parameter can also use exponential notation. If <paramref name="s"/> represents a
number in exponential notation, it must represent an integer within the range of the <see cref="T:System.Int64"/> data type
without a non-zero, fractional component.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowLeadingWhite"/></term>
<term>The <i>ws</i> element at the beginning of <paramref name="s"/>.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowTrailingWhite"/></term>
<term>The <i>ws</i> element at the end of <paramref name="s"/>.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowLeadingSign"/></term>
<term>A sign can appear before <i>digits</i>.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowTrailingSign"/></term>
<term>A sign can appear after <i>digits</i>.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowParentheses"/></term>
<term>The <i>sign</i> element in the form of parentheses enclosing the numeric value.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowThousands"/></term>
<term>The thousands separator (,) element.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowCurrencySymbol"/></term>
<term>The <i>$</i> element.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/></term>
<term>The literal <i>type</i> suffix used in the literal identifier syntax of C# (suffixed with one of
'D', 'd', 'F', 'f', 'M', 'm', 'L', 'l', 'U', 'u', 'UL', 'ul', 'LU', or 'lu').</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.Currency"/></term>
<term>All elements. The <paramref name="s"/> parameter cannot represent a hexadecimal
number or a number in exponential notation (prefixed with an 'e' or 'E').</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.Float"/></term>
<term>The <i>ws</i> element at the beginning or end of <paramref name="s"/>, sign at
the beginning of <paramref name="s"/>, and the decimal point (.) symbol. The <paramref name="s"/>
parameter can also use exponential notation (prefixed with an 'e' or 'E').</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.HexFloat"/></term>
<term>The <i>ws</i> element at the beginning or end of <paramref name="s"/>, sign at
the beginning of <paramref name="s"/>, and the decimal point (.) symbol. The <paramref name="s"/>
parameter can also use exponential notation (prefixed with a 'p' or 'P').</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.Number"/></term>
<term>The <i>ws</i>, <i>sign</i>, thousands separator (,), and decimal point (.) elements.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.Any"/></term>
<term>All styles, except <paramref name="s"/> cannot represent a hexadecimal number.</term>
</item>
</list>
<para/>
The <see cref="T:J2N.Globalization.NumberStyle"/> enum can be converted to the .NET <see cref="T:System.Globalization.NumberStyles"/> enum by using the
<see cref="M:J2N.Globalization.NumberStyleExtensions.ToNumberStyles(J2N.Globalization.NumberStyle)"/> extension method.
Similarly, <see cref="T:System.Globalization.NumberStyles"/> enum can be converted to the J2N <see cref="T:J2N.Globalization.NumberStyle"/> enum by using
the <see cref="M:J2N.Globalization.NumberStyleExtensions.ToNumberStyle(System.Globalization.NumberStyles)"/> extension method.
<para/>
If the <see cref="F:J2N.Globalization.NumberStyle.AllowHexSpecifier"/> flag is used, <paramref name="s"/> must be a hexadecimal value which may include an optional 0x or 0X prefix.
For example, "0xC9AF3.8BD4C". This flag may be combined with any of the flags specified in <see cref="F:J2N.Globalization.NumberStyle.Float"/> and also
<see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/>. (The <see cref="T:J2N.Globalization.NumberStyle"/> enumeration has a composite style, <see cref="F:J2N.Globalization.NumberStyle.HexFloat"/>,
that includes all of those flags except <see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/>.)
<para/>
The <paramref name="provider"/> parameter is an <see cref="T:System.IFormatProvider"/> implementation, such as a <see cref="T:System.Globalization.CultureInfo"/> object,
a <see cref="T:System.Globalization.NumberFormatInfo"/> object or a <see cref="T:J2N.Text.StringFormatter"/> object, whose <see cref="M:System.IFormatProvider.GetFormat(System.Type)"/>
method returns a <see cref="T:System.Globalization.NumberFormatInfo"/> object. The <see cref="T:System.Globalization.NumberFormatInfo"/> object provides culture-specific information about
the format of <paramref name="s"/>. When the <see cref="M:J2N.Numerics.Double.Parse(System.String,System.IFormatProvider)"/> method is invoked, it calls the provider parameter's
<see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> method and passes it a <see cref="T:System.Type"/> object that represents the <see cref="T:System.Globalization.NumberFormatInfo"/> type.
The <see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> method then returns the <see cref="T:System.Globalization.NumberFormatInfo"/> object that provides information about the
format of the <paramref name="s"/> parameter. There are three ways to use the <paramref name="provider"/> parameter to supply custom formatting
information to the parse operation:
<list type="bullet">
<item><description>You can pass a <see cref="T:System.Globalization.CultureInfo"/> object that represents the culture that supplies formatting information. Its
<see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> method returns the <see cref="T:System.Globalization.NumberFormatInfo"/> object that provides numeric formatting
information for that culture.</description></item>
<item><description>You can pass the actual <see cref="T:System.Globalization.NumberFormatInfo"/> object that provides numeric formatting information. (Its
implementation of <see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> just returns itself.)</description></item>
<item><description>You can pass a custom object that implements <see cref="T:System.IFormatProvider"/>. Its <see cref="M:System.IFormatProvider.GetFormat(System.Type)"/>
method instantiates and returns the <see cref="T:System.Globalization.NumberFormatInfo"/> object that provides formatting information.</description></item>
</list>
If <paramref name="provider"/> is <c>null</c> or a <see cref="T:System.Globalization.NumberFormatInfo"/> object cannot be obtained, the <see cref="T:System.Globalization.NumberFormatInfo"/>
object for the current culture is used.
<para/>
If <paramref name="s"/> is out of range of the <see cref="T:System.Double"/> data type, the method returns <see cref="F:System.Double.NegativeInfinity"/> if
<paramref name="s"/> is less than <see cref="F:System.Double.MinValue"/> and <see cref="F:System.Double.PositiveInfinity"/> if <paramref name="s"/> is greater
than <see cref="F:System.Double.MaxValue"/>.
<para/>
If a separator is encountered in the <paramref name="s"/> parameter during a parse operation, and the applicable currency or number
decimal and group separators are the same, the parse operation assumes that the separator is a decimal separator rather than a group
separator. For more information about separators, see <see cref="P:System.Globalization.NumberFormatInfo.CurrencyDecimalSeparator"/>,
<see cref="P:System.Globalization.NumberFormatInfo.NumberDecimalSeparator"/>, <see cref="P:System.Globalization.NumberFormatInfo.CurrencyGroupSeparator"/>, and
<see cref="P:System.Globalization.NumberFormatInfo.NumberGroupSeparator"/>.
</remarks>
<seealso cref="M:J2N.Numerics.Double.GetInstance(System.String,J2N.Globalization.NumberStyle,System.IFormatProvider)"/>
<seealso cref="M:J2N.Numerics.Double.TryParse(System.String,J2N.Globalization.NumberStyle,System.IFormatProvider,System.Double@)"/>
</member>
<member name="M:J2N.Numerics.Double.Parse(System.ReadOnlySpan{System.Char},J2N.Globalization.NumberStyle,System.IFormatProvider)">
<summary>
Converts a character span that contains the string representation of a number in a specified style and culture-specific format to
its double-precision floating-point number equivalent.
<para/>
Usage Note: To approximately match the behavior of the JDK for decimal numbers, use <see cref="F:J2N.Globalization.NumberStyle.Float"/> combined with
<see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/> for <paramref name="style"/> and <see cref="P:System.Globalization.NumberFormatInfo.InvariantInfo"/> for <paramref name="provider"/>.
To approximately match the behavior of the JDK for hexadecimal numbers, use <see cref="F:J2N.Globalization.NumberStyle.HexFloat"/> combined with
<see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/> for <paramref name="style"/> and <see cref="P:System.Globalization.NumberFormatInfo.InvariantInfo"/> for <paramref name="provider"/>.
These options will parse any number that is supported by Java, but the hex specifier, exponent, and type suffix are all optional.
</summary>
<param name="s">A string that contains a number to convert.</param>
<param name="style">A bitwise combination of enumeration values that indicates the style elements
that can be present in <paramref name="s"/>. Typical values to specify is <see cref="F:J2N.Globalization.NumberStyle.Float"/>
combined with <see cref="F:J2N.Globalization.NumberStyle.AllowThousands"/> or, in the case of hexadecimal numbers,
<see cref="F:J2N.Globalization.NumberStyle.HexFloat"/>.</param>
<param name="provider">An object that supplies culture-specific formatting information about <paramref name="s"/>.</param>
<returns>A double-precision floating-point number equivalent to the numeric value or symbol specified in <paramref name="s"/>.</returns>
<exception cref="T:System.FormatException"><paramref name="s"/> does not represent a numeric value.</exception>
<exception cref="T:System.ArgumentException">
<paramref name="style"/> is not a <see cref="T:J2N.Globalization.NumberStyle"/> value.
<para/>
-or-
<para/>
<paramref name="style"/> is not a combination of <see cref="F:J2N.Globalization.NumberStyle.AllowHexSpecifier"/>, <see cref="F:J2N.Globalization.NumberStyle.HexFloat"/>
and <see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/> values.
<para/>
-or-
<para/>
<paramref name="style"/> has <see cref="F:J2N.Globalization.NumberStyle.AllowHexSpecifier"/> and <see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/> values
but not <see cref="F:J2N.Globalization.NumberStyle.AllowExponent"/>. When type suffix is supplied in a hexadecimal number, exponent (prefixed with a
p or P) is required.
<para/>
-or-
<para/>
<paramref name="style"/> is a combination of <see cref="F:J2N.Globalization.NumberStyle.AllowCurrencySymbol"/> and <see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/>.
</exception>
<remarks>
In .NET Core 3.0 and later, values that are too large to represent are rounded to <see cref="F:System.Double.PositiveInfinity"/> or
<see cref="F:System.Double.NegativeInfinity"/> as required by the IEEE 754 specification. In prior versions, including .NET Framework, parsing a
value that was too large to represent resulted in failure. This implementation uses the new parser, but patches it back to .NET Framework 4.0
and upgrades it to support Java's hexadecimal floating point format.
<para/>
The <paramref name="style"/> parameter defines the style elements (such as white space, thousands separators, and currency symbols) that
are allowed in the s parameter for the parse operation to succeed. It must be a combination of bit flags from the <see cref="T:J2N.Globalization.NumberStyle"/> enumeration.
<para/>
The <paramref name="s"/> parameter can contain <see cref="P:System.Globalization.NumberFormatInfo.PositiveInfinitySymbol"/>, <see cref="P:System.Globalization.NumberFormatInfo.NegativeInfinitySymbol"/>, or
<see cref="P:System.Globalization.NumberFormatInfo.NaNSymbol"/> for the culture specified by <paramref name="provider"/>. Depending on the value of <paramref name="style"/>,
it can also take one of the following forms:
<para/>
[ws] [$] [sign][integral-digits,]integral-digits[.[fractional-digits]][E[sign]exponential-digits][type][ws]
<para/>
Or, if <paramref name="style"/> includes <see cref="F:J2N.Globalization.NumberStyle.AllowHexSpecifier"/>:
<para/>
[ws] [$] [sign][0x][hexdigits,]hexdigits[.[fractional-hexdigits]][P[sign]exponential-digits][type][ws]
<para/>
Elements framed in square brackets ([ and ]) are optional. The following table describes each element.
<para/>
<list type="table">
<listheader>
<term>Element</term>
<term>Description</term>
</listheader>
<item>
<term><i>ws</i></term>
<term>A series of white-space characters. White space can appear at the beginning of <paramref name="s"/> if style includes the
<see cref="F:J2N.Globalization.NumberStyle.AllowLeadingWhite"/> flag, and it can appear at the end of <paramref name="s"/> if style includes the
<see cref="F:J2N.Globalization.NumberStyle.AllowTrailingWhite"/> flag.</term>
</item>
<item>
<term><i>$</i></term>
<term>A culture-specific currency symbol. Its position in the string is defined by the <see cref="P:System.Globalization.NumberFormatInfo.CurrencyNegativePattern"/>
and <see cref="P:System.Globalization.NumberFormatInfo.CurrencyPositivePattern"/> properties of the <see cref="T:System.Globalization.NumberFormatInfo"/> object returned by the
<see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> method of the <paramref name="provider"/> parameter. The current culture's currency symbol can
appear in <paramref name="s"/> if style includes the <see cref="F:J2N.Globalization.NumberStyle.AllowCurrencySymbol"/> flag.</term>
</item>
<item>
<term><i>sign</i></term>
<term>A negative sign symbol (-) or a positive sign symbol (+). The sign can appear at the beginning of <paramref name="s"/> if
<paramref name="style"/> includes the <see cref="F:J2N.Globalization.NumberStyle.AllowLeadingSign"/> flag, and it can appear at the end of <paramref name="s"/>
if <paramref name="style"/> includes the <see cref="F:J2N.Globalization.NumberStyle.AllowTrailingSign"/> flag. Parentheses can be used in <paramref name="s"/>
to indicate a negative value if <paramref name="style"/> includes the <see cref="F:J2N.Globalization.NumberStyle.AllowParentheses"/> flag.</term>
</item>
<item>
<term><i>integral-digits</i></term>
<term>A series of digits ranging from 0 to 9 that specify the integral part of the number. The <i>integral-digits</i> element can be absent
if the string contains the <i>fractional-digits</i> element.</term>
</item>
<item>
<term><i>0x</i>/></term>
<term>The '0x' or '0X' characters, which indicate a hexadecimal number is to immediately follow.</term>
</item>
<item>
<term><i>hexdigits</i></term>
<term>A sequence of hexadecimal digits from 0 through f, or 0 through F that specify the integral part of the number. The <i>hexdigits</i>
element can be absent if the string contains the <i>fractional-hexdigits</i> element. Hexadecimal digits can appear in <paramref name="s"/>
if <paramref name="style"/> includes the <see cref="F:J2N.Globalization.NumberStyle.AllowHexSpecifier"/> flag.</term>
</item>
<item>
<term><i>,</i></term>
<term>A culture-specific thousands separator. The thousands separator of the culture specified by <paramref name="provider"/>
can appear in <paramref name="s"/> if <paramref name="style"/> includes the <see cref="F:J2N.Globalization.NumberStyle.AllowThousands"/> flag.</term>
</item>
<item>
<term><i>.</i></term>
<term>A culture-specific decimal point symbol. The decimal point symbol of the culture specified by <paramref name="provider"/>
can appear in <paramref name="s"/> if <paramref name="style"/> includes the <see cref="F:J2N.Globalization.NumberStyle.AllowDecimalPoint"/> flag.</term>
</item>
<item>
<term><i>fractional-digits</i>
</term>
<term>A series of digits ranging from 0 to 9 that specify the fractional part of the number. Fractional digits can appear in
<paramref name="s"/> if <paramref name="style"/> includes the <see cref="F:J2N.Globalization.NumberStyle.AllowDecimalPoint"/> flag.</term>
</item>
<item>
<term><i>fractional-hexdigits</i>
</term>
<term>A sequence of hexadecimal digits from 0 through f, or 0 through F that specify the fractional part of the number.
Fractional digits can appear in <paramref name="s"/> if <paramref name="style"/> includes both the
<see cref="F:J2N.Globalization.NumberStyle.AllowDecimalPoint"/> and <see cref="F:J2N.Globalization.NumberStyle.AllowHexSpecifier"/> flags.</term>
</item>
<item>
<term><i>e</i></term>
<term>The 'e' or 'E' character, which indicates that the value is represented in exponential notation. The <paramref name="s"/>
parameter can represent a number in exponential notation if style includes the <see cref="F:J2N.Globalization.NumberStyle.AllowExponent"/> flag.</term>
</item>
<item>
<term><i>p</i></term>
<term>The 'p' or 'P' character, which indicates that the hexadecimal value is represented in exponential notation. The <paramref name="s"/>
parameter can represent a hexadecimal number in exponential notation if style includes both the <see cref="F:J2N.Globalization.NumberStyle.AllowExponent"/>
and <see cref="F:J2N.Globalization.NumberStyle.AllowHexSpecifier"/> flags.</term>
</item>
<item>
<term><i>exponential-digits</i></term>
<term>A sequence of decimal digits from 0 through 9 that specify an exponent.</term>
</item>
<item>
<term><i>type</i></term>
<term>The 'UL', 'Ul', 'uL', 'ul', 'LU', 'Lu', 'lU', or 'lu', which is the
<a href="https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/language-specification/lexical-structure#6453-integer-literals">integral type suffix</a>
or 'f', 'F', 'd', 'D', 'm' or 'M' character, which is the
<a href="https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/language-specification/lexical-structure#6454-real-literals">real type suffix</a>
of the number as specified in the C# language specification. The type suffix can appear in <paramref name="s"/> if <paramref name="style"/>
includes the <see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/> flag. If <paramref name="style"/> includes the <see cref="F:J2N.Globalization.NumberStyle.AllowHexSpecifier"/>
flag, specifying the <see cref="F:J2N.Globalization.NumberStyle.AllowExponent"/> is required. Including an exponent in the string (prefixed with 'p' or 'P') is
required for the type suffix characters 'f', 'F', 'd', and 'D' since they would otherwise be interpreted as hexadecimal integral or fractional digits.</term>
</item>
</list>
<para/>
NOTE: Any terminating NUL (U+0000) characters in <paramref name="s"/> are ignored by the parsing operation, regardless of
the value of the <paramref name="style"/> argument.
<para/>
A string with decimal digits only (which corresponds to the <see cref="F:J2N.Globalization.NumberStyle.None"/> flag) always parses successfully.
Most of the remaining <see cref="T:J2N.Globalization.NumberStyle"/> members control elements that may be but are not required to be present in
this input string. The following table indicates how individual <see cref="T:J2N.Globalization.NumberStyle"/> members affect the elements that may
be present in <paramref name="s"/>.
<list type="table">
<listheader>
<term>Non-composite NumberStyle values</term>
<term>Elements permitted in <paramref name="s"/> in addition to digits</term>
</listheader>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.None"/></term>
<term>Decimal digits only.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowDecimalPoint"/></term>
<term>The decimal point (.) and <i>fractional-digits</i> elements. However, <i>fractional-digits</i> must consist
of only one or more 0 digits or the method returns <c>false</c>.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowExponent"/></term>
<term>The <paramref name="s"/> parameter can also use exponential notation. If <paramref name="s"/> represents a
number in exponential notation, it must represent an integer within the range of the <see cref="T:System.Int64"/> data type
without a non-zero, fractional component.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowLeadingWhite"/></term>
<term>The <i>ws</i> element at the beginning of <paramref name="s"/>.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowTrailingWhite"/></term>
<term>The <i>ws</i> element at the end of <paramref name="s"/>.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowLeadingSign"/></term>
<term>A sign can appear before <i>digits</i>.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowTrailingSign"/></term>
<term>A sign can appear after <i>digits</i>.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowParentheses"/></term>
<term>The <i>sign</i> element in the form of parentheses enclosing the numeric value.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowThousands"/></term>
<term>The thousands separator (,) element.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowCurrencySymbol"/></term>
<term>The <i>$</i> element.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/></term>
<term>The literal <i>type</i> suffix used in the literal identifier syntax of C# (suffixed with one of
'D', 'd', 'F', 'f', 'M', 'm', 'L', 'l', 'U', 'u', 'UL', 'ul', 'LU', or 'lu').</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.Currency"/></term>
<term>All elements. The <paramref name="s"/> parameter cannot represent a hexadecimal
number or a number in exponential notation (prefixed with an 'e' or 'E').</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.Float"/></term>
<term>The <i>ws</i> element at the beginning or end of <paramref name="s"/>, sign at
the beginning of <paramref name="s"/>, and the decimal point (.) symbol. The <paramref name="s"/>
parameter can also use exponential notation (prefixed with an 'e' or 'E').</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.HexFloat"/></term>
<term>The <i>ws</i> element at the beginning or end of <paramref name="s"/>, sign at
the beginning of <paramref name="s"/>, and the decimal point (.) symbol. The <paramref name="s"/>
parameter can also use exponential notation (prefixed with a 'p' or 'P').</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.Number"/></term>
<term>The <i>ws</i>, <i>sign</i>, thousands separator (,), and decimal point (.) elements.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.Any"/></term>
<term>All styles, except <paramref name="s"/> cannot represent a hexadecimal number.</term>
</item>
</list>
<para/>
The <see cref="T:J2N.Globalization.NumberStyle"/> enum can be converted to the .NET <see cref="T:System.Globalization.NumberStyles"/> enum by using the
<see cref="M:J2N.Globalization.NumberStyleExtensions.ToNumberStyles(J2N.Globalization.NumberStyle)"/> extension method.
Similarly, <see cref="T:System.Globalization.NumberStyles"/> enum can be converted to the J2N <see cref="T:J2N.Globalization.NumberStyle"/> enum by using
the <see cref="M:J2N.Globalization.NumberStyleExtensions.ToNumberStyle(System.Globalization.NumberStyles)"/> extension method.
<para/>
If the <see cref="F:J2N.Globalization.NumberStyle.AllowHexSpecifier"/> flag is used, <paramref name="s"/> must be a hexadecimal value which may include an optional 0x or 0X prefix.
For example, "0xC9AF3.8BD4C". This flag may be combined with any of the flags specified in <see cref="F:J2N.Globalization.NumberStyle.Float"/> and also
<see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/>. (The <see cref="T:J2N.Globalization.NumberStyle"/> enumeration has a composite style, <see cref="F:J2N.Globalization.NumberStyle.HexFloat"/>,
that includes all of those flags except <see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/>.)
<para/>
The <paramref name="provider"/> parameter is an <see cref="T:System.IFormatProvider"/> implementation, such as a <see cref="T:System.Globalization.CultureInfo"/> object,
a <see cref="T:System.Globalization.NumberFormatInfo"/> object or a <see cref="T:J2N.Text.StringFormatter"/> object, whose <see cref="M:System.IFormatProvider.GetFormat(System.Type)"/>
method returns a <see cref="T:System.Globalization.NumberFormatInfo"/> object. The <see cref="T:System.Globalization.NumberFormatInfo"/> object provides culture-specific information about
the format of <paramref name="s"/>. When the <see cref="M:J2N.Numerics.Double.Parse(System.String,System.IFormatProvider)"/> method is invoked, it calls the provider parameter's
<see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> method and passes it a <see cref="T:System.Type"/> object that represents the <see cref="T:System.Globalization.NumberFormatInfo"/> type.
The <see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> method then returns the <see cref="T:System.Globalization.NumberFormatInfo"/> object that provides information about the
format of the <paramref name="s"/> parameter. There are three ways to use the <paramref name="provider"/> parameter to supply custom formatting
information to the parse operation:
<list type="bullet">
<item><description>You can pass a <see cref="T:System.Globalization.CultureInfo"/> object that represents the culture that supplies formatting information. Its
<see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> method returns the <see cref="T:System.Globalization.NumberFormatInfo"/> object that provides numeric formatting
information for that culture.</description></item>
<item><description>You can pass the actual <see cref="T:System.Globalization.NumberFormatInfo"/> object that provides numeric formatting information. (Its
implementation of <see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> just returns itself.)</description></item>
<item><description>You can pass a custom object that implements <see cref="T:System.IFormatProvider"/>. Its <see cref="M:System.IFormatProvider.GetFormat(System.Type)"/>
method instantiates and returns the <see cref="T:System.Globalization.NumberFormatInfo"/> object that provides formatting information.</description></item>
</list>
If <paramref name="provider"/> is <c>null</c> or a <see cref="T:System.Globalization.NumberFormatInfo"/> object cannot be obtained, the <see cref="T:System.Globalization.NumberFormatInfo"/>
object for the current culture is used.
<para/>
If <paramref name="s"/> is out of range of the <see cref="T:System.Double"/> data type, the method returns <see cref="F:System.Double.NegativeInfinity"/> if
<paramref name="s"/> is less than <see cref="F:System.Double.MinValue"/> and <see cref="F:System.Double.PositiveInfinity"/> if <paramref name="s"/> is greater
than <see cref="F:System.Double.MaxValue"/>.
<para/>
If a separator is encountered in the <paramref name="s"/> parameter during a parse operation, and the applicable currency or number
decimal and group separators are the same, the parse operation assumes that the separator is a decimal separator rather than a group
separator. For more information about separators, see <see cref="P:System.Globalization.NumberFormatInfo.CurrencyDecimalSeparator"/>,
<see cref="P:System.Globalization.NumberFormatInfo.NumberDecimalSeparator"/>, <see cref="P:System.Globalization.NumberFormatInfo.CurrencyGroupSeparator"/>, and
<see cref="P:System.Globalization.NumberFormatInfo.NumberGroupSeparator"/>.
</remarks>
<seealso cref="M:J2N.Numerics.Double.GetInstance(System.String,J2N.Globalization.NumberStyle,System.IFormatProvider)"/>
<seealso cref="M:J2N.Numerics.Double.TryParse(System.ReadOnlySpan{System.Char},J2N.Globalization.NumberStyle,System.IFormatProvider,System.Double@)"/>
</member>
<member name="M:J2N.Numerics.Double.TryParse(System.String,J2N.Globalization.NumberStyle,System.IFormatProvider,System.Double@)">
<summary>
Converts the string representation of a number in a specified style and culture-specific format to
its double-precision floating-point number equivalent. A return value indicates whether the
conversion succeeded or failed.
<para/>
Usage Note: To approximately match the behavior of the JDK for decimal numbers, use <see cref="F:J2N.Globalization.NumberStyle.Float"/> combined with
<see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/> for <paramref name="style"/> and <see cref="P:System.Globalization.NumberFormatInfo.InvariantInfo"/> for <paramref name="provider"/>.
To approximately match the behavior of the JDK for hexadecimal numbers, use <see cref="F:J2N.Globalization.NumberStyle.HexFloat"/> combined with
<see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/> for <paramref name="style"/> and <see cref="P:System.Globalization.NumberFormatInfo.InvariantInfo"/> for <paramref name="provider"/>.
These options will parse any number that is supported by Java, but the hex specifier, exponent, and type suffix are all optional.
</summary>
<param name="s">A string representing a number to convert.</param>
<param name="style">A bitwise combination of enumeration values that indicates the style elements
that can be present in <paramref name="s"/>. Typical values to specify is <see cref="F:J2N.Globalization.NumberStyle.Float"/>
combined with <see cref="F:J2N.Globalization.NumberStyle.AllowThousands"/> or, in the case of hexadecimal numbers,
<see cref="F:J2N.Globalization.NumberStyle.HexFloat"/>.</param>
<param name="provider">An object that supplies culture-specific formatting information about <paramref name="s"/>.</param>
<param name="result">When this method returns, contains the double-precision floating-point number equivalent to the
numeric value or symbol contained in <paramref name="s"/>, if the conversion succeeded, or zero if the conversion failed.
The conversion fails if the <paramref name="s"/> parameter is <c>null</c> or <see cref="F:System.String.Empty"/>, is not in a format
compliant with <paramref name="style"/>, or if <paramref name="style"/> is not a valid combination of <see cref="T:J2N.Globalization.NumberStyle"/>
enumeration constants. This parameter is passed uninitialized; any value originally supplied in result will be overwritten.</param>
<returns><c>true</c> if <paramref name="s"/> was converted successfully; otherwise, <c>false</c>.</returns>
<exception cref="T:System.ArgumentException">
<paramref name="style"/> is not a <see cref="T:J2N.Globalization.NumberStyle"/> value.
<para/>
-or-
<para/>
<paramref name="style"/> is not a combination of <see cref="F:J2N.Globalization.NumberStyle.AllowHexSpecifier"/>, <see cref="F:J2N.Globalization.NumberStyle.HexFloat"/>
and <see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/> values.
<para/>
-or-
<para/>
<paramref name="style"/> has <see cref="F:J2N.Globalization.NumberStyle.AllowHexSpecifier"/> and <see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/> values
but not <see cref="F:J2N.Globalization.NumberStyle.AllowExponent"/>. When type suffix is supplied in a hexadecimal number, exponent (prefixed with a
p or P) is required.
<para/>
-or-
<para/>
<paramref name="style"/> is a combination of <see cref="F:J2N.Globalization.NumberStyle.AllowCurrencySymbol"/> and <see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/>.
</exception>
<remarks>
In .NET Core 3.0 and later, values that are too large to represent are rounded to <see cref="F:System.Double.PositiveInfinity"/> or
<see cref="F:System.Double.NegativeInfinity"/> as required by the IEEE 754 specification. In prior versions, including .NET Framework, parsing a
value that was too large to represent resulted in failure. This implementation uses the new parser, but patches it back to .NET Framework 4.0
and upgrades it to support Java's hexadecimal floating point format.
<para/>
This overload differs from the <see cref="M:J2N.Numerics.Double.Parse(System.String,J2N.Globalization.NumberStyle,System.IFormatProvider)"/> method by returning a Boolean value that indicates
whether the parse operation succeeded instead of returning the parsed numeric value. It eliminates the need to use exception handling to test
for a <see cref="T:System.FormatException"/> in the event that <paramref name="s"/> is invalid and cannot be successfully parsed.
<para/>
The <paramref name="style"/> parameter defines the style elements (such as white space, thousands separators, and currency symbols) that
are allowed in the s parameter for the parse operation to succeed. It must be a combination of bit flags from the <see cref="T:J2N.Globalization.NumberStyle"/> enumeration.
<para/>
The <paramref name="s"/> parameter can contain <see cref="P:System.Globalization.NumberFormatInfo.PositiveInfinitySymbol"/>, <see cref="P:System.Globalization.NumberFormatInfo.NegativeInfinitySymbol"/>, or
<see cref="P:System.Globalization.NumberFormatInfo.NaNSymbol"/> for the culture specified by <paramref name="provider"/>. Depending on the value of <paramref name="style"/>,
it can also take one of the following forms:
<para/>
[ws] [$] [sign][integral-digits,]integral-digits[.[fractional-digits]][E[sign]exponential-digits][type][ws]
<para/>
Or, if <paramref name="style"/> includes <see cref="F:J2N.Globalization.NumberStyle.AllowHexSpecifier"/>:
<para/>
[ws] [$] [sign][0x][hexdigits,]hexdigits[.[fractional-hexdigits]][P[sign]exponential-digits][type][ws]
<para/>
Elements framed in square brackets ([ and ]) are optional. The following table describes each element.
<para/>
<list type="table">
<listheader>
<term>Element</term>
<term>Description</term>
</listheader>
<item>
<term><i>ws</i></term>
<term>A series of white-space characters. White space can appear at the beginning of <paramref name="s"/> if style includes the
<see cref="F:J2N.Globalization.NumberStyle.AllowLeadingWhite"/> flag, and it can appear at the end of <paramref name="s"/> if style includes the
<see cref="F:J2N.Globalization.NumberStyle.AllowTrailingWhite"/> flag.</term>
</item>
<item>
<term><i>$</i></term>
<term>A culture-specific currency symbol. Its position in the string is defined by the <see cref="P:System.Globalization.NumberFormatInfo.CurrencyNegativePattern"/>
and <see cref="P:System.Globalization.NumberFormatInfo.CurrencyPositivePattern"/> properties of the <see cref="T:System.Globalization.NumberFormatInfo"/> object returned by the
<see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> method of the <paramref name="provider"/> parameter. The current culture's currency symbol can
appear in <paramref name="s"/> if style includes the <see cref="F:J2N.Globalization.NumberStyle.AllowCurrencySymbol"/> flag.</term>
</item>
<item>
<term><i>sign</i></term>
<term>A negative sign symbol (-) or a positive sign symbol (+). The sign can appear at the beginning of <paramref name="s"/> if
<paramref name="style"/> includes the <see cref="F:J2N.Globalization.NumberStyle.AllowLeadingSign"/> flag, and it can appear at the end of <paramref name="s"/>
if <paramref name="style"/> includes the <see cref="F:J2N.Globalization.NumberStyle.AllowTrailingSign"/> flag. Parentheses can be used in <paramref name="s"/>
to indicate a negative value if <paramref name="style"/> includes the <see cref="F:J2N.Globalization.NumberStyle.AllowParentheses"/> flag.</term>
</item>
<item>
<term><i>integral-digits</i></term>
<term>A series of digits ranging from 0 to 9 that specify the integral part of the number. The <i>integral-digits</i> element can be absent
if the string contains the <i>fractional-digits</i> element.</term>
</item>
<item>
<term><i>0x</i>/></term>
<term>The '0x' or '0X' characters, which indicate a hexadecimal number is to immediately follow.</term>
</item>
<item>
<term><i>hexdigits</i></term>
<term>A sequence of hexadecimal digits from 0 through f, or 0 through F that specify the integral part of the number. The <i>hexdigits</i>
element can be absent if the string contains the <i>fractional-hexdigits</i> element. Hexadecimal digits can appear in <paramref name="s"/>
if <paramref name="style"/> includes the <see cref="F:J2N.Globalization.NumberStyle.AllowHexSpecifier"/> flag.</term>
</item>
<item>
<term><i>,</i></term>
<term>A culture-specific thousands separator. The thousands separator of the culture specified by <paramref name="provider"/>
can appear in <paramref name="s"/> if <paramref name="style"/> includes the <see cref="F:J2N.Globalization.NumberStyle.AllowThousands"/> flag.</term>
</item>
<item>
<term><i>.</i></term>
<term>A culture-specific decimal point symbol. The decimal point symbol of the culture specified by <paramref name="provider"/>
can appear in <paramref name="s"/> if <paramref name="style"/> includes the <see cref="F:J2N.Globalization.NumberStyle.AllowDecimalPoint"/> flag.</term>
</item>
<item>
<term><i>fractional-digits</i>
</term>
<term>A series of digits ranging from 0 to 9 that specify the fractional part of the number. Fractional digits can appear in
<paramref name="s"/> if <paramref name="style"/> includes the <see cref="F:J2N.Globalization.NumberStyle.AllowDecimalPoint"/> flag.</term>
</item>
<item>
<term><i>fractional-hexdigits</i>
</term>
<term>A sequence of hexadecimal digits from 0 through f, or 0 through F that specify the fractional part of the number.
Fractional digits can appear in <paramref name="s"/> if <paramref name="style"/> includes both the
<see cref="F:J2N.Globalization.NumberStyle.AllowDecimalPoint"/> and <see cref="F:J2N.Globalization.NumberStyle.AllowHexSpecifier"/> flags.</term>
</item>
<item>
<term><i>e</i></term>
<term>The 'e' or 'E' character, which indicates that the value is represented in exponential notation. The <paramref name="s"/>
parameter can represent a number in exponential notation if style includes the <see cref="F:J2N.Globalization.NumberStyle.AllowExponent"/> flag.</term>
</item>
<item>
<term><i>p</i></term>
<term>The 'p' or 'P' character, which indicates that the hexadecimal value is represented in exponential notation. The <paramref name="s"/>
parameter can represent a hexadecimal number in exponential notation if style includes both the <see cref="F:J2N.Globalization.NumberStyle.AllowExponent"/>
and <see cref="F:J2N.Globalization.NumberStyle.AllowHexSpecifier"/> flags.</term>
</item>
<item>
<term><i>exponential-digits</i></term>
<term>A sequence of decimal digits from 0 through 9 that specify an exponent.</term>
</item>
<item>
<term><i>type</i></term>
<term>The 'UL', 'Ul', 'uL', 'ul', 'LU', 'Lu', 'lU', or 'lu', which is the
<a href="https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/language-specification/lexical-structure#6453-integer-literals">integral type suffix</a>
or 'f', 'F', 'd', 'D', 'm' or 'M' character, which is the
<a href="https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/language-specification/lexical-structure#6454-real-literals">real type suffix</a>
of the number as specified in the C# language specification. The type suffix can appear in <paramref name="s"/> if <paramref name="style"/>
includes the <see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/> flag. If <paramref name="style"/> includes the <see cref="F:J2N.Globalization.NumberStyle.AllowHexSpecifier"/>
flag, specifying the <see cref="F:J2N.Globalization.NumberStyle.AllowExponent"/> is required. Including an exponent in the string (prefixed with 'p' or 'P') is
required for the type suffix characters 'f', 'F', 'd', and 'D' since they would otherwise be interpreted as hexadecimal integral or fractional digits.</term>
</item>
</list>
<para/>
NOTE: Any terminating NUL (U+0000) characters in <paramref name="s"/> are ignored by the parsing operation, regardless of
the value of the <paramref name="style"/> argument.
<para/>
A string with decimal digits only (which corresponds to the <see cref="F:J2N.Globalization.NumberStyle.None"/> flag) always parses successfully.
Most of the remaining <see cref="T:J2N.Globalization.NumberStyle"/> members control elements that may be but are not required to be present in
this input string. The following table indicates how individual <see cref="T:J2N.Globalization.NumberStyle"/> members affect the elements that may
be present in <paramref name="s"/>.
<list type="table">
<listheader>
<term>Non-composite NumberStyle values</term>
<term>Elements permitted in <paramref name="s"/> in addition to digits</term>
</listheader>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.None"/></term>
<term>Decimal digits only.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowDecimalPoint"/></term>
<term>The decimal point (.) and <i>fractional-digits</i> elements. However, <i>fractional-digits</i> must consist
of only one or more 0 digits or the method returns <c>false</c>.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowExponent"/></term>
<term>The <paramref name="s"/> parameter can also use exponential notation. If <paramref name="s"/> represents a
number in exponential notation, it must represent an integer within the range of the <see cref="T:System.Int64"/> data type
without a non-zero, fractional component.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowLeadingWhite"/></term>
<term>The <i>ws</i> element at the beginning of <paramref name="s"/>.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowTrailingWhite"/></term>
<term>The <i>ws</i> element at the end of <paramref name="s"/>.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowLeadingSign"/></term>
<term>A sign can appear before <i>digits</i>.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowTrailingSign"/></term>
<term>A sign can appear after <i>digits</i>.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowParentheses"/></term>
<term>The <i>sign</i> element in the form of parentheses enclosing the numeric value.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowThousands"/></term>
<term>The thousands separator (,) element.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowCurrencySymbol"/></term>
<term>The <i>$</i> element.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/></term>
<term>The literal <i>type</i> suffix used in the literal identifier syntax of C# (suffixed with one of
'D', 'd', 'F', 'f', 'M', 'm', 'L', 'l', 'U', 'u', 'UL', 'ul', 'LU', or 'lu').</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.Currency"/></term>
<term>All elements. The <paramref name="s"/> parameter cannot represent a hexadecimal
number or a number in exponential notation (prefixed with an 'e' or 'E').</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.Float"/></term>
<term>The <i>ws</i> element at the beginning or end of <paramref name="s"/>, sign at
the beginning of <paramref name="s"/>, and the decimal point (.) symbol. The <paramref name="s"/>
parameter can also use exponential notation (prefixed with an 'e' or 'E').</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.HexFloat"/></term>
<term>The <i>ws</i> element at the beginning or end of <paramref name="s"/>, sign at
the beginning of <paramref name="s"/>, and the decimal point (.) symbol. The <paramref name="s"/>
parameter can also use exponential notation (prefixed with a 'p' or 'P').</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.Number"/></term>
<term>The <i>ws</i>, <i>sign</i>, thousands separator (,), and decimal point (.) elements.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.Any"/></term>
<term>All styles, except <paramref name="s"/> cannot represent a hexadecimal number.</term>
</item>
</list>
<para/>
The <see cref="T:J2N.Globalization.NumberStyle"/> enum can be converted to the .NET <see cref="T:System.Globalization.NumberStyles"/> enum by using the
<see cref="M:J2N.Globalization.NumberStyleExtensions.ToNumberStyles(J2N.Globalization.NumberStyle)"/> extension method.
Similarly, <see cref="T:System.Globalization.NumberStyles"/> enum can be converted to the J2N <see cref="T:J2N.Globalization.NumberStyle"/> enum by using
the <see cref="M:J2N.Globalization.NumberStyleExtensions.ToNumberStyle(System.Globalization.NumberStyles)"/> extension method.
<para/>
If the <see cref="F:J2N.Globalization.NumberStyle.AllowHexSpecifier"/> flag is used, <paramref name="s"/> must be a hexadecimal value which may include an optional 0x or 0X prefix.
For example, "0xC9AF3.8BD4C". This flag may be combined with any of the flags specified in <see cref="F:J2N.Globalization.NumberStyle.Float"/> and also
<see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/>. (The <see cref="T:J2N.Globalization.NumberStyle"/> enumeration has a composite style, <see cref="F:J2N.Globalization.NumberStyle.HexFloat"/>,
that includes all of those flags except <see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/>.)
<para/>
The <paramref name="provider"/> parameter is an <see cref="T:System.IFormatProvider"/> implementation, such as a <see cref="T:System.Globalization.CultureInfo"/> object,
a <see cref="T:System.Globalization.NumberFormatInfo"/> object or a <see cref="T:J2N.Text.StringFormatter"/> object, whose <see cref="M:System.IFormatProvider.GetFormat(System.Type)"/>
method returns a <see cref="T:System.Globalization.NumberFormatInfo"/> object. The <see cref="T:System.Globalization.NumberFormatInfo"/> object provides culture-specific information about
the format of <paramref name="s"/>. When the <see cref="M:J2N.Numerics.Double.Parse(System.String,System.IFormatProvider)"/> method is invoked, it calls the provider parameter's
<see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> method and passes it a <see cref="T:System.Type"/> object that represents the <see cref="T:System.Globalization.NumberFormatInfo"/> type.
The <see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> method then returns the <see cref="T:System.Globalization.NumberFormatInfo"/> object that provides information about the
format of the <paramref name="s"/> parameter. There are three ways to use the <paramref name="provider"/> parameter to supply custom formatting
information to the parse operation:
<list type="bullet">
<item><description>You can pass a <see cref="T:System.Globalization.CultureInfo"/> object that represents the culture that supplies formatting information. Its
<see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> method returns the <see cref="T:System.Globalization.NumberFormatInfo"/> object that provides numeric formatting
information for that culture.</description></item>
<item><description>You can pass the actual <see cref="T:System.Globalization.NumberFormatInfo"/> object that provides numeric formatting information. (Its
implementation of <see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> just returns itself.)</description></item>
<item><description>You can pass a custom object that implements <see cref="T:System.IFormatProvider"/>. Its <see cref="M:System.IFormatProvider.GetFormat(System.Type)"/>
method instantiates and returns the <see cref="T:System.Globalization.NumberFormatInfo"/> object that provides formatting information.</description></item>
</list>
If <paramref name="provider"/> is <c>null</c> or a <see cref="T:System.Globalization.NumberFormatInfo"/> object cannot be obtained, the <see cref="T:System.Globalization.NumberFormatInfo"/>
object for the current culture is used.
<para/>
If <paramref name="s"/> is out of range of the <see cref="T:System.Double"/> data type, the method returns <see cref="F:System.Double.NegativeInfinity"/> if
<paramref name="s"/> is less than <see cref="F:System.Double.MinValue"/> and <see cref="F:System.Double.PositiveInfinity"/> if <paramref name="s"/> is greater
than <see cref="F:System.Double.MaxValue"/>.
<para/>
If a separator is encountered in the <paramref name="s"/> parameter during a parse operation, and the applicable currency or number
decimal and group separators are the same, the parse operation assumes that the separator is a decimal separator rather than a group
separator. For more information about separators, see <see cref="P:System.Globalization.NumberFormatInfo.CurrencyDecimalSeparator"/>,
<see cref="P:System.Globalization.NumberFormatInfo.NumberDecimalSeparator"/>, <see cref="P:System.Globalization.NumberFormatInfo.CurrencyGroupSeparator"/>, and
<see cref="P:System.Globalization.NumberFormatInfo.NumberGroupSeparator"/>.
</remarks>
</member>
<member name="M:J2N.Numerics.Double.TryParse(System.ReadOnlySpan{System.Char},J2N.Globalization.NumberStyle,System.IFormatProvider,System.Double@)">
<summary>
Converts the span representation of a number in a specified style and culture-specific format to
its double-precision floating-point number equivalent. A return value indicates whether the
conversion succeeded or failed.
<para/>
Usage Note: To approximately match the behavior of the JDK for decimal numbers, use <see cref="F:J2N.Globalization.NumberStyle.Float"/> combined with
<see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/> for <paramref name="style"/> and <see cref="P:System.Globalization.NumberFormatInfo.InvariantInfo"/> for <paramref name="provider"/>.
To approximately match the behavior of the JDK for hexadecimal numbers, use <see cref="F:J2N.Globalization.NumberStyle.HexFloat"/> combined with
<see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/> for <paramref name="style"/> and <see cref="P:System.Globalization.NumberFormatInfo.InvariantInfo"/> for <paramref name="provider"/>.
These options will parse any number that is supported by Java, but the hex specifier, exponent, and type suffix are all optional.
</summary>
<param name="s">A read-only character span that contains the number to convert. The span is interpreted using the style specified
by <paramref name="style"/>.</param>
<param name="style">A bitwise combination of enumeration values that indicates the style elements
that can be present in <paramref name="s"/>. Typical values to specify is <see cref="F:J2N.Globalization.NumberStyle.Float"/>
combined with <see cref="F:J2N.Globalization.NumberStyle.AllowThousands"/> or, in the case of hexadecimal numbers,
<see cref="F:J2N.Globalization.NumberStyle.HexFloat"/>.</param>
<param name="provider">An object that supplies culture-specific formatting information about <paramref name="s"/>.</param>
<param name="result">When this method returns, contains the double-precision floating-point number equivalent to the
numeric value or symbol contained in <paramref name="s"/>, if the conversion succeeded, or zero if the conversion failed.
The conversion fails if the <paramref name="s"/> parameter is <c>null</c> or <see cref="F:System.String.Empty"/>, is not in a format
compliant with <paramref name="style"/>, or if <paramref name="style"/> is not a valid combination of <see cref="T:J2N.Globalization.NumberStyle"/>
enumeration constants. This parameter is passed uninitialized; any value originally supplied in result will be overwritten.</param>
<returns><c>true</c> if <paramref name="s"/> was converted successfully; otherwise, <c>false</c>.</returns>
<exception cref="T:System.ArgumentException">
<paramref name="style"/> is not a <see cref="T:J2N.Globalization.NumberStyle"/> value.
<para/>
-or-
<para/>
<paramref name="style"/> is not a combination of <see cref="F:J2N.Globalization.NumberStyle.AllowHexSpecifier"/>, <see cref="F:J2N.Globalization.NumberStyle.HexFloat"/>
and <see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/> values.
<para/>
-or-
<para/>
<paramref name="style"/> has <see cref="F:J2N.Globalization.NumberStyle.AllowHexSpecifier"/> and <see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/> values
but not <see cref="F:J2N.Globalization.NumberStyle.AllowExponent"/>. When type suffix is supplied in a hexadecimal number, exponent (prefixed with a
p or P) is required.
<para/>
-or-
<para/>
<paramref name="style"/> is a combination of <see cref="F:J2N.Globalization.NumberStyle.AllowCurrencySymbol"/> and <see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/>.
</exception>
<remarks>
In .NET Core 3.0 and later, values that are too large to represent are rounded to <see cref="F:System.Double.PositiveInfinity"/> or
<see cref="F:System.Double.NegativeInfinity"/> as required by the IEEE 754 specification. In prior versions, including .NET Framework, parsing a
value that was too large to represent resulted in failure. This implementation uses the new parser, but patches it back to .NET Framework 4.0
and upgrades it to support Java's hexadecimal floating point format.
<para/>
This overload differs from the <see cref="M:J2N.Numerics.Double.Parse(System.String,J2N.Globalization.NumberStyle,System.IFormatProvider)"/> method by returning a Boolean value that indicates
whether the parse operation succeeded instead of returning the parsed numeric value. It eliminates the need to use exception handling to test
for a <see cref="T:System.FormatException"/> in the event that <paramref name="s"/> is invalid and cannot be successfully parsed.
<para/>
The <paramref name="style"/> parameter defines the style elements (such as white space, thousands separators, and currency symbols) that
are allowed in the s parameter for the parse operation to succeed. It must be a combination of bit flags from the <see cref="T:J2N.Globalization.NumberStyle"/> enumeration.
<para/>
The <paramref name="s"/> parameter can contain <see cref="P:System.Globalization.NumberFormatInfo.PositiveInfinitySymbol"/>, <see cref="P:System.Globalization.NumberFormatInfo.NegativeInfinitySymbol"/>, or
<see cref="P:System.Globalization.NumberFormatInfo.NaNSymbol"/> for the culture specified by <paramref name="provider"/>. Depending on the value of <paramref name="style"/>,
it can also take one of the following forms:
<para/>
[ws] [$] [sign][integral-digits,]integral-digits[.[fractional-digits]][E[sign]exponential-digits][type][ws]
<para/>
Or, if <paramref name="style"/> includes <see cref="F:J2N.Globalization.NumberStyle.AllowHexSpecifier"/>:
<para/>
[ws] [$] [sign][0x][hexdigits,]hexdigits[.[fractional-hexdigits]][P[sign]exponential-digits][type][ws]
<para/>
Elements framed in square brackets ([ and ]) are optional. The following table describes each element.
<para/>
<list type="table">
<listheader>
<term>Element</term>
<term>Description</term>
</listheader>
<item>
<term><i>ws</i></term>
<term>A series of white-space characters. White space can appear at the beginning of <paramref name="s"/> if style includes the
<see cref="F:J2N.Globalization.NumberStyle.AllowLeadingWhite"/> flag, and it can appear at the end of <paramref name="s"/> if style includes the
<see cref="F:J2N.Globalization.NumberStyle.AllowTrailingWhite"/> flag.</term>
</item>
<item>
<term><i>$</i></term>
<term>A culture-specific currency symbol. Its position in the string is defined by the <see cref="P:System.Globalization.NumberFormatInfo.CurrencyNegativePattern"/>
and <see cref="P:System.Globalization.NumberFormatInfo.CurrencyPositivePattern"/> properties of the <see cref="T:System.Globalization.NumberFormatInfo"/> object returned by the
<see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> method of the <paramref name="provider"/> parameter. The current culture's currency symbol can
appear in <paramref name="s"/> if style includes the <see cref="F:J2N.Globalization.NumberStyle.AllowCurrencySymbol"/> flag.</term>
</item>
<item>
<term><i>sign</i></term>
<term>A negative sign symbol (-) or a positive sign symbol (+). The sign can appear at the beginning of <paramref name="s"/> if
<paramref name="style"/> includes the <see cref="F:J2N.Globalization.NumberStyle.AllowLeadingSign"/> flag, and it can appear at the end of <paramref name="s"/>
if <paramref name="style"/> includes the <see cref="F:J2N.Globalization.NumberStyle.AllowTrailingSign"/> flag. Parentheses can be used in <paramref name="s"/>
to indicate a negative value if <paramref name="style"/> includes the <see cref="F:J2N.Globalization.NumberStyle.AllowParentheses"/> flag.</term>
</item>
<item>
<term><i>integral-digits</i></term>
<term>A series of digits ranging from 0 to 9 that specify the integral part of the number. The <i>integral-digits</i> element can be absent
if the string contains the <i>fractional-digits</i> element.</term>
</item>
<item>
<term><i>0x</i>/></term>
<term>The '0x' or '0X' characters, which indicate a hexadecimal number is to immediately follow.</term>
</item>
<item>
<term><i>hexdigits</i></term>
<term>A sequence of hexadecimal digits from 0 through f, or 0 through F that specify the integral part of the number. The <i>hexdigits</i>
element can be absent if the string contains the <i>fractional-hexdigits</i> element. Hexadecimal digits can appear in <paramref name="s"/>
if <paramref name="style"/> includes the <see cref="F:J2N.Globalization.NumberStyle.AllowHexSpecifier"/> flag.</term>
</item>
<item>
<term><i>,</i></term>
<term>A culture-specific thousands separator. The thousands separator of the culture specified by <paramref name="provider"/>
can appear in <paramref name="s"/> if <paramref name="style"/> includes the <see cref="F:J2N.Globalization.NumberStyle.AllowThousands"/> flag.</term>
</item>
<item>
<term><i>.</i></term>
<term>A culture-specific decimal point symbol. The decimal point symbol of the culture specified by <paramref name="provider"/>
can appear in <paramref name="s"/> if <paramref name="style"/> includes the <see cref="F:J2N.Globalization.NumberStyle.AllowDecimalPoint"/> flag.</term>
</item>
<item>
<term><i>fractional-digits</i>
</term>
<term>A series of digits ranging from 0 to 9 that specify the fractional part of the number. Fractional digits can appear in
<paramref name="s"/> if <paramref name="style"/> includes the <see cref="F:J2N.Globalization.NumberStyle.AllowDecimalPoint"/> flag.</term>
</item>
<item>
<term><i>fractional-hexdigits</i>
</term>
<term>A sequence of hexadecimal digits from 0 through f, or 0 through F that specify the fractional part of the number.
Fractional digits can appear in <paramref name="s"/> if <paramref name="style"/> includes both the
<see cref="F:J2N.Globalization.NumberStyle.AllowDecimalPoint"/> and <see cref="F:J2N.Globalization.NumberStyle.AllowHexSpecifier"/> flags.</term>
</item>
<item>
<term><i>e</i></term>
<term>The 'e' or 'E' character, which indicates that the value is represented in exponential notation. The <paramref name="s"/>
parameter can represent a number in exponential notation if style includes the <see cref="F:J2N.Globalization.NumberStyle.AllowExponent"/> flag.</term>
</item>
<item>
<term><i>p</i></term>
<term>The 'p' or 'P' character, which indicates that the hexadecimal value is represented in exponential notation. The <paramref name="s"/>
parameter can represent a hexadecimal number in exponential notation if style includes both the <see cref="F:J2N.Globalization.NumberStyle.AllowExponent"/>
and <see cref="F:J2N.Globalization.NumberStyle.AllowHexSpecifier"/> flags.</term>
</item>
<item>
<term><i>exponential-digits</i></term>
<term>A sequence of decimal digits from 0 through 9 that specify an exponent.</term>
</item>
<item>
<term><i>type</i></term>
<term>The 'UL', 'Ul', 'uL', 'ul', 'LU', 'Lu', 'lU', or 'lu', which is the
<a href="https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/language-specification/lexical-structure#6453-integer-literals">integral type suffix</a>
or 'f', 'F', 'd', 'D', 'm' or 'M' character, which is the
<a href="https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/language-specification/lexical-structure#6454-real-literals">real type suffix</a>
of the number as specified in the C# language specification. The type suffix can appear in <paramref name="s"/> if <paramref name="style"/>
includes the <see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/> flag. If <paramref name="style"/> includes the <see cref="F:J2N.Globalization.NumberStyle.AllowHexSpecifier"/>
flag, specifying the <see cref="F:J2N.Globalization.NumberStyle.AllowExponent"/> is required. Including an exponent in the string (prefixed with 'p' or 'P') is
required for the type suffix characters 'f', 'F', 'd', and 'D' since they would otherwise be interpreted as hexadecimal integral or fractional digits.</term>
</item>
</list>
<para/>
NOTE: Any terminating NUL (U+0000) characters in <paramref name="s"/> are ignored by the parsing operation, regardless of
the value of the <paramref name="style"/> argument.
<para/>
A string with decimal digits only (which corresponds to the <see cref="F:J2N.Globalization.NumberStyle.None"/> flag) always parses successfully.
Most of the remaining <see cref="T:J2N.Globalization.NumberStyle"/> members control elements that may be but are not required to be present in
this input string. The following table indicates how individual <see cref="T:J2N.Globalization.NumberStyle"/> members affect the elements that may
be present in <paramref name="s"/>.
<list type="table">
<listheader>
<term>Non-composite NumberStyle values</term>
<term>Elements permitted in <paramref name="s"/> in addition to digits</term>
</listheader>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.None"/></term>
<term>Decimal digits only.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowDecimalPoint"/></term>
<term>The decimal point (.) and <i>fractional-digits</i> elements. However, <i>fractional-digits</i> must consist
of only one or more 0 digits or the method returns <c>false</c>.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowExponent"/></term>
<term>The <paramref name="s"/> parameter can also use exponential notation. If <paramref name="s"/> represents a
number in exponential notation, it must represent an integer within the range of the <see cref="T:System.Int64"/> data type
without a non-zero, fractional component.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowLeadingWhite"/></term>
<term>The <i>ws</i> element at the beginning of <paramref name="s"/>.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowTrailingWhite"/></term>
<term>The <i>ws</i> element at the end of <paramref name="s"/>.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowLeadingSign"/></term>
<term>A sign can appear before <i>digits</i>.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowTrailingSign"/></term>
<term>A sign can appear after <i>digits</i>.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowParentheses"/></term>
<term>The <i>sign</i> element in the form of parentheses enclosing the numeric value.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowThousands"/></term>
<term>The thousands separator (,) element.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowCurrencySymbol"/></term>
<term>The <i>$</i> element.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/></term>
<term>The literal <i>type</i> suffix used in the literal identifier syntax of C# (suffixed with one of
'D', 'd', 'F', 'f', 'M', 'm', 'L', 'l', 'U', 'u', 'UL', 'ul', 'LU', or 'lu').</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.Currency"/></term>
<term>All elements. The <paramref name="s"/> parameter cannot represent a hexadecimal
number or a number in exponential notation (prefixed with an 'e' or 'E').</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.Float"/></term>
<term>The <i>ws</i> element at the beginning or end of <paramref name="s"/>, sign at
the beginning of <paramref name="s"/>, and the decimal point (.) symbol. The <paramref name="s"/>
parameter can also use exponential notation (prefixed with an 'e' or 'E').</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.HexFloat"/></term>
<term>The <i>ws</i> element at the beginning or end of <paramref name="s"/>, sign at
the beginning of <paramref name="s"/>, and the decimal point (.) symbol. The <paramref name="s"/>
parameter can also use exponential notation (prefixed with a 'p' or 'P').</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.Number"/></term>
<term>The <i>ws</i>, <i>sign</i>, thousands separator (,), and decimal point (.) elements.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.Any"/></term>
<term>All styles, except <paramref name="s"/> cannot represent a hexadecimal number.</term>
</item>
</list>
<para/>
The <see cref="T:J2N.Globalization.NumberStyle"/> enum can be converted to the .NET <see cref="T:System.Globalization.NumberStyles"/> enum by using the
<see cref="M:J2N.Globalization.NumberStyleExtensions.ToNumberStyles(J2N.Globalization.NumberStyle)"/> extension method.
Similarly, <see cref="T:System.Globalization.NumberStyles"/> enum can be converted to the J2N <see cref="T:J2N.Globalization.NumberStyle"/> enum by using
the <see cref="M:J2N.Globalization.NumberStyleExtensions.ToNumberStyle(System.Globalization.NumberStyles)"/> extension method.
<para/>
If the <see cref="F:J2N.Globalization.NumberStyle.AllowHexSpecifier"/> flag is used, <paramref name="s"/> must be a hexadecimal value which may include an optional 0x or 0X prefix.
For example, "0xC9AF3.8BD4C". This flag may be combined with any of the flags specified in <see cref="F:J2N.Globalization.NumberStyle.Float"/> and also
<see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/>. (The <see cref="T:J2N.Globalization.NumberStyle"/> enumeration has a composite style, <see cref="F:J2N.Globalization.NumberStyle.HexFloat"/>,
that includes all of those flags except <see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/>.)
<para/>
The <paramref name="provider"/> parameter is an <see cref="T:System.IFormatProvider"/> implementation, such as a <see cref="T:System.Globalization.CultureInfo"/> object,
a <see cref="T:System.Globalization.NumberFormatInfo"/> object or a <see cref="T:J2N.Text.StringFormatter"/> object, whose <see cref="M:System.IFormatProvider.GetFormat(System.Type)"/>
method returns a <see cref="T:System.Globalization.NumberFormatInfo"/> object. The <see cref="T:System.Globalization.NumberFormatInfo"/> object provides culture-specific information about
the format of <paramref name="s"/>. When the <see cref="M:J2N.Numerics.Double.Parse(System.String,System.IFormatProvider)"/> method is invoked, it calls the provider parameter's
<see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> method and passes it a <see cref="T:System.Type"/> object that represents the <see cref="T:System.Globalization.NumberFormatInfo"/> type.
The <see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> method then returns the <see cref="T:System.Globalization.NumberFormatInfo"/> object that provides information about the
format of the <paramref name="s"/> parameter. There are three ways to use the <paramref name="provider"/> parameter to supply custom formatting
information to the parse operation:
<list type="bullet">
<item><description>You can pass a <see cref="T:System.Globalization.CultureInfo"/> object that represents the culture that supplies formatting information. Its
<see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> method returns the <see cref="T:System.Globalization.NumberFormatInfo"/> object that provides numeric formatting
information for that culture.</description></item>
<item><description>You can pass the actual <see cref="T:System.Globalization.NumberFormatInfo"/> object that provides numeric formatting information. (Its
implementation of <see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> just returns itself.)</description></item>
<item><description>You can pass a custom object that implements <see cref="T:System.IFormatProvider"/>. Its <see cref="M:System.IFormatProvider.GetFormat(System.Type)"/>
method instantiates and returns the <see cref="T:System.Globalization.NumberFormatInfo"/> object that provides formatting information.</description></item>
</list>
If <paramref name="provider"/> is <c>null</c> or a <see cref="T:System.Globalization.NumberFormatInfo"/> object cannot be obtained, the <see cref="T:System.Globalization.NumberFormatInfo"/>
object for the current culture is used.
<para/>
If <paramref name="s"/> is out of range of the <see cref="T:System.Double"/> data type, the method returns <see cref="F:System.Double.NegativeInfinity"/> if
<paramref name="s"/> is less than <see cref="F:System.Double.MinValue"/> and <see cref="F:System.Double.PositiveInfinity"/> if <paramref name="s"/> is greater
than <see cref="F:System.Double.MaxValue"/>.
<para/>
If a separator is encountered in the <paramref name="s"/> parameter during a parse operation, and the applicable currency or number
decimal and group separators are the same, the parse operation assumes that the separator is a decimal separator rather than a group
separator. For more information about separators, see <see cref="P:System.Globalization.NumberFormatInfo.CurrencyDecimalSeparator"/>,
<see cref="P:System.Globalization.NumberFormatInfo.NumberDecimalSeparator"/>, <see cref="P:System.Globalization.NumberFormatInfo.CurrencyGroupSeparator"/>, and
<see cref="P:System.Globalization.NumberFormatInfo.NumberGroupSeparator"/>.
</remarks>
</member>
<member name="M:J2N.Numerics.Double.ToString">
<summary>
Converts the numeric value of this instance to its equivalent string representation.
</summary>
<returns>The string representation of this instance.</returns>
<remarks>
The <see cref="M:J2N.Numerics.Double.ToString"/> method formats the current instance in the default ("J", or Java)
format of the current culture. If you want to specify a different format, precision, or culture, use the
other overloads of the <see cref="M:J2N.Numerics.Double.ToString(System.String,System.IFormatProvider)"/> method, as follows:
<list type="table">
<listheader>
<term>To use format</term>
<term>For culture</term>
<term>Use the overload</term>
</listheader>
<item>
<term>Default ("J") format</term>
<term>A specific culture</term>
<term><see cref="M:J2N.Numerics.Double.ToString(System.Double,System.IFormatProvider)"/> or <see cref="M:J2N.Numerics.Double.ToString(System.IFormatProvider)"/></term>
</item>
<item>
<term>A specific format or precision</term>
<term>Default (current) culture</term>
<term><see cref="M:J2N.Numerics.Double.ToString(System.Double,System.String)"/> or <see cref="M:J2N.Numerics.Double.ToString(System.String)"/></term>
</item>
<item>
<term>A specific format or precision</term>
<term>A specific culture</term>
<term><see cref="M:J2N.Numerics.Double.ToString(System.Double,System.String,System.IFormatProvider)"/> or <see cref="M:J2N.Numerics.Double.ToString(System.String,System.IFormatProvider)"/></term>
</item>
</list>
The return value can be <see cref="P:System.Globalization.NumberFormatInfo.PositiveInfinitySymbol"/>, <see cref="P:System.Globalization.NumberFormatInfo.NegativeInfinitySymbol"/>,
<see cref="P:System.Globalization.NumberFormatInfo.NaNSymbol"/>, or the string of the form:
<para/>
[sign]integral-digits[.[fractional-digits]][E[sign]exponential-digits]
<para/>
Optional elements are framed in square brackets ([ and ]). Elements that contain the term "digits" consist of a series of numeric
characters ranging from 0 to 9. The elements listed in the following table are supported.
<list type="table">
<listheader>
<term>Element</term>
<term>Description</term>
</listheader>
<item>
<term><i>sign</i></term>
<term>A negative sign or positive sign symbol.</term>
</item>
<item>
<term><i>integral-digits</i></term>
<term>A series of digits specifying the integral part of the number. Integral-digits can be absent if there
are fractional-digits.</term>
</item>
<item>
<term><i>'.'</i></term>
<term>A culture-specific decimal point symbol.</term>
</item>
<item>
<term><i>fractional-digits</i></term>
<term>A series of digits specifying the fractional part of the number.</term>
</item>
<item>
<term><i>'E'</i></term>
<term>An uppercase character 'E', indicating exponential (scientific) notation.</term>
</item>
<item>
<term><i>exponential-digits</i></term>
<term>A series of digits specifying an exponent.</term>
</item>
</list>
<para/>
Some examples of the return value are "100", "-123,456,789", "123.45E+6", "500", "3.1416", "600", "-0.123", and "-Infinity".
<para/>
This instance is formatted with the Java numeric format specifier ("J").
<para/>
.NET provides extensive formatting support, which is described in greater detail in the following formatting topics:
<list type="bullet">
<item><description>For more information about numeric format specifiers, see
<a href="https://docs.microsoft.com/en-us/dotnet/standard/base-types/standard-numeric-format-strings">Standard Numeric Format Strings</a>
and <a href="https://docs.microsoft.com/en-us/dotnet/standard/base-types/custom-numeric-format-strings">Custom Numeric Format Strings</a>.
</description></item>
<item><description>For more information about formatting, see
<a href="https://docs.microsoft.com/en-us/dotnet/standard/base-types/formatting-types">Formatting Types</a>.</description></item>
</list>
</remarks>
</member>
<member name="M:J2N.Numerics.Double.ToString(System.String)">
<summary>
Converts the numeric value of this instance to its equivalent string representation, using the specified format.
</summary>
<param name="format">A numeric format string.</param>
<returns>The string representation of the current instance as specified by <paramref name="format"/>.</returns>
<remarks>
The <see cref="M:J2N.Numerics.Double.ToString(System.String)"/> method formats the current instance in
a specified format by using the conventions of the current culture. If you want to specify a different format or culture,
use the other overloads of the <see cref="M:J2N.Numerics.Double.ToString(System.String,System.IFormatProvider)"/> method, as follows:
<list type="table">
<listheader>
<term>To use format</term>
<term>For culture</term>
<term>Use the overload</term>
</listheader>
<item>
<term>Default ("J") format</term>
<term>Default (current) culture</term>
<term><see cref="M:J2N.Numerics.Double.ToString(System.Double)"/> or <see cref="M:J2N.Numerics.Double.ToString"/></term>
</item>
<item>
<term>Default ("J") format</term>
<term>A specific culture</term>
<term><see cref="M:J2N.Numerics.Double.ToString(System.Double,System.IFormatProvider)"/> or <see cref="M:J2N.Numerics.Double.ToString(System.IFormatProvider)"/></term>
</item>
<item>
<term>A specific format or precision</term>
<term>A specific culture</term>
<term><see cref="M:J2N.Numerics.Double.ToString(System.Double,System.String,System.IFormatProvider)"/> or <see cref="M:J2N.Numerics.Double.ToString(System.String,System.IFormatProvider)"/></term>
</item>
</list>
The return value can be <see cref="P:System.Globalization.NumberFormatInfo.PositiveInfinitySymbol"/>, <see cref="P:System.Globalization.NumberFormatInfo.NegativeInfinitySymbol"/>,
<see cref="P:System.Globalization.NumberFormatInfo.NaNSymbol"/>, or the string representation of a number, as specified by <paramref name="format"/>.
<para/>
The <paramref name="format"/> parameter can be any valid standard numeric format specifier except for D, as well as any
combination of custom numeric format specifiers. If <paramref name="format"/> is <c>null</c> or an empty string, the return value for this
instance is formatted with the Java numeric format specifier ("J").
<para/>
.NET provides extensive formatting support, which is described in greater detail in the following formatting topics:
<list type="bullet">
<item><description>For more information about numeric format specifiers, see
<a href="https://docs.microsoft.com/en-us/dotnet/standard/base-types/standard-numeric-format-strings">Standard Numeric Format Strings</a>
and <a href="https://docs.microsoft.com/en-us/dotnet/standard/base-types/custom-numeric-format-strings">Custom Numeric Format Strings</a>.
</description></item>
<item><description>For more information about formatting, see
<a href="https://docs.microsoft.com/en-us/dotnet/standard/base-types/formatting-types">Formatting Types</a>.</description></item>
</list>
<para/>
In addition to the formats specified in the above articles, the Java ("J") format and ("X") hexadecimal format are also supported.
<para/>
<h2>Java format specifier ("J")</h2>
<para/>
The ("J") format follows the specification of the Java Language Specification. However, do note that it may not return exactly the same
number representation as the JDK due to precision and rounding differences. The ("J") format is similar to the ("R") format in that
it can be fully round tripped and it ignores the precision specifier. However, do note that on platforms lower than .NET Core 3.0, this
format can only be round-tripped using overloads of <see cref="M:J2N.Numerics.Double.Parse(System.String,System.IFormatProvider)"/> and <see cref="M:J2N.Numerics.Double.TryParse(System.String,System.Double@)"/>
in J2N. On .NET Core 3.0 and higher overloads of <see cref="M:System.Double.Parse(System.String)"/> and <see cref="M:System.Double.TryParse(System.String,System.Double@)"/> will
also successfully round trip the number back to the same set of bits.
<para/>
Although you can include a precision specifier, it is ignored. Round trips are given precedence over precision when using this specifier.
The result string is affected by the formatting information of the current <see cref="T:System.Globalization.NumberFormatInfo"/> object. The following table lists
the <see cref="T:System.Globalization.NumberFormatInfo"/> properties that control the formatting of the result string.
<list type="table">
<listheader>
<term>NumberFormatInfo property</term>
<term>Description</term>
</listheader>
<item>
<term><see cref="P:System.Globalization.NumberFormatInfo.NegativeSign"/></term>
<term>Defines the string that indicates that a number is negative.</term>
</item>
<item>
<term><see cref="P:System.Globalization.NumberFormatInfo.NumberDecimalSeparator"/></term>
<term>Defines the string that separates integral digits from decimal digits.</term>
</item>
</list>
<para/>
Note that although this format follows the Java Language Specification, to exactly match the behavior as the JDK, it
must be in the invariant culture by specifying the provider as <see cref="P:System.Globalization.CultureInfo.InvariantCulture"/>,
<see cref="P:System.Globalization.NumberFormatInfo.InvariantInfo"/> or <see cref="P:J2N.Text.StringFormatter.InvariantCulture"/>.
<para/>
<h2>Hexadecimal format specifier ("X")</h2>
<para/>
The hexadecimal ("X") format is uses the same floating-point hexadecimal format as the JDK and is provided for interoperability
with Java 6 and higher. The hexadecimal form have an analogous syntax to the simple and scaled decimal forms with the following differences:
<list type="number">
<item><description>Every hexadecimal floating point literal starts with a zero (0) and then an x or X.</description></item>
<item><description>The digits of the number (but not the exponent part!) also include the hexadecimal digits a through f
and their uppercase equivalents.</description></item>
<item><description>The exponent is introduced by the letter p (or P) instead of an e or E. The exponent represents a
scaling factor that is a power of 2 instead of a power of 10.</description></item>
</list>
<para/>
Here are some examples:
<code>
0x0.0p0 // this is zero expressed in hexadecimal form (float)<br/>
0xff.0p19 // this is 255.0 x 2^19 (double)
</code>
See the <see cref="M:J2N.Numerics.Double.ToHexString(System.IFormatProvider)"/> for more information about the format.
<para/>
Note that although this format follows the Java Language Specification, to exactly match the behavior as the JDK, it
must be in the invariant culture by specifying the provider as <see cref="P:System.Globalization.CultureInfo.InvariantCulture"/>,
<see cref="P:System.Globalization.NumberFormatInfo.InvariantInfo"/> or <see cref="P:J2N.Text.StringFormatter.InvariantCulture"/>.
</remarks>
</member>
<member name="M:J2N.Numerics.Double.ToString(System.IFormatProvider)">
<summary>
Converts the numeric value of the current instance to its equivalent string representation using the specified
culture-specific format information.
</summary>
<param name="provider">An object that supplies culture-specific formatting information.</param>
<returns>The string representation of the current instance as specified by <paramref name="provider"/>.</returns>
<remarks>
The <see cref="M:J2N.Numerics.Double.ToString(System.IFormatProvider)"/> method formats the current instance in
the default ("J") format of a specified culture. If you want to specify a different format or culture, use the
other overloads of the <see cref="M:J2N.Numerics.Double.ToString(System.String,System.IFormatProvider)"/> method, as follows:
<list type="table">
<listheader>
<term>To use format</term>
<term>For culture</term>
<term>Use the overload</term>
</listheader>
<item>
<term>Default ("J") format</term>
<term>Default (current) culture</term>
<term><see cref="M:J2N.Numerics.Double.ToString(System.Double)"/> or <see cref="M:J2N.Numerics.Double.ToString"/></term>
</item>
<item>
<term>A specific format or precision</term>
<term>Default (current) culture</term>
<term><see cref="M:J2N.Numerics.Double.ToString(System.Double,System.String)"/> or <see cref="M:J2N.Numerics.Double.ToString(System.String)"/></term>
</item>
<item>
<term>A specific format or precision</term>
<term>A specific culture</term>
<term><see cref="M:J2N.Numerics.Double.ToString(System.Double,System.String,System.IFormatProvider)"/> or <see cref="M:J2N.Numerics.Double.ToString(System.String,System.IFormatProvider)"/></term>
</item>
</list>
The return value can be <see cref="P:System.Globalization.NumberFormatInfo.PositiveInfinitySymbol"/>, <see cref="P:System.Globalization.NumberFormatInfo.NegativeInfinitySymbol"/>,
<see cref="P:System.Globalization.NumberFormatInfo.NaNSymbol"/>, or the string of the form:
<para/>
[sign]integral-digits[.[fractional-digits]][E[sign]exponential-digits]
<para/>
Optional elements are framed in square brackets ([ and ]). Elements that contain the term "digits" consist of a series of numeric
characters ranging from 0 to 9. The elements listed in the following table are supported.
<list type="table">
<listheader>
<term>Element</term>
<term>Description</term>
</listheader>
<item>
<term><i>sign</i></term>
<term>A negative sign or positive sign symbol.</term>
</item>
<item>
<term><i>integral-digits</i></term>
<term>A series of digits specifying the integral part of the number. Integral-digits can be absent if there
are fractional-digits.</term>
</item>
<item>
<term><i>'.'</i></term>
<term>A culture-specific decimal point symbol.</term>
</item>
<item>
<term><i>fractional-digits</i></term>
<term>A series of digits specifying the fractional part of the number.</term>
</item>
<item>
<term><i>'E'</i></term>
<term>An uppercase character 'E', indicating exponential (scientific) notation.</term>
</item>
<item>
<term><i>exponential-digits</i></term>
<term>A series of digits specifying an exponent.</term>
</item>
</list>
<para/>
Some examples of the return value are "100", "-123,456,789", "123.45E+6", "500", "3.1416", "600", "-0.123", and "-Infinity".
<para/>
This instance is formatted with the Java numeric format specifier ("J").
<para/>
.NET provides extensive formatting support, which is described in greater detail in the following formatting topics:
<list type="bullet">
<item><description>For more information about numeric format specifiers, see
<a href="https://docs.microsoft.com/en-us/dotnet/standard/base-types/standard-numeric-format-strings">Standard Numeric Format Strings</a>
and <a href="https://docs.microsoft.com/en-us/dotnet/standard/base-types/custom-numeric-format-strings">Custom Numeric Format Strings</a>.
</description></item>
<item><description>For more information about formatting, see
<a href="https://docs.microsoft.com/en-us/dotnet/standard/base-types/formatting-types">Formatting Types</a>.</description></item>
</list>
<para/>
The <paramref name="provider"/> parameter is an <see cref="T:System.IFormatProvider"/> implementation whose <see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> method returns
a <see cref="T:System.Globalization.NumberFormatInfo"/> object. Typically, provider is a <see cref="T:System.Globalization.CultureInfo"/> object or a <see cref="T:System.Globalization.NumberFormatInfo"/> object.
The <paramref name="provider"/> parameter supplies culture-specific information used in formatting. If provider is <c>null</c>, the return value is formatted using
the <see cref="T:System.Globalization.NumberFormatInfo"/> object for the current culture.
</remarks>
</member>
<member name="M:J2N.Numerics.Double.ToString(System.String,System.IFormatProvider)">
<summary>
Converts the numeric value of this instance to its equivalent string representation using
the specified format and culture-specific format information.
</summary>
<param name="format">A numeric format string.</param>
<param name="provider">An object that supplies culture-specific formatting information.</param>
<returns>The string representation of the current instance as specified by <paramref name="format"/>
and <paramref name="provider"/>.</returns>
<remarks>
The <see cref="M:J2N.Numerics.Double.ToString(System.String,System.IFormatProvider)"/> method formats the current instance in
a specified format of a specified culture. If you want to specify a different format or culture, use the
other overloads of the <see cref="M:J2N.Numerics.Double.ToString(System.String,System.IFormatProvider)"/> method, as follows:
<list type="table">
<listheader>
<term>To use format</term>
<term>For culture</term>
<term>Use the overload</term>
</listheader>
<item>
<term>Default ("J") format</term>
<term>Default (current) culture</term>
<term><see cref="M:J2N.Numerics.Double.ToString(System.Double)"/> or <see cref="M:J2N.Numerics.Double.ToString"/></term>
</item>
<item>
<term>Default ("J") format</term>
<term>A specific culture</term>
<term><see cref="M:J2N.Numerics.Double.ToString(System.Double,System.IFormatProvider)"/> or <see cref="M:J2N.Numerics.Double.ToString(System.IFormatProvider)"/></term>
</item>
<item>
<term>A specific format or precision</term>
<term>Default (current) culture</term>
<term><see cref="M:J2N.Numerics.Double.ToString(System.Double,System.String)"/> or <see cref="M:J2N.Numerics.Double.ToString(System.String)"/></term>
</item>
</list>
The return value can be <see cref="P:System.Globalization.NumberFormatInfo.PositiveInfinitySymbol"/>, <see cref="P:System.Globalization.NumberFormatInfo.NegativeInfinitySymbol"/>,
<see cref="P:System.Globalization.NumberFormatInfo.NaNSymbol"/>, or the string representation of a number, as specified by <paramref name="format"/>.
<para/>
The <paramref name="format"/> parameter can be any valid standard numeric format specifier except for D, as well as any
combination of custom numeric format specifiers. If <paramref name="format"/> is <c>null</c> or an empty string, the return value for this
instance is formatted with the Java numeric format specifier ("J").
<para/>
.NET provides extensive formatting support, which is described in greater detail in the following formatting topics:
<list type="bullet">
<item><description>For more information about numeric format specifiers, see
<a href="https://docs.microsoft.com/en-us/dotnet/standard/base-types/standard-numeric-format-strings">Standard Numeric Format Strings</a>
and <a href="https://docs.microsoft.com/en-us/dotnet/standard/base-types/custom-numeric-format-strings">Custom Numeric Format Strings</a>.
</description></item>
<item><description>For more information about formatting, see
<a href="https://docs.microsoft.com/en-us/dotnet/standard/base-types/formatting-types">Formatting Types</a>.</description></item>
</list>
<para/>
The <paramref name="provider"/> parameter is an <see cref="T:System.IFormatProvider"/> implementation whose <see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> method returns
a <see cref="T:System.Globalization.NumberFormatInfo"/> object. Typically, provider is a <see cref="T:System.Globalization.CultureInfo"/> object or a <see cref="T:System.Globalization.NumberFormatInfo"/> object.
The <paramref name="provider"/> parameter supplies culture-specific information used in formatting. If <paramref name="provider"/> is <c>null</c>, the return value
is formatted using the <see cref="T:System.Globalization.NumberFormatInfo"/> object for the current culture.
<para/>
In addition to the formats specified in the above articles, the Java ("J") format and ("X") hexadecimal format are also supported.
<para/>
<h2>Java format specifier ("J")</h2>
<para/>
The ("J") format follows the specification of the Java Language Specification. However, do note that it may not return exactly the same
number representation as the JDK due to precision and rounding differences. The ("J") format is similar to the ("R") format in that
it can be fully round tripped and it ignores the precision specifier. However, do note that on platforms lower than .NET Core 3.0, this
format can only be round-tripped using overloads of <see cref="M:J2N.Numerics.Double.Parse(System.String,System.IFormatProvider)"/> and <see cref="M:J2N.Numerics.Double.TryParse(System.String,System.Double@)"/>
in J2N. On .NET Core 3.0 and higher overloads of <see cref="M:System.Double.Parse(System.String)"/> and <see cref="M:System.Double.TryParse(System.String,System.Double@)"/> will
also successfully round trip the number back to the same set of bits.
<para/>
Although you can include a precision specifier, it is ignored. Round trips are given precedence over precision when using this specifier.
The result string is affected by the formatting information of the current <see cref="T:System.Globalization.NumberFormatInfo"/> object. The following table lists
the <see cref="T:System.Globalization.NumberFormatInfo"/> properties that control the formatting of the result string.
<list type="table">
<listheader>
<term>NumberFormatInfo property</term>
<term>Description</term>
</listheader>
<item>
<term><see cref="P:System.Globalization.NumberFormatInfo.NegativeSign"/></term>
<term>Defines the string that indicates that a number is negative.</term>
</item>
<item>
<term><see cref="P:System.Globalization.NumberFormatInfo.NumberDecimalSeparator"/></term>
<term>Defines the string that separates integral digits from decimal digits.</term>
</item>
</list>
<para/>
Note that although this format follows the Java Language Specification, to exactly match the behavior as the JDK, it
must be in the invariant culture by specifying the <paramref name="provider"/> as <see cref="P:System.Globalization.CultureInfo.InvariantCulture"/>,
<see cref="P:System.Globalization.NumberFormatInfo.InvariantInfo"/> or <see cref="P:J2N.Text.StringFormatter.InvariantCulture"/>.
<para/>
<h2>Hexadecimal format specifier ("X")</h2>
<para/>
The hexadecimal ("X") format is uses the same floating-point hexadecimal format as the JDK and is provided for interoperability
with Java 6 and higher. The hexadecimal form have an analogous syntax to the simple and scaled decimal forms with the following differences:
<list type="number">
<item><description>Every hexadecimal floating point literal starts with a zero (0) and then an x or X.</description></item>
<item><description>The digits of the number (but not the exponent part!) also include the hexadecimal digits a through f
and their uppercase equivalents.</description></item>
<item><description>The exponent is introduced by the letter p (or P) instead of an e or E. The exponent represents a
scaling factor that is a power of 2 instead of a power of 10.</description></item>
</list>
<para/>
Here are some examples:
<code>
0x0.0p0 // this is zero expressed in hexadecimal form (float)<br/>
0xff.0p19 // this is 255.0 x 2^19 (double)
</code>
See the <see cref="M:J2N.Numerics.Double.ToHexString(System.IFormatProvider)"/> for more information about the format.
<para/>
Note that although this format follows the Java Language Specification, to exactly match the behavior as the JDK, it
must be in the invariant culture by specifying the <paramref name="provider"/> as <see cref="P:System.Globalization.CultureInfo.InvariantCulture"/>,
<see cref="P:System.Globalization.NumberFormatInfo.InvariantInfo"/> or <see cref="P:J2N.Text.StringFormatter.InvariantCulture"/>.
</remarks>
</member>
<member name="M:J2N.Numerics.Double.ToString(System.Double)">
<summary>
Converts the numeric <paramref name="value"/> to its equivalent string representation.
</summary>
<param name="value">The <see cref="T:System.Double"/> to convert.</param>
<returns>The string representation of the value.</returns>
<remarks>
The <see cref="M:J2N.Numerics.Double.ToString(System.Double)"/> method formats <paramref name="value"/> in the default ("J", or Java)
format of the current culture. If you want to specify a different format, precision, or culture, use the
other overloads of the <see cref="M:J2N.Numerics.Double.ToString(System.Double,System.String,System.IFormatProvider)"/> method, as follows:
<list type="table">
<listheader>
<term>To use format</term>
<term>For culture</term>
<term>Use the overload</term>
</listheader>
<item>
<term>Default ("J") format</term>
<term>A specific culture</term>
<term><see cref="M:J2N.Numerics.Double.ToString(System.Double,System.IFormatProvider)"/> or <see cref="M:J2N.Numerics.Double.ToString(System.IFormatProvider)"/></term>
</item>
<item>
<term>A specific format or precision</term>
<term>Default (current) culture</term>
<term><see cref="M:J2N.Numerics.Double.ToString(System.Double,System.String)"/> or <see cref="M:J2N.Numerics.Double.ToString(System.String)"/></term>
</item>
<item>
<term>A specific format or precision</term>
<term>A specific culture</term>
<term><see cref="M:J2N.Numerics.Double.ToString(System.Double,System.String,System.IFormatProvider)"/> or <see cref="M:J2N.Numerics.Double.ToString(System.String,System.IFormatProvider)"/></term>
</item>
</list>
The return value can be <see cref="P:System.Globalization.NumberFormatInfo.PositiveInfinitySymbol"/>, <see cref="P:System.Globalization.NumberFormatInfo.NegativeInfinitySymbol"/>,
<see cref="P:System.Globalization.NumberFormatInfo.NaNSymbol"/>, or the string of the form:
<para/>
[sign]integral-digits[.[fractional-digits]][E[sign]exponential-digits]
<para/>
Optional elements are framed in square brackets ([ and ]). Elements that contain the term "digits" consist of a series of numeric
characters ranging from 0 to 9. The elements listed in the following table are supported.
<list type="table">
<listheader>
<term>Element</term>
<term>Description</term>
</listheader>
<item>
<term><i>sign</i></term>
<term>A negative sign or positive sign symbol.</term>
</item>
<item>
<term><i>integral-digits</i></term>
<term>A series of digits specifying the integral part of the number. Integral-digits can be absent if there
are fractional-digits.</term>
</item>
<item>
<term><i>'.'</i></term>
<term>A culture-specific decimal point symbol.</term>
</item>
<item>
<term><i>fractional-digits</i></term>
<term>A series of digits specifying the fractional part of the number.</term>
</item>
<item>
<term><i>'E'</i></term>
<term>An uppercase character 'E', indicating exponential (scientific) notation.</term>
</item>
<item>
<term><i>exponential-digits</i></term>
<term>A series of digits specifying an exponent.</term>
</item>
</list>
<para/>
Some examples of the return value are "100", "-123,456,789", "123.45E+6", "500", "3.1416", "600", "-0.123", and "-Infinity".
<para/>
The value is formatted with the Java numeric format specifier ("J").
<para/>
.NET provides extensive formatting support, which is described in greater detail in the following formatting topics:
<list type="bullet">
<item><description>For more information about numeric format specifiers, see
<a href="https://docs.microsoft.com/en-us/dotnet/standard/base-types/standard-numeric-format-strings">Standard Numeric Format Strings</a>
and <a href="https://docs.microsoft.com/en-us/dotnet/standard/base-types/custom-numeric-format-strings">Custom Numeric Format Strings</a>.
</description></item>
<item><description>For more information about formatting, see
<a href="https://docs.microsoft.com/en-us/dotnet/standard/base-types/formatting-types">Formatting Types</a>.</description></item>
</list>
</remarks>
</member>
<member name="M:J2N.Numerics.Double.ToString(System.Double,System.String)">
<summary>
Converts the numeric <paramref name="value"/> to its equivalent string representation, using the specified format.
</summary>
<param name="value">The <see cref="T:System.Double"/> to convert.</param>
<param name="format">A numeric format string.</param>
<returns>The string representation of the value as specified by <paramref name="format"/>.</returns>
<remarks>
The <see cref="M:J2N.Numerics.Double.ToString(System.Double,System.String)"/> method formats <paramref name="value"/> in
a specified format by using the conventions of the current culture. If you want to specify a different format or culture,
use the other overloads of the <see cref="M:J2N.Numerics.Double.ToString(System.Double,System.String,System.IFormatProvider)"/> method, as follows:
<list type="table">
<listheader>
<term>To use format</term>
<term>For culture</term>
<term>Use the overload</term>
</listheader>
<item>
<term>Default ("J") format</term>
<term>Default (current) culture</term>
<term><see cref="M:J2N.Numerics.Double.ToString(System.Double)"/> or <see cref="M:J2N.Numerics.Double.ToString"/></term>
</item>
<item>
<term>Default ("J") format</term>
<term>A specific culture</term>
<term><see cref="M:J2N.Numerics.Double.ToString(System.Double,System.IFormatProvider)"/> or <see cref="M:J2N.Numerics.Double.ToString(System.IFormatProvider)"/></term>
</item>
<item>
<term>A specific format or precision</term>
<term>A specific culture</term>
<term><see cref="M:J2N.Numerics.Double.ToString(System.Double,System.String,System.IFormatProvider)"/> or <see cref="M:J2N.Numerics.Double.ToString(System.String,System.IFormatProvider)"/></term>
</item>
</list>
The return value can be <see cref="P:System.Globalization.NumberFormatInfo.PositiveInfinitySymbol"/>, <see cref="P:System.Globalization.NumberFormatInfo.NegativeInfinitySymbol"/>,
<see cref="P:System.Globalization.NumberFormatInfo.NaNSymbol"/>, or the string representation of a number, as specified by <paramref name="format"/>.
<para/>
The <paramref name="format"/> parameter can be any valid standard numeric format specifier except for D, as well as any
combination of custom numeric format specifiers. If <paramref name="format"/> is <c>null</c> or an empty string, the return value for this
instance is formatted with the Java numeric format specifier ("J").
<para/>
.NET provides extensive formatting support, which is described in greater detail in the following formatting topics:
<list type="bullet">
<item><description>For more information about numeric format specifiers, see
<a href="https://docs.microsoft.com/en-us/dotnet/standard/base-types/standard-numeric-format-strings">Standard Numeric Format Strings</a>
and <a href="https://docs.microsoft.com/en-us/dotnet/standard/base-types/custom-numeric-format-strings">Custom Numeric Format Strings</a>.
</description></item>
<item><description>For more information about formatting, see
<a href="https://docs.microsoft.com/en-us/dotnet/standard/base-types/formatting-types">Formatting Types</a>.</description></item>
</list>
<para/>
In addition to the formats specified in the above articles, the Java ("J") format and ("X") hexadecimal format are also supported.
<para/>
<h2>Java format specifier ("J")</h2>
<para/>
The ("J") format follows the specification of the Java Language Specification. However, do note that it may not return exactly the same
number representation as the JDK due to precision and rounding differences. The ("J") format is similar to the ("R") format in that
it can be fully round tripped and it ignores the precision specifier. However, do note that on platforms lower than .NET Core 3.0, this
format can only be round-tripped using overloads of <see cref="M:J2N.Numerics.Double.Parse(System.String,System.IFormatProvider)"/> and <see cref="M:J2N.Numerics.Double.TryParse(System.String,System.Double@)"/>
in J2N. On .NET Core 3.0 and higher overloads of <see cref="M:System.Double.Parse(System.String)"/> and <see cref="M:System.Double.TryParse(System.String,System.Double@)"/> will
also successfully round trip the number back to the same set of bits.
<para/>
Although you can include a precision specifier, it is ignored. Round trips are given precedence over precision when using this specifier.
The result string is affected by the formatting information of the current <see cref="T:System.Globalization.NumberFormatInfo"/> object. The following table lists
the <see cref="T:System.Globalization.NumberFormatInfo"/> properties that control the formatting of the result string.
<list type="table">
<listheader>
<term>NumberFormatInfo property</term>
<term>Description</term>
</listheader>
<item>
<term><see cref="P:System.Globalization.NumberFormatInfo.NegativeSign"/></term>
<term>Defines the string that indicates that a number is negative.</term>
</item>
<item>
<term><see cref="P:System.Globalization.NumberFormatInfo.NumberDecimalSeparator"/></term>
<term>Defines the string that separates integral digits from decimal digits.</term>
</item>
</list>
<para/>
Note that although this format follows the Java Language Specification, to exactly match the behavior as the JDK, it
must be in the invariant culture by specifying the provider as <see cref="P:System.Globalization.CultureInfo.InvariantCulture"/>,
<see cref="P:System.Globalization.NumberFormatInfo.InvariantInfo"/> or <see cref="P:J2N.Text.StringFormatter.InvariantCulture"/>.
<para/>
<h2>Hexadecimal format specifier ("X")</h2>
<para/>
The hexadecimal ("X") format is uses the same floating-point hexadecimal format as the JDK and is provided for interoperability
with Java 6 and higher. The hexadecimal form have an analogous syntax to the simple and scaled decimal forms with the following differences:
<list type="number">
<item><description>Every hexadecimal floating point literal starts with a zero (0) and then an x or X.</description></item>
<item><description>The digits of the number (but not the exponent part!) also include the hexadecimal digits a through f
and their uppercase equivalents.</description></item>
<item><description>The exponent is introduced by the letter p (or P) instead of an e or E. The exponent represents a
scaling factor that is a power of 2 instead of a power of 10.</description></item>
</list>
<para/>
Here are some examples:
<code>
0x0.0p0 // this is zero expressed in hexadecimal form (float)<br/>
0xff.0p19 // this is 255.0 x 2^19 (double)
</code>
See the <see cref="M:J2N.Numerics.Double.ToHexString(System.IFormatProvider)"/> for more information about the format.
<para/>
Note that although this format follows the Java Language Specification, to exactly match the behavior as the JDK, it
must be in the invariant culture by specifying the provider as <see cref="P:System.Globalization.CultureInfo.InvariantCulture"/>,
<see cref="P:System.Globalization.NumberFormatInfo.InvariantInfo"/> or <see cref="P:J2N.Text.StringFormatter.InvariantCulture"/>.
</remarks>
</member>
<member name="M:J2N.Numerics.Double.ToString(System.Double,System.IFormatProvider)">
<summary>
Converts the numeric <paramref name="value"/> to its equivalent string representation using the specified
culture-specific format information.
</summary>
<param name="value">The <see cref="T:System.Double"/> to convert.</param>
<param name="provider">An object that supplies culture-specific formatting information.</param>
<returns>The string representation of the value as specified by <paramref name="provider"/>.</returns>
<remarks>
The <see cref="M:J2N.Numerics.Double.ToString(System.Double,System.IFormatProvider)"/> method formats <paramref name="value"/> in
the default ("J") format of a specified culture. If you want to specify a different format or culture, use the
other overloads of the <see cref="M:J2N.Numerics.Double.ToString(System.Double,System.String,System.IFormatProvider)"/> method, as follows:
<list type="table">
<listheader>
<term>To use format</term>
<term>For culture</term>
<term>Use the overload</term>
</listheader>
<item>
<term>Default ("J") format</term>
<term>Default (current) culture</term>
<term><see cref="M:J2N.Numerics.Double.ToString(System.Double)"/> or <see cref="M:J2N.Numerics.Double.ToString"/></term>
</item>
<item>
<term>A specific format or precision</term>
<term>Default (current) culture</term>
<term><see cref="M:J2N.Numerics.Double.ToString(System.Double,System.String)"/> or <see cref="M:J2N.Numerics.Double.ToString(System.String)"/></term>
</item>
<item>
<term>A specific format or precision</term>
<term>A specific culture</term>
<term><see cref="M:J2N.Numerics.Double.ToString(System.Double,System.String,System.IFormatProvider)"/> or <see cref="M:J2N.Numerics.Double.ToString(System.String,System.IFormatProvider)"/></term>
</item>
</list>
The return value can be <see cref="P:System.Globalization.NumberFormatInfo.PositiveInfinitySymbol"/>, <see cref="P:System.Globalization.NumberFormatInfo.NegativeInfinitySymbol"/>,
<see cref="P:System.Globalization.NumberFormatInfo.NaNSymbol"/>, or the string of the form:
<para/>
[sign]integral-digits[.[fractional-digits]][E[sign]exponential-digits]
<para/>
Optional elements are framed in square brackets ([ and ]). Elements that contain the term "digits" consist of a series of numeric
characters ranging from 0 to 9. The elements listed in the following table are supported.
<list type="table">
<listheader>
<term>Element</term>
<term>Description</term>
</listheader>
<item>
<term><i>sign</i></term>
<term>A negative sign or positive sign symbol.</term>
</item>
<item>
<term><i>integral-digits</i></term>
<term>A series of digits specifying the integral part of the number. Integral-digits can be absent if there
are fractional-digits.</term>
</item>
<item>
<term><i>'.'</i></term>
<term>A culture-specific decimal point symbol.</term>
</item>
<item>
<term><i>fractional-digits</i></term>
<term>A series of digits specifying the fractional part of the number.</term>
</item>
<item>
<term><i>'E'</i></term>
<term>An uppercase character 'E', indicating exponential (scientific) notation.</term>
</item>
<item>
<term><i>exponential-digits</i></term>
<term>A series of digits specifying an exponent.</term>
</item>
</list>
<para/>
Some examples of the return value are "100", "-123,456,789", "123.45E+6", "500", "3.1416", "600", "-0.123", and "-Infinity".
<para/>
The value is formatted with the Java numeric format specifier ("J").
<para/>
.NET provides extensive formatting support, which is described in greater detail in the following formatting topics:
<list type="bullet">
<item><description>For more information about numeric format specifiers, see
<a href="https://docs.microsoft.com/en-us/dotnet/standard/base-types/standard-numeric-format-strings">Standard Numeric Format Strings</a>
and <a href="https://docs.microsoft.com/en-us/dotnet/standard/base-types/custom-numeric-format-strings">Custom Numeric Format Strings</a>.
</description></item>
<item><description>For more information about formatting, see
<a href="https://docs.microsoft.com/en-us/dotnet/standard/base-types/formatting-types">Formatting Types</a>.</description></item>
</list>
<para/>
The <paramref name="provider"/> parameter is an <see cref="T:System.IFormatProvider"/> implementation whose <see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> method returns
a <see cref="T:System.Globalization.NumberFormatInfo"/> object. Typically, provider is a <see cref="T:System.Globalization.CultureInfo"/> object or a <see cref="T:System.Globalization.NumberFormatInfo"/> object.
The <paramref name="provider"/> parameter supplies culture-specific information used in formatting. If provider is <c>null</c>, the return value is formatted using
the <see cref="T:System.Globalization.NumberFormatInfo"/> object for the current culture.
</remarks>
</member>
<member name="M:J2N.Numerics.Double.ToString(System.Double,System.String,System.IFormatProvider)">
<summary>
Converts the numeric <paramref name="value"/> to its equivalent string representation using
the specified format and culture-specific format information.
</summary>
<param name="value">The <see cref="T:System.Double"/> to convert.</param>
<param name="format">A numeric format string.</param>
<param name="provider">An object that supplies culture-specific formatting information.</param>
<returns>The string representation of the value as specified by <paramref name="format"/>
and <paramref name="provider"/>.</returns>
<remarks>
The <see cref="M:J2N.Numerics.Double.ToString(System.Double,System.String,System.IFormatProvider)"/> method formats <paramref name="value"/> in
a specified format of a specified culture. If you want to specify a different format or culture, use the
other overloads of the <see cref="M:J2N.Numerics.Double.ToString(System.Double,System.String,System.IFormatProvider)"/> method, as follows:
<list type="table">
<listheader>
<term>To use format</term>
<term>For culture</term>
<term>Use the overload</term>
</listheader>
<item>
<term>Default ("J") format</term>
<term>Default (current) culture</term>
<term><see cref="M:J2N.Numerics.Double.ToString(System.Double)"/> or <see cref="M:J2N.Numerics.Double.ToString"/></term>
</item>
<item>
<term>Default ("J") format</term>
<term>A specific culture</term>
<term><see cref="M:J2N.Numerics.Double.ToString(System.Double,System.IFormatProvider)"/> or <see cref="M:J2N.Numerics.Double.ToString(System.IFormatProvider)"/></term>
</item>
<item>
<term>A specific format or precision</term>
<term>Default (current) culture</term>
<term><see cref="M:J2N.Numerics.Double.ToString(System.Double,System.String)"/> or <see cref="M:J2N.Numerics.Double.ToString(System.String)"/></term>
</item>
</list>
The return value can be <see cref="P:System.Globalization.NumberFormatInfo.PositiveInfinitySymbol"/>, <see cref="P:System.Globalization.NumberFormatInfo.NegativeInfinitySymbol"/>,
<see cref="P:System.Globalization.NumberFormatInfo.NaNSymbol"/>, or the string representation of a number, as specified by <paramref name="format"/>.
<para/>
The <paramref name="format"/> parameter can be any valid standard numeric format specifier except for D, as well as any
combination of custom numeric format specifiers. If <paramref name="format"/> is <c>null</c> or an empty string, the return value for this
instance is formatted with the Java numeric format specifier ("J").
<para/>
.NET provides extensive formatting support, which is described in greater detail in the following formatting topics:
<list type="bullet">
<item><description>For more information about numeric format specifiers, see
<a href="https://docs.microsoft.com/en-us/dotnet/standard/base-types/standard-numeric-format-strings">Standard Numeric Format Strings</a>
and <a href="https://docs.microsoft.com/en-us/dotnet/standard/base-types/custom-numeric-format-strings">Custom Numeric Format Strings</a>.
</description></item>
<item><description>For more information about formatting, see
<a href="https://docs.microsoft.com/en-us/dotnet/standard/base-types/formatting-types">Formatting Types</a>.</description></item>
</list>
<para/>
The <paramref name="provider"/> parameter is an <see cref="T:System.IFormatProvider"/> implementation whose <see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> method returns
a <see cref="T:System.Globalization.NumberFormatInfo"/> object. Typically, provider is a <see cref="T:System.Globalization.CultureInfo"/> object or a <see cref="T:System.Globalization.NumberFormatInfo"/> object.
The <paramref name="provider"/> parameter supplies culture-specific information used in formatting. If <paramref name="provider"/> is <c>null</c>, the return value
is formatted using the <see cref="T:System.Globalization.NumberFormatInfo"/> object for the current culture.
<para/>
In addition to the formats specified in the above articles, the Java ("J") format and ("X") hexadecimal format are also supported.
<para/>
<h2>Java format specifier ("J")</h2>
<para/>
The ("J") format follows the specification of the Java Language Specification. However, do note that it may not return exactly the same
number representation as the JDK due to precision and rounding differences. The ("J") format is similar to the ("R") format in that
it can be fully round tripped and it ignores the precision specifier. However, do note that on platforms lower than .NET Core 3.0, this
format can only be round-tripped using overloads of <see cref="M:J2N.Numerics.Double.Parse(System.String,System.IFormatProvider)"/> and <see cref="M:J2N.Numerics.Double.TryParse(System.String,System.Double@)"/>
in J2N. On .NET Core 3.0 and higher overloads of <see cref="M:System.Double.Parse(System.String)"/> and <see cref="M:System.Double.TryParse(System.String,System.Double@)"/> will
also successfully round trip the number back to the same set of bits.
<para/>
Although you can include a precision specifier, it is ignored. Round trips are given precedence over precision when using this specifier.
The result string is affected by the formatting information of the current <see cref="T:System.Globalization.NumberFormatInfo"/> object. The following table lists
the <see cref="T:System.Globalization.NumberFormatInfo"/> properties that control the formatting of the result string.
<list type="table">
<listheader>
<term>NumberFormatInfo property</term>
<term>Description</term>
</listheader>
<item>
<term><see cref="P:System.Globalization.NumberFormatInfo.NegativeSign"/></term>
<term>Defines the string that indicates that a number is negative.</term>
</item>
<item>
<term><see cref="P:System.Globalization.NumberFormatInfo.NumberDecimalSeparator"/></term>
<term>Defines the string that separates integral digits from decimal digits.</term>
</item>
</list>
<para/>
Note that although this format follows the Java Language Specification, to exactly match the behavior as the JDK, it
must be in the invariant culture by specifying the <paramref name="provider"/> as <see cref="P:System.Globalization.CultureInfo.InvariantCulture"/>,
<see cref="P:System.Globalization.NumberFormatInfo.InvariantInfo"/> or <see cref="P:J2N.Text.StringFormatter.InvariantCulture"/>.
<para/>
<h2>Hexadecimal format specifier ("X")</h2>
<para/>
The hexadecimal ("X") format is uses the same floating-point hexadecimal format as the JDK and is provided for interoperability
with Java 6 and higher. The hexadecimal form have an analogous syntax to the simple and scaled decimal forms with the following differences:
<list type="number">
<item><description>Every hexadecimal floating point literal starts with a zero (0) and then an x or X.</description></item>
<item><description>The digits of the number (but not the exponent part!) also include the hexadecimal digits a through f
and their uppercase equivalents.</description></item>
<item><description>The exponent is introduced by the letter p (or P) instead of an e or E. The exponent represents a
scaling factor that is a power of 2 instead of a power of 10.</description></item>
</list>
<para/>
Here are some examples:
<code>
0x0.0p0 // this is zero expressed in hexadecimal form (float)<br/>
0xff.0p19 // this is 255.0 x 2^19 (double)
</code>
See the <see cref="M:J2N.Numerics.Double.ToHexString(System.IFormatProvider)"/> for more information about the format.
<para/>
Note that although this format follows the Java Language Specification, to exactly match the behavior as the JDK, it
must be in the invariant culture by specifying the <paramref name="provider"/> as <see cref="P:System.Globalization.CultureInfo.InvariantCulture"/>,
<see cref="P:System.Globalization.NumberFormatInfo.InvariantInfo"/> or <see cref="P:J2N.Text.StringFormatter.InvariantCulture"/>.
</remarks>
</member>
<member name="M:J2N.Numerics.Double.TryFormat(System.Span{System.Char},System.Int32@,System.ReadOnlySpan{System.Char},System.IFormatProvider)">
<summary>
Tries to format the value of the current double instance into the provided span of characters.
</summary>
<param name="destination">The span in which to write this instance's value formatted as a span of characters.</param>
<param name="charsWritten">When this method returns, contains the number of characters that were written in
<paramref name="destination"/>.</param>
<param name="format">A span containing the characters that represent a standard or custom format string that
defines the acceptable format for <paramref name="destination"/>.</param>
<param name="provider">An optional object that supplies culture-specific formatting information for
<paramref name="destination"/>.</param>
<returns><c>true</c> if the formatting was successful; otherwise, <c>false</c>.</returns>
</member>
<member name="M:J2N.Numerics.Double.TryFormat(System.Double,System.Span{System.Char},System.Int32@,System.ReadOnlySpan{System.Char},System.IFormatProvider)">
<summary>
Tries to format the value of the <paramref name="value"/> into the provided span of characters.
</summary>
<param name="value">The double number to format.</param>
<param name="destination">The span in which to write this instance's value formatted as a span of characters.</param>
<param name="charsWritten">When this method returns, contains the number of characters that were written in
<paramref name="destination"/>.</param>
<param name="format">A span containing the characters that represent a standard or custom format string that
defines the acceptable format for <paramref name="destination"/>.</param>
<param name="provider">An optional object that supplies culture-specific formatting information for
<paramref name="destination"/>.</param>
<returns><c>true</c> if the formatting was successful; otherwise, <c>false</c>.</returns>
</member>
<member name="M:J2N.Numerics.Double.Compare(System.Double,System.Double)">
<summary>
Compares the two specified <see cref="T:System.Double"/> values. There are two special cases:
<list type="table">
<item><description><see cref="F:System.Double.NaN"/> is equal to <see cref="F:System.Double.NaN"/> and it is greater
than any other double value, including <see cref="F:System.Double.PositiveInfinity"/></description></item>
<item><description>+0.0d (positive zero) is greater than -0.0d (negative zero).</description></item>
</list>
</summary>
<param name="doubleA">The first value to compare.</param>
<param name="doubleB">The second value to compare.</param>
<returns>
A 32-bit signed integer that indicates the relationship between the two comparands.
<list type="table">
<listheader>
<term>Return Value</term>
<term>Description </term>
</listheader>
<item>
<term>Less than zero</term>
<term><paramref name="doubleA"/> is less than <paramref name="doubleB"/>.</term>
</item>
<item>
<term>Zero</term>
<term><paramref name="doubleA"/> equal to <paramref name="doubleB"/>.</term>
</item>
<item>
<term>Greater than zero</term>
<term><paramref name="doubleA"/> is greater than <paramref name="doubleB"/>.</term>
</item>
</list>
</returns>
</member>
<member name="M:J2N.Numerics.Double.GetInstance(System.String,System.IFormatProvider)">
<summary>
Converts the string representation of a number in a specified style and culture-specific format to
its <see cref="T:J2N.Numerics.Double"/> instance equivalent.
<para/>
Usage Note: To approximately match the behavior of the JDK for decimal numbers, use <see cref="F:J2N.Globalization.NumberStyle.Float"/> combined with
<see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/> for <c>style</c> and <see cref="P:System.Globalization.NumberFormatInfo.InvariantInfo"/> for <paramref name="provider"/>.
To approximately match the behavior of the JDK for hexadecimal numbers, use <see cref="F:J2N.Globalization.NumberStyle.HexFloat"/> combined with
<see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/> for <c>style</c> and <see cref="P:System.Globalization.NumberFormatInfo.InvariantInfo"/> for <paramref name="provider"/>.
These options will parse any number that is supported by Java, but the hex specifier, exponent, and type suffix are all optional.
</summary>
<param name="s">A string that contains a number to convert.</param>
<param name="provider">An object that supplies culture-specific formatting information about <paramref name="s"/>.</param>
<returns>An immutable <see cref="T:J2N.Numerics.Double"/> instance equivalent to the numeric value or symbol specified in <paramref name="s"/>.</returns>
<exception cref="T:System.ArgumentNullException"><paramref name="s"/> is <c>null</c>.</exception>
<exception cref="T:System.FormatException"><paramref name="s"/> does not represent a number in a valid format.</exception>
<remarks>
In .NET Core 3.0 and later, values that are too large to represent are rounded to <see cref="F:System.Double.PositiveInfinity"/> or
<see cref="F:System.Double.NegativeInfinity"/> as required by the IEEE 754 specification. In prior versions, including .NET Framework, parsing a
value that was too large to represent resulted in failure. This implementation uses the new parser, but patches it back to .NET Framework 4.0.
<para/>
This overload is typically used to convert text that can be formatted in a variety of ways to a <see cref="T:System.Double"/> value. For example,
it can be used to convert the text entered by a user into an HTML text box to a numeric value.
<para/>
The <paramref name="s"/> parameter is interpreted using a combination of the <see cref="F:J2N.Globalization.NumberStyle.Float"/> and <see cref="F:J2N.Globalization.NumberStyle.AllowThousands"/> flags.
The <paramref name="s"/> parameter can contain <see cref="P:System.Globalization.NumberFormatInfo.PositiveInfinitySymbol"/>, <see cref="P:System.Globalization.NumberFormatInfo.NegativeInfinitySymbol"/>, or
<see cref="P:System.Globalization.NumberFormatInfo.NaNSymbol"/> for the culture specified by <paramref name="provider"/>, or it can contain a string of the form:
<para/>
[ws][sign]integral-digits[.[fractional-digits]][E[sign]exponential-digits][ws]
<para/>
Elements framed in square brackets ([ and ]) are optional. Elements that contain the term "digits" consist of a series of numeric characters
ranging from 0 to 9. The following table describes each element.
<para/>
<list type="table">
<listheader>
<term>Element</term>
<term>Description</term>
</listheader>
<item>
<term><i>ws</i></term>
<term>A series of white-space characters.</term>
</item>
<item>
<term><i>sign</i></term>
<term>A negative sign symbol (-) or a positive sign symbol (+).</term>
</item>
<item>
<term><i>integral-digits</i></term>
<term>A series of digits ranging from 0 to 9 that specify the integral part of the number. Runs of <i>integral-digits</i> can be partitioned
by a group-separator symbol. For example, in some cultures a comma (,) separates groups of thousands. The <i>integral-digits</i> element can be absent
if the string contains the <i>fractional-digits</i> element.</term>
</item>
<item>
<term><i>.</i></term>
<term>A culture-specific decimal point symbol.</term>
</item>
<item>
<term><i>fractional-digits</i>
</term>
<term>A series of digits ranging from 0 to 9 that specify the fractional part of the number.</term>
</item>
<item>
<term><i>e</i></term>
<term>The 'e' or 'E' character, which indicates that the value is represented in exponential notation.</term>
</item>
<item>
<term><i>exponential-digits</i></term>
<term>A sequence of decimal digits from 0 through 9 that specify an exponent.</term>
</item>
</list>
<para/>
For more information about numeric formats, see the <a href="https://docs.microsoft.com/en-us/dotnet/standard/base-types/formatting-types">
Formatting Types</a> topic.
<para/>
The <paramref name="provider"/> parameter is an <see cref="T:System.IFormatProvider"/> implementation, such as a <see cref="T:System.Globalization.CultureInfo"/> object,
a <see cref="T:System.Globalization.NumberFormatInfo"/> object or a <see cref="T:J2N.Text.StringFormatter"/> object, whose <see cref="M:System.IFormatProvider.GetFormat(System.Type)"/>
method returns a <see cref="T:System.Globalization.NumberFormatInfo"/> object. The <see cref="T:System.Globalization.NumberFormatInfo"/> object provides culture-specific information about
the format of <paramref name="s"/>. When the <see cref="M:J2N.Numerics.Double.GetInstance(System.String,System.IFormatProvider)"/> method is invoked, it calls the provider parameter's
<see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> method and passes it a <see cref="T:System.Type"/> object that represents the <see cref="T:System.Globalization.NumberFormatInfo"/> type.
The <see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> method then returns the <see cref="T:System.Globalization.NumberFormatInfo"/> object that provides information about the
format of the <paramref name="s"/> parameter. There are three ways to use the <paramref name="provider"/> parameter to supply custom formatting
information to the parse operation:
<list type="bullet">
<item><description>You can pass a <see cref="T:System.Globalization.CultureInfo"/> object that represents the culture that supplies formatting information. Its
<see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> method returns the <see cref="T:System.Globalization.NumberFormatInfo"/> object that provides numeric formatting
information for that culture.</description></item>
<item><description>You can pass the actual <see cref="T:System.Globalization.NumberFormatInfo"/> object that provides numeric formatting information. (Its
implementation of <see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> just returns itself.)</description></item>
<item><description>You can pass a custom object that implements <see cref="T:System.IFormatProvider"/>. Its <see cref="M:System.IFormatProvider.GetFormat(System.Type)"/>
method instantiates and returns the <see cref="T:System.Globalization.NumberFormatInfo"/> object that provides formatting information.</description></item>
</list>
If <paramref name="provider"/> is <c>null</c> or a <see cref="T:System.Globalization.NumberFormatInfo"/> object cannot be obtained, the <see cref="T:System.Globalization.NumberFormatInfo"/>
object for the current culture is used.
<para/>
If <paramref name="s"/> is out of range of the <see cref="T:System.Double"/> data type, the method returns <see cref="F:System.Double.NegativeInfinity"/> if
<paramref name="s"/> is less than <see cref="F:System.Double.MinValue"/> and <see cref="F:System.Double.PositiveInfinity"/> if <paramref name="s"/> is greater
than <see cref="F:System.Double.MaxValue"/>.
<para/>
If a separator is encountered in the <paramref name="s"/> parameter during a parse operation, and the applicable currency or number
decimal and group separators are the same, the parse operation assumes that the separator is a decimal separator rather than a group
separator. For more information about separators, see <see cref="P:System.Globalization.NumberFormatInfo.CurrencyDecimalSeparator"/>,
<see cref="P:System.Globalization.NumberFormatInfo.NumberDecimalSeparator"/>, <see cref="P:System.Globalization.NumberFormatInfo.CurrencyGroupSeparator"/>, and
<see cref="P:System.Globalization.NumberFormatInfo.NumberGroupSeparator"/>.
<para/>
Some examples of <paramref name="s"/> are "100", "-123,456,789", "123.45e+6", "+500", "5e2", "3.1416", "600.", "-.123", and "-Infinity".
</remarks>
<seealso cref="M:J2N.Numerics.Double.Parse(System.String,System.IFormatProvider)"/>
<seealso cref="M:J2N.Numerics.Double.TryParse(System.String,J2N.Globalization.NumberStyle,System.IFormatProvider,System.Double@)"/>
</member>
<member name="M:J2N.Numerics.Double.GetInstance(System.String,J2N.Globalization.NumberStyle,System.IFormatProvider)">
<summary>
Converts the string representation of a number in a specified style and culture-specific format to
its <see cref="T:J2N.Numerics.Double"/> instance equivalent.
<para/>
Usage Note: To approximately match the behavior of the JDK for decimal numbers, use <see cref="F:J2N.Globalization.NumberStyle.Float"/> combined with
<see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/> for <paramref name="style"/> and <see cref="P:System.Globalization.NumberFormatInfo.InvariantInfo"/> for <paramref name="provider"/>.
To approximately match the behavior of the JDK for hexadecimal numbers, use <see cref="F:J2N.Globalization.NumberStyle.HexFloat"/> combined with
<see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/> for <paramref name="style"/> and <see cref="P:System.Globalization.NumberFormatInfo.InvariantInfo"/> for <paramref name="provider"/>.
These options will parse any number that is supported by Java, but the hex specifier, exponent, and type suffix are all optional.
</summary>
<param name="s">A string that contains a number to convert.</param>
<param name="style">A bitwise combination of enumeration values that indicates the style elements
that can be present in <paramref name="s"/>. Typical values to specify is <see cref="F:J2N.Globalization.NumberStyle.Float"/>
combined with <see cref="F:J2N.Globalization.NumberStyle.AllowThousands"/> or, in the case of hexadecimal numbers,
<see cref="F:J2N.Globalization.NumberStyle.HexFloat"/>.</param>
<param name="provider">An object that supplies culture-specific formatting information about <paramref name="s"/>.</param>
<returns>An immutable <see cref="T:J2N.Numerics.Double"/> instance equivalent to the numeric value or symbol specified in <paramref name="s"/>.</returns>
<exception cref="T:System.ArgumentNullException"><paramref name="s"/> is <c>null</c>.</exception>
<exception cref="T:System.FormatException"><paramref name="s"/> does not represent a numeric value.</exception>
<exception cref="T:System.ArgumentException">
<paramref name="style"/> is not a <see cref="T:J2N.Globalization.NumberStyle"/> value.
<para/>
-or-
<para/>
<paramref name="style"/> is not a combination of <see cref="F:J2N.Globalization.NumberStyle.AllowHexSpecifier"/>, <see cref="F:J2N.Globalization.NumberStyle.HexFloat"/>
and <see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/> values.
<para/>
-or-
<para/>
<paramref name="style"/> has <see cref="F:J2N.Globalization.NumberStyle.AllowHexSpecifier"/> and <see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/> values
but not <see cref="F:J2N.Globalization.NumberStyle.AllowExponent"/>. When type suffix is supplied in a hexadecimal number, exponent (prefixed with a
p or P) is required.
<para/>
-or-
<para/>
<paramref name="style"/> is a combination of <see cref="F:J2N.Globalization.NumberStyle.AllowCurrencySymbol"/> and <see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/>.
</exception>
<remarks>
In .NET Core 3.0 and later, values that are too large to represent are rounded to <see cref="F:System.Double.PositiveInfinity"/> or
<see cref="F:System.Double.NegativeInfinity"/> as required by the IEEE 754 specification. In prior versions, including .NET Framework, parsing a
value that was too large to represent resulted in failure. This implementation uses the new parser, but patches it back to .NET Framework 4.0
and upgrades it to support Java's hexadecimal floating point format.
<para/>
The <paramref name="style"/> parameter defines the style elements (such as white space, thousands separators, and currency symbols) that
are allowed in the s parameter for the parse operation to succeed. It must be a combination of bit flags from the <see cref="T:J2N.Globalization.NumberStyle"/> enumeration.
<para/>
The <paramref name="s"/> parameter can contain <see cref="P:System.Globalization.NumberFormatInfo.PositiveInfinitySymbol"/>, <see cref="P:System.Globalization.NumberFormatInfo.NegativeInfinitySymbol"/>, or
<see cref="P:System.Globalization.NumberFormatInfo.NaNSymbol"/> for the culture specified by <paramref name="provider"/>. Depending on the value of <paramref name="style"/>,
it can also take one of the following forms:
<para/>
[ws] [$] [sign][integral-digits,]integral-digits[.[fractional-digits]][E[sign]exponential-digits][type][ws]
<para/>
Or, if <paramref name="style"/> includes <see cref="F:J2N.Globalization.NumberStyle.AllowHexSpecifier"/>:
<para/>
[ws] [$] [sign][0x][hexdigits,]hexdigits[.[fractional-hexdigits]][P[sign]exponential-digits][type][ws]
<para/>
Elements framed in square brackets ([ and ]) are optional. The following table describes each element.
<para/>
<list type="table">
<listheader>
<term>Element</term>
<term>Description</term>
</listheader>
<item>
<term><i>ws</i></term>
<term>A series of white-space characters. White space can appear at the beginning of <paramref name="s"/> if style includes the
<see cref="F:J2N.Globalization.NumberStyle.AllowLeadingWhite"/> flag, and it can appear at the end of <paramref name="s"/> if style includes the
<see cref="F:J2N.Globalization.NumberStyle.AllowTrailingWhite"/> flag.</term>
</item>
<item>
<term><i>$</i></term>
<term>A culture-specific currency symbol. Its position in the string is defined by the <see cref="P:System.Globalization.NumberFormatInfo.CurrencyNegativePattern"/>
and <see cref="P:System.Globalization.NumberFormatInfo.CurrencyPositivePattern"/> properties of the <see cref="T:System.Globalization.NumberFormatInfo"/> object returned by the
<see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> method of the <paramref name="provider"/> parameter. The current culture's currency symbol can
appear in <paramref name="s"/> if style includes the <see cref="F:J2N.Globalization.NumberStyle.AllowCurrencySymbol"/> flag.</term>
</item>
<item>
<term><i>sign</i></term>
<term>A negative sign symbol (-) or a positive sign symbol (+). The sign can appear at the beginning of <paramref name="s"/> if
<paramref name="style"/> includes the <see cref="F:J2N.Globalization.NumberStyle.AllowLeadingSign"/> flag, and it can appear at the end of <paramref name="s"/>
if <paramref name="style"/> includes the <see cref="F:J2N.Globalization.NumberStyle.AllowTrailingSign"/> flag. Parentheses can be used in <paramref name="s"/>
to indicate a negative value if <paramref name="style"/> includes the <see cref="F:J2N.Globalization.NumberStyle.AllowParentheses"/> flag.</term>
</item>
<item>
<term><i>integral-digits</i></term>
<term>A series of digits ranging from 0 to 9 that specify the integral part of the number. The <i>integral-digits</i> element can be absent
if the string contains the <i>fractional-digits</i> element.</term>
</item>
<item>
<term><i>0x</i>/></term>
<term>The '0x' or '0X' characters, which indicate a hexadecimal number is to immediately follow.</term>
</item>
<item>
<term><i>hexdigits</i></term>
<term>A sequence of hexadecimal digits from 0 through f, or 0 through F that specify the integral part of the number. The <i>hexdigits</i>
element can be absent if the string contains the <i>fractional-hexdigits</i> element. Hexadecimal digits can appear in <paramref name="s"/>
if <paramref name="style"/> includes the <see cref="F:J2N.Globalization.NumberStyle.AllowHexSpecifier"/> flag.</term>
</item>
<item>
<term><i>,</i></term>
<term>A culture-specific thousands separator. The thousands separator of the culture specified by <paramref name="provider"/>
can appear in <paramref name="s"/> if <paramref name="style"/> includes the <see cref="F:J2N.Globalization.NumberStyle.AllowThousands"/> flag.</term>
</item>
<item>
<term><i>.</i></term>
<term>A culture-specific decimal point symbol. The decimal point symbol of the culture specified by <paramref name="provider"/>
can appear in <paramref name="s"/> if <paramref name="style"/> includes the <see cref="F:J2N.Globalization.NumberStyle.AllowDecimalPoint"/> flag.</term>
</item>
<item>
<term><i>fractional-digits</i>
</term>
<term>A series of digits ranging from 0 to 9 that specify the fractional part of the number. Fractional digits can appear in
<paramref name="s"/> if <paramref name="style"/> includes the <see cref="F:J2N.Globalization.NumberStyle.AllowDecimalPoint"/> flag.</term>
</item>
<item>
<term><i>fractional-hexdigits</i>
</term>
<term>A sequence of hexadecimal digits from 0 through f, or 0 through F that specify the fractional part of the number.
Fractional digits can appear in <paramref name="s"/> if <paramref name="style"/> includes both the
<see cref="F:J2N.Globalization.NumberStyle.AllowDecimalPoint"/> and <see cref="F:J2N.Globalization.NumberStyle.AllowHexSpecifier"/> flags.</term>
</item>
<item>
<term><i>e</i></term>
<term>The 'e' or 'E' character, which indicates that the value is represented in exponential notation. The <paramref name="s"/>
parameter can represent a number in exponential notation if style includes the <see cref="F:J2N.Globalization.NumberStyle.AllowExponent"/> flag.</term>
</item>
<item>
<term><i>p</i></term>
<term>The 'p' or 'P' character, which indicates that the hexadecimal value is represented in exponential notation. The <paramref name="s"/>
parameter can represent a hexadecimal number in exponential notation if style includes both the <see cref="F:J2N.Globalization.NumberStyle.AllowExponent"/>
and <see cref="F:J2N.Globalization.NumberStyle.AllowHexSpecifier"/> flags.</term>
</item>
<item>
<term><i>exponential-digits</i></term>
<term>A sequence of decimal digits from 0 through 9 that specify an exponent.</term>
</item>
<item>
<term><i>type</i></term>
<term>The 'UL', 'Ul', 'uL', 'ul', 'LU', 'Lu', 'lU', or 'lu', which is the
<a href="https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/language-specification/lexical-structure#6453-integer-literals">integral type suffix</a>
or 'f', 'F', 'd', 'D', 'm' or 'M' character, which is the
<a href="https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/language-specification/lexical-structure#6454-real-literals">real type suffix</a>
of the number as specified in the C# language specification. The type suffix can appear in <paramref name="s"/> if <paramref name="style"/>
includes the <see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/> flag. If <paramref name="style"/> includes the <see cref="F:J2N.Globalization.NumberStyle.AllowHexSpecifier"/>
flag, specifying the <see cref="F:J2N.Globalization.NumberStyle.AllowExponent"/> is required. Including an exponent in the string (prefixed with 'p' or 'P') is
required for the type suffix characters 'f', 'F', 'd', and 'D' since they would otherwise be interpreted as hexadecimal integral or fractional digits.</term>
</item>
</list>
<para/>
NOTE: Any terminating NUL (U+0000) characters in <paramref name="s"/> are ignored by the parsing operation, regardless of
the value of the <paramref name="style"/> argument.
<para/>
A string with decimal digits only (which corresponds to the <see cref="F:J2N.Globalization.NumberStyle.None"/> flag) always parses successfully.
Most of the remaining <see cref="T:J2N.Globalization.NumberStyle"/> members control elements that may be but are not required to be present in
this input string. The following table indicates how individual <see cref="T:J2N.Globalization.NumberStyle"/> members affect the elements that may
be present in <paramref name="s"/>.
<list type="table">
<listheader>
<term>Non-composite NumberStyle values</term>
<term>Elements permitted in <paramref name="s"/> in addition to digits</term>
</listheader>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.None"/></term>
<term>Decimal digits only.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowDecimalPoint"/></term>
<term>The decimal point (.) and <i>fractional-digits</i> elements. However, <i>fractional-digits</i> must consist
of only one or more 0 digits or the method returns <c>false</c>.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowExponent"/></term>
<term>The <paramref name="s"/> parameter can also use exponential notation. If <paramref name="s"/> represents a
number in exponential notation, it must represent an integer within the range of the <see cref="T:System.Int64"/> data type
without a non-zero, fractional component.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowLeadingWhite"/></term>
<term>The <i>ws</i> element at the beginning of <paramref name="s"/>.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowTrailingWhite"/></term>
<term>The <i>ws</i> element at the end of <paramref name="s"/>.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowLeadingSign"/></term>
<term>A sign can appear before <i>digits</i>.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowTrailingSign"/></term>
<term>A sign can appear after <i>digits</i>.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowParentheses"/></term>
<term>The <i>sign</i> element in the form of parentheses enclosing the numeric value.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowThousands"/></term>
<term>The thousands separator (,) element.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowCurrencySymbol"/></term>
<term>The <i>$</i> element.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/></term>
<term>The literal <i>type</i> suffix used in the literal identifier syntax of C# or Java.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.Currency"/></term>
<term>All elements. The <paramref name="s"/> parameter cannot represent a hexadecimal
number or a number in exponential notation (prefixed with an 'e' or 'E').</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.Float"/></term>
<term>The <i>ws</i> element at the beginning or end of <paramref name="s"/>, sign at
the beginning of <paramref name="s"/>, and the decimal point (.) symbol. The <paramref name="s"/>
parameter can also use exponential notation (prefixed with an 'e' or 'E').</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.HexFloat"/></term>
<term>The <i>ws</i> element at the beginning or end of <paramref name="s"/>, sign at
the beginning of <paramref name="s"/>, and the decimal point (.) symbol. The <paramref name="s"/>
parameter can also use exponential notation (prefixed with a 'p' or 'P').</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.Number"/></term>
<term>The <i>ws</i>, <i>sign</i>, thousands separator (,), and decimal point (.) elements.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.Any"/></term>
<term>All styles, except <paramref name="s"/> cannot represent a hexadecimal number.</term>
</item>
</list>
<para/>
The <see cref="T:J2N.Globalization.NumberStyle"/> enum can be converted to the .NET <see cref="T:System.Globalization.NumberStyles"/> enum by using the
<see cref="M:J2N.Globalization.NumberStyleExtensions.ToNumberStyles(J2N.Globalization.NumberStyle)"/> extension method.
Similarly, <see cref="T:System.Globalization.NumberStyles"/> enum can be converted to the J2N <see cref="T:J2N.Globalization.NumberStyle"/> enum by using
the <see cref="M:J2N.Globalization.NumberStyleExtensions.ToNumberStyle(System.Globalization.NumberStyles)"/> extension method.
<para/>
If the <see cref="F:J2N.Globalization.NumberStyle.AllowHexSpecifier"/> flag is used, <paramref name="s"/> must be a hexadecimal value which may include an optional 0x or 0X prefix.
For example, "0xC9AF3.8BD4C". This flag may be combined with any of the flags specified in <see cref="F:J2N.Globalization.NumberStyle.Float"/> and also
<see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/>. (The <see cref="T:J2N.Globalization.NumberStyle"/> enumeration has a composite style, <see cref="F:J2N.Globalization.NumberStyle.HexFloat"/>,
that includes all of those flags except <see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/>.)
<para/>
The <paramref name="provider"/> parameter is an <see cref="T:System.IFormatProvider"/> implementation, such as a <see cref="T:System.Globalization.CultureInfo"/> object,
a <see cref="T:System.Globalization.NumberFormatInfo"/> object or a <see cref="T:J2N.Text.StringFormatter"/> object, whose <see cref="M:System.IFormatProvider.GetFormat(System.Type)"/>
method returns a <see cref="T:System.Globalization.NumberFormatInfo"/> object. The <see cref="T:System.Globalization.NumberFormatInfo"/> object provides culture-specific information about
the format of <paramref name="s"/>. When the <see cref="M:J2N.Numerics.Double.GetInstance(System.String,System.IFormatProvider)"/> method is invoked, it calls the provider parameter's
<see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> method and passes it a <see cref="T:System.Type"/> object that represents the <see cref="T:System.Globalization.NumberFormatInfo"/> type.
The <see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> method then returns the <see cref="T:System.Globalization.NumberFormatInfo"/> object that provides information about the
format of the <paramref name="s"/> parameter. There are three ways to use the <paramref name="provider"/> parameter to supply custom formatting
information to the parse operation:
<list type="bullet">
<item><description>You can pass a <see cref="T:System.Globalization.CultureInfo"/> object that represents the culture that supplies formatting information. Its
<see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> method returns the <see cref="T:System.Globalization.NumberFormatInfo"/> object that provides numeric formatting
information for that culture.</description></item>
<item><description>You can pass the actual <see cref="T:System.Globalization.NumberFormatInfo"/> object that provides numeric formatting information. (Its
implementation of <see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> just returns itself.)</description></item>
<item><description>You can pass a custom object that implements <see cref="T:System.IFormatProvider"/>. Its <see cref="M:System.IFormatProvider.GetFormat(System.Type)"/>
method instantiates and returns the <see cref="T:System.Globalization.NumberFormatInfo"/> object that provides formatting information.</description></item>
</list>
If <paramref name="provider"/> is <c>null</c> or a <see cref="T:System.Globalization.NumberFormatInfo"/> object cannot be obtained, the <see cref="T:System.Globalization.NumberFormatInfo"/>
object for the current culture is used.
<para/>
If <paramref name="s"/> is out of range of the <see cref="T:System.Double"/> data type, the method returns <see cref="F:System.Double.NegativeInfinity"/> if
<paramref name="s"/> is less than <see cref="F:System.Double.MinValue"/> and <see cref="F:System.Double.PositiveInfinity"/> if <paramref name="s"/> is greater
than <see cref="F:System.Double.MaxValue"/>.
<para/>
If a separator is encountered in the <paramref name="s"/> parameter during a parse operation, and the applicable currency or number
decimal and group separators are the same, the parse operation assumes that the separator is a decimal separator rather than a group
separator. For more information about separators, see <see cref="P:System.Globalization.NumberFormatInfo.CurrencyDecimalSeparator"/>,
<see cref="P:System.Globalization.NumberFormatInfo.NumberDecimalSeparator"/>, <see cref="P:System.Globalization.NumberFormatInfo.CurrencyGroupSeparator"/>, and
<see cref="P:System.Globalization.NumberFormatInfo.NumberGroupSeparator"/>.
</remarks>
<seealso cref="M:J2N.Numerics.Double.Parse(System.String,J2N.Globalization.NumberStyle,System.IFormatProvider)"/>
<seealso cref="M:J2N.Numerics.Double.TryParse(System.String,J2N.Globalization.NumberStyle,System.IFormatProvider,System.Double@)"/>
</member>
<member name="M:J2N.Numerics.Double.GetInstance(System.Double)">
<summary>
Returns an immutable <see cref="T:J2N.Numerics.Double"/> instance for the specified <paramref name="value"/>.
<para/>
Usage Note: This is the same operation as Double.valueOf() in the JDK.
</summary>
<param name="value">The <see cref="T:System.Double"/> value the returned instance represents.</param>
<returns>An immutable <see cref="T:J2N.Numerics.Double"/> instance containing the <paramref name="value"/>.</returns>
</member>
<member name="M:J2N.Numerics.Double.ToHexString(System.IFormatProvider)">
<summary>
Returns a hexadecimal string representation of the current instance. All characters mentioned below are ASCII characters.
<list type="bullet">
<item><description>If the current value is <see cref="F:System.Double.NaN"/>, the result is <see cref="P:System.Globalization.NumberFormatInfo.NumberDecimalSeparator"/>
of the <paramref name="provider"/>.</description></item>
<item><description>Otherwise, the result is a string that represents the sign and magnitude of the current value. If the sign
is negative, it is prefixed by <see cref="P:System.Globalization.NumberFormatInfo.NegativeSign"/> of the <paramref name="provider"/>; if the
sign is positive, no sign character appears in the result. As for the magnitude <i>m</i>: </description>
<list type="bullet">
<item><description>If <i>m</i> is positive infinity, it is represented by <see cref="P:System.Globalization.NumberFormatInfo.PositiveInfinitySymbol"/> of the <paramref name="provider"/>;
if <i>m</i> is negative infinity, it is represented by <see cref="P:System.Globalization.NumberFormatInfo.NegativeInfinitySymbol"/> of the <paramref name="provider"/>.</description></item>
<item><description>If <i>m</i> is zero, it is represented by the string "0x0.0p0"; thus, negative zero produces the result
"-0x0.0p0" and positive zero produces the result "0x0.0p0". The negative symbol is represented by <see cref="P:System.Globalization.NumberFormatInfo.NegativeSign"/>
and decimal separator character is represented by <see cref="P:System.Globalization.NumberFormatInfo.NumberDecimalSeparator"/>.</description></item>
<item><description>If <i>m</i> is a <see cref="T:System.Double"/> value with a normalized representation, substrings are used to represent the significand
and exponent fields. The significand is represented by the characters "0x1" followed by <see cref="P:System.Globalization.NumberFormatInfo.NumberDecimalSeparator"/>,
followed by a lowercase hexadecimal representation of the rest of the significand as a fraction. Trailing zeros in the hexadecimal representation are
removed unless all the digits are zero, in which case a single zero is used. Next, the exponent is represented by "p"
followed by a decimal string of the unbiased exponent as if produced by a call to <see cref="M:System.Int32.ToString"/> with invariant culture on the exponent value. </description></item>
<item><description>If <i>m</i> is a <see cref="T:System.Double"/> value with a subnormal representation, the significand is represented by the characters "0x0"
followed by <see cref="P:System.Globalization.NumberFormatInfo.NumberDecimalSeparator"/>, followed by a hexadecimal representation of the rest of the significand as a fraction.
Trailing zeros in the hexadecimal representation are removed. Next, the exponent is represented by "p-1022". Note that there must be at least one nonzero
digit in a subnormal significand. </description></item>
</list>
</item>
</list>
<para/>
The value of <see cref="P:System.Globalization.NumberFormatInfo.NumberNegativePattern"/> of <paramref name="provider"/> is ignored.
<para/>
<h3>Examples (using <see cref="P:System.Globalization.NumberFormatInfo.InvariantInfo"/>)</h3>
<list type="table">
<listheader>
<term>Floating-point Value</term>
<term>Hexadecimal String</term>
</listheader>
<item>
<term>1.0</term>
<term>0x1.0p0</term>
</item>
<item>
<term>-1.0</term>
<term>-0x1.0p0</term>
</item>
<item>
<term>2.0</term>
<term>0x1.0p1</term>
</item>
<item>
<term>3.0</term>
<term>0x1.8p1</term>
</item>
<item>
<term>0.5</term>
<term>0x1.0p-1</term>
</item>
<item>
<term>0.25</term>
<term>0x1.0p-2</term>
</item>
<item>
<term><see cref="F:System.Double.MaxValue"/></term>
<term>0x1.fffffffffffffp1023</term>
</item>
<item>
<term>Minimum Normal Value</term>
<term>0x1.0p-1022</term>
</item>
<item>
<term>Maximum Subnormal Value</term>
<term>0x0.fffffffffffffp-1022</term>
</item>
<item>
<term><see cref="F:System.Double.Epsilon"/></term>
<term>0x0.0000000000001p-1022</term>
</item>
</list>
<para/>
Usage Note: To exactly match the behavior of the JDK, use <see cref="P:System.Globalization.NumberFormatInfo.InvariantInfo"/>
for <paramref name="provider"/>.
</summary>
<param name="provider">An object that supplies culture-specific formatting information.</param>
<returns>A hex string representing the current instance.</returns>
</member>
<member name="M:J2N.Numerics.Double.op_Implicit(J2N.Numerics.Double)~System.Double">
<inheritdoc/>
</member>
<member name="M:J2N.Numerics.Double.op_Implicit(System.Double)~J2N.Numerics.Double">
<inheritdoc/>
</member>
<member name="M:J2N.Numerics.Double.ToByte">
<inheritdoc/>
</member>
<member name="M:J2N.Numerics.Double.ToDouble">
<inheritdoc/>
</member>
<member name="M:J2N.Numerics.Double.ToInt16">
<inheritdoc/>
</member>
<member name="M:J2N.Numerics.Double.ToInt32">
<inheritdoc/>
</member>
<member name="M:J2N.Numerics.Double.ToInt64">
<inheritdoc/>
</member>
<member name="M:J2N.Numerics.Double.ToSByte">
<inheritdoc/>
</member>
<member name="M:J2N.Numerics.Double.ToSingle">
<inheritdoc/>
</member>
<member name="M:J2N.Numerics.Double.GetTypeCode">
<summary>
Returns the <see cref="T:System.TypeCode"/> for value type <see cref="T:System.Double"/>.
</summary>
<returns>The enumerated constant, <see cref="F:System.TypeCode.Double"/>.</returns>
</member>
<member name="T:J2N.Numerics.Int16">
<summary>
An immutable reference type that wraps the primitive <see cref="T:System.Int16"/> type.
<para/>
In addition, this class provides methods for converting a <see cref="T:System.Int16"/> to a <see cref="T:System.String"/> and
a <see cref="T:System.String"/> to a <see cref="T:System.Int16"/> that are compatible with Java.
<para/>
Instances of this class can be produced implicitly by setting a <see cref="T:System.Int16"/> value to a variable declared
as <see cref="T:J2N.Numerics.Int16"/>
<code>
byte value = 4;
Int16 instance = value;
</code>
Or explicitly by calling one of the <see cref="M:J2N.Numerics.Int16.GetInstance(System.Int16)"/>, <see cref="M:J2N.Numerics.Int16.Decode(System.String)"/>,
or <see cref="M:J2N.Numerics.Int16.TryDecode(System.String,J2N.Numerics.Int16@)"/> methods.
<para/>
The <see cref="T:System.Int16"/> value of an <see cref="T:J2N.Numerics.Int16"/> can also be retrieved in several ways. For implicit
conversion, simply assign a <see cref="T:System.Int16"/> variable an instance of <see cref="T:J2N.Numerics.Int16"/>.
<code>
Int16 instance = Int16.GetInstance((short)4);
short value = instance;
</code>
To explicitly get the value, call <see cref="M:J2N.Numerics.Int16.ToInt16"/> or use the <see cref="T:System.Convert"/> class.
<code>
short converted1 = instance.ToInt16();
short converted2 = Convert.ToInt16(instance, NumberFormatInfo.InvariantInfo);
</code>
<para/>
In most cases, the number types in .NET will suffice. The main reason for creating an object to wrap numeric types is to
provide a way to make strongly-typed instances that can co-exist in collections and arrays with reference types.
For example, when creating a table object that has columns with a mix of number and string data types.
When porting code from Java, there are sometimes cases where the design didn't factor in the use of value types,
so these classes can be used rather than reworking the design.
For more information about numbers classes, see
<a href="https://docs.oracle.com/javase/tutorial/java/data/numberclasses.html">The Numbers Classes</a>.
</summary>
<seealso cref="T:J2N.Numerics.Number"/>
<seealso cref="T:System.IConvertible"/>
<seealso cref="T:System.IFormattable"/>
<seealso cref="T:System.IComparable"/>
</member>
<member name="F:J2N.Numerics.Int16.value">
<summary>
The value which the receiver represents.
</summary>
</member>
<member name="F:J2N.Numerics.Int16.Size">
<summary>
Constant for the number of bits needed to represent a <see cref="T:System.Int16"/> in
two's complement form.
</summary>
</member>
<member name="M:J2N.Numerics.Int16.#ctor(System.Int16)">
<summary>
Initializes a new instance of the <see cref="T:J2N.Numerics.Int16"/> class.
</summary>
<param name="value">The primitive <see cref="T:System.Int16"/> value to store in the new instance.</param>
</member>
<member name="M:J2N.Numerics.Int16.CompareTo(J2N.Numerics.Int16)">
<summary>
Compares this instance to a specified <see cref="T:J2N.Numerics.Int16"/> and returns an indication of their relative values.
</summary>
<param name="value">An <see cref="T:J2N.Numerics.Int16"/> to compare, or <c>null</c>.</param>
<returns>
A signed integer that indicates the relative order of this instance and <paramref name="value"/>.
<list type="table">
<listheader>
<term>Return Value</term>
<term>Description </term>
</listheader>
<item>
<term>Less than zero</term>
<term>This instance is less than <paramref name="value"/>.</term>
</item>
<item>
<term>Zero</term>
<term>This instance is equal to <paramref name="value"/>.</term>
</item>
<item>
<term>Greater than zero</term>
<term>This instance is greater than <paramref name="value"/>, or <paramref name="value"/> is <c>null</c>.</term>
</item>
</list>
</returns>
<remarks>
This method implements the <see cref="T:System.IComparable`1"/> interface and performs slightly better than the <see cref="M:J2N.Numerics.Int16.CompareTo(System.Object)"/>
method because it does not have to convert the <paramref name="value"/> parameter to an object.
</remarks>
</member>
<member name="M:J2N.Numerics.Int16.CompareTo(System.Object)">
<summary>
Compares this instance to a specified object and returns an indication of their relative values.
</summary>
<param name="value">An object to compare, or <c>null</c>.</param>
<returns>
A signed integer that indicates the relative order of this instance and <paramref name="value"/>.
<list type="table">
<listheader>
<term>Return Value</term>
<term>Description </term>
</listheader>
<item>
<term>Less than zero</term>
<term>This instance is less than <paramref name="value"/>.</term>
</item>
<item>
<term>Zero</term>
<term>This instance is equal to <paramref name="value"/>.</term>
</item>
<item>
<term>Greater than zero</term>
<term>This instance is greater than <paramref name="value"/>, or <paramref name="value"/> is <c>null</c>.</term>
</item>
</list>
</returns>
<exception cref="T:System.ArgumentException"><paramref name="value"/> is not a <see cref="T:J2N.Numerics.Int16"/>.</exception>
<remarks>
<paramref name="value"/> must be <c>null</c> or an instance of <see cref="T:J2N.Numerics.Int16"/>; otherwise, an exception is thrown.
<para/>
Any instance of <see cref="T:J2N.Numerics.Int16"/>, regardless of its value, is considered greater than <c>null</c>.
<para/>
This method is implemented to support the <see cref="T:System.IComparable"/> interface.
</remarks>
</member>
<member name="M:J2N.Numerics.Int16.Decode(System.String)">
<summary>
Decodes a <see cref="T:System.String"/> into an <see cref="T:J2N.Numerics.Int16"/>. Accepts decimal, hexadecimal, and octal numbers given by the following grammar:
<list type="bullet">
<item>
<term><i>DecodableString:</i></term>
<list type="bullet">
<item><term><i>Sign</i> (<sub>opt</sub>) <i>DecimalNumeral</i></term></item>
<item><term><i>Sign</i> (<sub>opt</sub>) <c>0x</c> <i>HexDigits</i></term></item>
<item><term><i>Sign</i> (<sub>opt</sub>) <c>0X</c> <i>HexDigits</i></term></item>
<item><term><i>Sign</i> (<sub>opt</sub>) <c>#</c> <i>HexDigits</i></term></item>
<item><term><i>Sign</i> (<sub>opt</sub>) <c>0</c> <i>OctalDigits</i></term></item>
</list>
</item>
<item>
<term><i>Sign:</i></term>
<list type="bullet">
<item><term><c>-</c></term></item>
<item><term><c>+</c></term></item>
</list>
</item>
</list>
<para/>
<i>DecimalNumeral</i>, <i>HexDigits</i>, and <i>OctalDigits</i> are as defined in section
<a href="https://docs.oracle.com/javase/specs/jls/se16/html/jls-3.html#jls-3.10.1">3.10.1</a> of
The Java Language Specification, except that underscores are not accepted between digits.
<para/>
The sequence of characters following an optional sign and/or radix specifier (<c>"0x"</c>, <c>"0X"</c>, <c>"#"</c>, or leading zero) is
parsed as by the <see cref="M:J2N.Numerics.Int16.Parse(System.String,System.Int32)"/> method with the indicated radix (10, 16, or 8).
The sequence of characters must represent a positive value or an <see cref="T:System.OverflowException"/> is thrown.
The result is negated if the first character of the specified <see cref="T:System.String"/> is
the ASCII character \u002d ('-'). No whitespace characters are permitted in the <see cref="T:System.String"/>.
</summary>
<param name="s">A <see cref="T:System.String"/> that contains the number to convert.</param>
<returns>A 16-bit signed integer that is equivalent to the number in <paramref name="s"/>.</returns>
<exception cref="T:System.ArgumentNullException"><paramref name="s"/> is <c>null</c>.</exception>
<exception cref="T:System.FormatException">
<paramref name="s"/> contains a character that is not a valid digit in the base specified by its format.
The exception message indicates that there are no digits to convert if the first character in <paramref name="s"/> is invalid;
otherwise, the message indicates that <paramref name="s"/> contains invalid trailing characters.
<para/>
-or-
<para/>
<paramref name="s"/> contains only a the ASCII character \u002d ('-') or \u002B ('+') sign and/or hexadecimal
prefix (0X, 0x, or #) or octal prefix (0) with no digits.
</exception>
<exception cref="T:System.OverflowException">
<paramref name="s"/> represents a number that is less than <see cref="F:System.Int16.MinValue"/> or greater than <see cref="F:System.Int16.MaxValue"/>.
<para/>
-or-
<para/>
<paramref name="s"/> represents a two's complement negative number. Only positive values are allowed without a negative sign.
</exception>
</member>
<member name="M:J2N.Numerics.Int16.TryDecode(System.String,J2N.Numerics.Int16@)">
<summary>
Decodes a <see cref="T:System.String"/> into an <see cref="T:J2N.Numerics.Int16"/>. Accepts decimal, hexadecimal, and octal numbers given by the following grammar:
<list type="bullet">
<item>
<term><i>DecodableString:</i></term>
<list type="bullet">
<item><term><i>Sign</i> (<sub>opt</sub>) <i>DecimalNumeral</i></term></item>
<item><term><i>Sign</i> (<sub>opt</sub>) <c>0x</c> <i>HexDigits</i></term></item>
<item><term><i>Sign</i> (<sub>opt</sub>) <c>0X</c> <i>HexDigits</i></term></item>
<item><term><i>Sign</i> (<sub>opt</sub>) <c>#</c> <i>HexDigits</i></term></item>
<item><term><i>Sign</i> (<sub>opt</sub>) <c>0</c> <i>OctalDigits</i></term></item>
</list>
</item>
<item>
<term><i>Sign:</i></term>
<list type="bullet">
<item><term><c>-</c></term></item>
<item><term><c>+</c></term></item>
</list>
</item>
</list>
<para/>
<i>DecimalNumeral</i>, <i>HexDigits</i>, and <i>OctalDigits</i> are as defined in section
<a href="https://docs.oracle.com/javase/specs/jls/se16/html/jls-3.html#jls-3.10.1">3.10.1</a> of
The Java Language Specification, except that underscores are not accepted between digits.
<para/>
The sequence of characters following an optional sign and/or radix specifier (<c>"0x"</c>, <c>"0X"</c>, <c>"#"</c>, or leading zero) is
parsed as by the <see cref="M:J2N.Numerics.Int16.Parse(System.String,System.Int32)"/> method with the indicated radix (10, 16, or 8).
The sequence of characters must represent a positive value.
The result is negated if the first character of the specified <see cref="T:System.String"/> is
the ASCII character \u002d ('-'). No whitespace characters are permitted in the <see cref="T:System.String"/>.
</summary>
<param name="s">A <see cref="T:System.String"/> that contains the number to convert.</param>
<param name="result">When this method returns, contains the 16-bit signed integer value equivalent to the number contained in <paramref name="s"/>,
if the conversion succeeded, or zero if the conversion failed. The conversion fails if the <paramref name="s"/> parameter is <c>null</c> or
<see cref="F:System.String.Empty"/>, is not of the correct format, or represents a number less than <see cref="F:System.Int16.MinValue"/> or greater than
<see cref="F:System.Int16.MaxValue"/>. This parameter is passed uninitialized; any value originally supplied in result will be overwritten.</param>
<returns><c>true</c> if <paramref name="s"/> was converted successfully; otherwise, <c>false</c>.</returns>
</member>
<member name="M:J2N.Numerics.Int16.Equals(J2N.Numerics.Int16)">
<summary>
Returns a value indicating whether this instance is equal to a specified <see cref="T:J2N.Numerics.Int16"/> value.
</summary>
<param name="obj">A <see cref="T:J2N.Numerics.Int16"/> value to compare to this instance.</param>
<returns><c>true</c> if <paramref name="obj"/> has the same value as this instance; otherwise, <c>false</c>.</returns>
<remarks>This method implements the <see cref="T:System.IEquatable`1"/> interface, and performs slightly better than
<see cref="M:J2N.Numerics.Int16.Equals(System.Object)"/> because it does not have to convert the <paramref name="obj"/> parameter to an object.</remarks>
</member>
<member name="M:J2N.Numerics.Int16.Equals(System.Object)">
<summary>
Returns a value indicating whether this instance is equal to a specified object.
</summary>
<param name="obj">An object to compare with this instance.</param>
<returns><c>true</c> if <paramref name="obj"/> is an instance of <see cref="T:J2N.Numerics.Int16"/> and equals the value of
this instance; otherwise, <c>false</c>.</returns>
</member>
<member name="M:J2N.Numerics.Int16.GetHashCode">
<summary>
Returns the hash code for this instance.
</summary>
<returns>A 32-bit signed integer hash code.</returns>
</member>
<member name="M:J2N.Numerics.Int16.Parse(System.ReadOnlySpan{System.Char},System.Int32,System.Int32,System.Int32)">
<summary>
Parses the <see cref="T:System.ReadOnlySpan`1"/> argument as a signed <see cref="T:System.Int16"/> in the specified <paramref name="radix"/>, beginning at the
specified <paramref name="startIndex"/> with the specified number of characters in <paramref name="length"/>.
<para/>
IMPORTANT: This method has .NET semantics. That is, the <paramref name="length"/> parameter
is a length rather than an exclusive end index as would be the case in Java. To translate from
Java, use <c>endIndex - beginIndex</c> to obtain the <paramref name="length"/>.
<para/>
Usage Note: This method is similar to the <see cref="M:System.Convert.ToInt16(System.String,System.Int32)"/> method, however it allows conversion
of the value without allocating a substring. It also differs in that it allows the use of the ASCII character \u002d ('-')
or \u002B ('+') in any <paramref name="radix"/> and allows any <paramref name="radix"/> value from
<see cref="F:J2N.Character.MinRadix"/> to <see cref="F:J2N.Character.MaxRadix"/> inclusive.
<para/>
Supports any BMP (Basic Multilingual Plane) or SMP (Supplementary Mulitlingual Plane) digit as defined by Unicode 10.0.
</summary>
<param name="s">The <see cref="T:System.ReadOnlySpan`1"/> containing the <see cref="T:System.Int16"/> representation to be parsed.</param>
<param name="startIndex">The zero-based starting character position of a region in <paramref name="s"/>.</param>
<param name="length">The number of characters in the region to parse.</param>
<param name="radix">The radix (or base) to use when parsing <paramref name="s"/>. The value must be in the range
<see cref="F:J2N.Character.MinRadix"/> - <see cref="F:J2N.Character.MaxRadix"/> inclusive.</param>
<returns>The signed <see cref="T:System.Int16"/> represented by the subsequence in the specified <paramref name="radix"/>.</returns>
<remarks>
If <paramref name="radix"/> is 16, you can prefix the number specified by the <paramref name="s"/> parameter with "0x" or "0X".
<para/>
To specify a negative value for base (radix) 10 numeric representations, use the ASCII character \u002d ('-').
<para/>
For any other <paramref name="radix"/>, negative values may either be specified with ASCII character \u002d ('-')
(as in Java) or by specifying the two's complement representation (as in .NET), but not both.
In the latter case, the highest-order binary bit of an integer (bit 15) is interpreted as the sign bit.
As a result, it is possible to write code in which a non-base 10 number that is out of the range of the <see cref="T:System.Int16"/>
data type is converted to a <see cref="T:System.Int16"/> value without the method throwing an exception.
</remarks>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="startIndex"/> or <paramref name="length"/> is less than zero.
<para/>
-or-
<para/>
<paramref name="startIndex"/> and <paramref name="length"/> refer to a location outside of <paramref name="s"/>.
<para/>
-or-
<para/>
<paramref name="radix"/> is less than <see cref="F:J2N.Character.MinRadix"/> or greater than <see cref="F:J2N.Character.MaxRadix"/>.
</exception>
<exception cref="T:System.FormatException">
The range of characters in <paramref name="s"/> specified by <paramref name="startIndex"/> and <paramref name="length"/>
contains a character that is not a valid digit in the base specified by <paramref name="radix"/>.
The exception message indicates that there are no digits to convert if the first character specified by
<paramref name="startIndex"/> is invalid; otherwise, the message indicates that the range of characters in
<paramref name="s"/> specified by <paramref name="startIndex"/> and <paramref name="length"/> contains invalid trailing characters.
<para/>
-or-
<para/>
The range of characters in <paramref name="s"/> specified by <paramref name="startIndex"/> and <paramref name="length"/>
contain only a the ASCII character \u002d ('-') or \u002B ('+') sign and/or hexadecimal prefix 0X or 0x with no digits.
<para/>
-or-
<para/>
<paramref name="length"/> is zero.
</exception>
<exception cref="T:System.OverflowException">
The range of characters in <paramref name="s"/> specified by <paramref name="startIndex"/> and <paramref name="length"/>
represents a number that is less than <see cref="F:System.Int16.MinValue"/> or greater than <see cref="F:System.Int16.MaxValue"/>.
</exception>
<seealso cref="M:J2N.Numerics.Int16.TryParse(System.ReadOnlySpan{System.Char},System.Int32,System.Int32,System.Int32,System.Int16@)"/>
<seealso cref="M:J2N.Numerics.Int16.Parse(System.String,System.Int32)"/>
</member>
<member name="M:J2N.Numerics.Int16.Parse(System.String,System.Int32,System.Int32,System.Int32)">
<summary>
Parses the <see cref="T:System.String"/> argument as a signed <see cref="T:System.Int16"/> in the specified <paramref name="radix"/>, beginning at the
specified <paramref name="startIndex"/> with the specified number of characters in <paramref name="length"/>.
<para/>
IMPORTANT: This method has .NET semantics. That is, the <paramref name="length"/> parameter
is a length rather than an exclusive end index as would be the case in Java. To translate from
Java, use <c>endIndex - beginIndex</c> to obtain the <paramref name="length"/>.
<para/>
Usage Note: This method is similar to the <see cref="M:System.Convert.ToInt16(System.String,System.Int32)"/> method, however it allows conversion
of the value without allocating a substring. It also differs in that it allows the use of the ASCII character \u002d ('-')
or \u002B ('+') in any <paramref name="radix"/> and allows any <paramref name="radix"/> value from
<see cref="F:J2N.Character.MinRadix"/> to <see cref="F:J2N.Character.MaxRadix"/> inclusive.
<para/>
Supports any BMP (Basic Multilingual Plane) or SMP (Supplementary Mulitlingual Plane) digit as defined by Unicode 10.0.
</summary>
<param name="s">The <see cref="T:System.String"/> containing the <see cref="T:System.Int16"/> representation to be parsed.</param>
<param name="startIndex">The zero-based starting character position of a region in <paramref name="s"/>.</param>
<param name="length">The number of characters in the region to parse.</param>
<param name="radix">The radix (or base) to use when parsing <paramref name="s"/>. The value must be in the range
<see cref="F:J2N.Character.MinRadix"/> - <see cref="F:J2N.Character.MaxRadix"/> inclusive.</param>
<returns>The signed <see cref="T:System.Int16"/> represented by the subsequence in the specified <paramref name="radix"/>.</returns>
<remarks>
If <paramref name="radix"/> is 16, you can prefix the number specified by the <paramref name="s"/> parameter with "0x" or "0X".
<para/>
To specify a negative value for base (radix) 10 numeric representations, use the ASCII character \u002d ('-').
<para/>
For any other <paramref name="radix"/>, negative values may either be specified with ASCII character \u002d ('-')
(as in Java) or by specifying the two's complement representation (as in .NET), but not both.
In the latter case, the highest-order binary bit of an integer (bit 15) is interpreted as the sign bit.
As a result, it is possible to write code in which a non-base 10 number that is out of the range of the <see cref="T:System.Int16"/>
data type is converted to a <see cref="T:System.Int16"/> value without the method throwing an exception.
</remarks>
<exception cref="T:System.ArgumentNullException"><paramref name="s"/> is <c>null</c>.</exception>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="startIndex"/> or <paramref name="length"/> is less than zero.
<para/>
-or-
<para/>
<paramref name="startIndex"/> and <paramref name="length"/> refer to a location outside of <paramref name="s"/>.
<para/>
-or-
<para/>
<paramref name="radix"/> is less than <see cref="F:J2N.Character.MinRadix"/> or greater than <see cref="F:J2N.Character.MaxRadix"/>.
</exception>
<exception cref="T:System.FormatException">
The range of characters in <paramref name="s"/> specified by <paramref name="startIndex"/> and <paramref name="length"/>
contains a character that is not a valid digit in the base specified by <paramref name="radix"/>.
The exception message indicates that there are no digits to convert if the first character specified by
<paramref name="startIndex"/> is invalid; otherwise, the message indicates that the range of characters in
<paramref name="s"/> specified by <paramref name="startIndex"/> and <paramref name="length"/> contains invalid trailing characters.
<para/>
-or-
<para/>
The range of characters in <paramref name="s"/> specified by <paramref name="startIndex"/> and <paramref name="length"/>
contain only a the ASCII character \u002d ('-') or \u002B ('+') sign and/or hexadecimal prefix 0X or 0x with no digits.
<para/>
-or-
<para/>
<paramref name="length"/> is zero.
</exception>
<exception cref="T:System.OverflowException">
The range of characters in <paramref name="s"/> specified by <paramref name="startIndex"/> and <paramref name="length"/>
represents a number that is less than <see cref="F:System.Int16.MinValue"/> or greater than <see cref="F:System.Int16.MaxValue"/>.
</exception>
<seealso cref="M:J2N.Numerics.Int16.TryParse(System.String,System.Int32,System.Int32,System.Int32,System.Int16@)"/>
<seealso cref="M:J2N.Numerics.Int16.Parse(System.String,System.Int32)"/>
</member>
<member name="M:J2N.Numerics.Int16.Parse(System.Char[],System.Int32,System.Int32,System.Int32)">
<summary>
Parses the <see cref="T:char[]"/> argument as a signed <see cref="T:System.Int16"/> in the specified <paramref name="radix"/>, beginning at the
specified <paramref name="startIndex"/> with the specified number of characters in <paramref name="length"/>.
<para/>
IMPORTANT: This method has .NET semantics. That is, the <paramref name="length"/> parameter
is a length rather than an exclusive end index as would be the case in Java. To translate from
Java, use <c>endIndex - beginIndex</c> to obtain the <paramref name="length"/>.
<para/>
Usage Note: This method is similar to the <see cref="M:System.Convert.ToInt16(System.String,System.Int32)"/> method, however it allows conversion
of the value without allocating a substring. It also differs in that it allows the use of the ASCII character \u002d ('-')
or \u002B ('+') in any <paramref name="radix"/> and allows any <paramref name="radix"/> value from
<see cref="F:J2N.Character.MinRadix"/> to <see cref="F:J2N.Character.MaxRadix"/> inclusive.
<para/>
Supports any BMP (Basic Multilingual Plane) or SMP (Supplementary Mulitlingual Plane) digit as defined by Unicode 10.0.
</summary>
<param name="s">The <see cref="T:char[]"/> containing the <see cref="T:System.Int16"/> representation to be parsed.</param>
<param name="startIndex">The zero-based starting character position of a region in <paramref name="s"/>.</param>
<param name="length">The number of characters in the region to parse.</param>
<param name="radix">The radix (or base) to use when parsing <paramref name="s"/>. The value must be in the range
<see cref="F:J2N.Character.MinRadix"/> - <see cref="F:J2N.Character.MaxRadix"/> inclusive.</param>
<returns>The signed <see cref="T:System.Int16"/> represented by the subsequence in the specified <paramref name="radix"/>.</returns>
<remarks>
If <paramref name="radix"/> is 16, you can prefix the number specified by the <paramref name="s"/> parameter with "0x" or "0X".
<para/>
To specify a negative value for base (radix) 10 numeric representations, use the ASCII character \u002d ('-').
<para/>
For any other <paramref name="radix"/>, negative values may either be specified with ASCII character \u002d ('-')
(as in Java) or by specifying the two's complement representation (as in .NET), but not both.
In the latter case, the highest-order binary bit of an integer (bit 15) is interpreted as the sign bit.
As a result, it is possible to write code in which a non-base 10 number that is out of the range of the <see cref="T:System.Int16"/>
data type is converted to a <see cref="T:System.Int16"/> value without the method throwing an exception.
</remarks>
<exception cref="T:System.ArgumentNullException"><paramref name="s"/> is <c>null</c>.</exception>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="startIndex"/> or <paramref name="length"/> is less than zero.
<para/>
-or-
<para/>
<paramref name="startIndex"/> and <paramref name="length"/> refer to a location outside of <paramref name="s"/>.
<para/>
-or-
<para/>
<paramref name="radix"/> is less than <see cref="F:J2N.Character.MinRadix"/> or greater than <see cref="F:J2N.Character.MaxRadix"/>.
</exception>
<exception cref="T:System.FormatException">
The range of characters in <paramref name="s"/> specified by <paramref name="startIndex"/> and <paramref name="length"/>
contains a character that is not a valid digit in the base specified by <paramref name="radix"/>.
The exception message indicates that there are no digits to convert if the first character specified by
<paramref name="startIndex"/> is invalid; otherwise, the message indicates that the range of characters in
<paramref name="s"/> specified by <paramref name="startIndex"/> and <paramref name="length"/> contains invalid trailing characters.
<para/>
-or-
<para/>
The range of characters in <paramref name="s"/> specified by <paramref name="startIndex"/> and <paramref name="length"/>
contain only a the ASCII character \u002d ('-') or \u002B ('+') sign and/or hexadecimal prefix 0X or 0x with no digits.
<para/>
-or-
<para/>
<paramref name="length"/> is zero.
</exception>
<exception cref="T:System.OverflowException">
The range of characters in <paramref name="s"/> specified by <paramref name="startIndex"/> and <paramref name="length"/>
represents a number that is less than <see cref="F:System.Int16.MinValue"/> or greater than <see cref="F:System.Int16.MaxValue"/>.
</exception>
<seealso cref="M:J2N.Numerics.Int16.TryParse(System.Char[],System.Int32,System.Int32,System.Int32,System.Int16@)"/>
<seealso cref="M:J2N.Numerics.Int16.Parse(System.String,System.Int32)"/>
</member>
<member name="M:J2N.Numerics.Int16.Parse(System.Text.StringBuilder,System.Int32,System.Int32,System.Int32)">
<summary>
Parses the <see cref="T:System.Text.StringBuilder"/> argument as a signed <see cref="T:System.Int16"/> in the specified <paramref name="radix"/>, beginning at the
specified <paramref name="startIndex"/> with the specified number of characters in <paramref name="length"/>.
<para/>
IMPORTANT: This method has .NET semantics. That is, the <paramref name="length"/> parameter
is a length rather than an exclusive end index as would be the case in Java. To translate from
Java, use <c>endIndex - beginIndex</c> to obtain the <paramref name="length"/>.
<para/>
Usage Note: This method is similar to the <see cref="M:System.Convert.ToInt16(System.String,System.Int32)"/> method, however it allows conversion
of the value without allocating a substring. It also differs in that it allows the use of the ASCII character \u002d ('-')
or \u002B ('+') in any <paramref name="radix"/> and allows any <paramref name="radix"/> value from
<see cref="F:J2N.Character.MinRadix"/> to <see cref="F:J2N.Character.MaxRadix"/> inclusive.
<para/>
Supports any BMP (Basic Multilingual Plane) or SMP (Supplementary Mulitlingual Plane) digit as defined by Unicode 10.0.
</summary>
<param name="s">The <see cref="T:System.Text.StringBuilder"/> containing the <see cref="T:System.Int16"/> representation to be parsed.</param>
<param name="startIndex">The zero-based starting character position of a region in <paramref name="s"/>.</param>
<param name="length">The number of characters in the region to parse.</param>
<param name="radix">The radix (or base) to use when parsing <paramref name="s"/>. The value must be in the range
<see cref="F:J2N.Character.MinRadix"/> - <see cref="F:J2N.Character.MaxRadix"/> inclusive.</param>
<returns>The signed <see cref="T:System.Int16"/> represented by the subsequence in the specified <paramref name="radix"/>.</returns>
<remarks>
If <paramref name="radix"/> is 16, you can prefix the number specified by the <paramref name="s"/> parameter with "0x" or "0X".
<para/>
To specify a negative value for base (radix) 10 numeric representations, use the ASCII character \u002d ('-').
<para/>
For any other <paramref name="radix"/>, negative values may either be specified with ASCII character \u002d ('-')
(as in Java) or by specifying the two's complement representation (as in .NET), but not both.
In the latter case, the highest-order binary bit of an integer (bit 15) is interpreted as the sign bit.
As a result, it is possible to write code in which a non-base 10 number that is out of the range of the <see cref="T:System.Int16"/>
data type is converted to a <see cref="T:System.Int16"/> value without the method throwing an exception.
</remarks>
<exception cref="T:System.ArgumentNullException"><paramref name="s"/> is <c>null</c>.</exception>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="startIndex"/> or <paramref name="length"/> is less than zero.
<para/>
-or-
<para/>
<paramref name="startIndex"/> and <paramref name="length"/> refer to a location outside of <paramref name="s"/>.
<para/>
-or-
<para/>
<paramref name="radix"/> is less than <see cref="F:J2N.Character.MinRadix"/> or greater than <see cref="F:J2N.Character.MaxRadix"/>.
</exception>
<exception cref="T:System.FormatException">
The range of characters in <paramref name="s"/> specified by <paramref name="startIndex"/> and <paramref name="length"/>
contains a character that is not a valid digit in the base specified by <paramref name="radix"/>.
The exception message indicates that there are no digits to convert if the first character specified by
<paramref name="startIndex"/> is invalid; otherwise, the message indicates that the range of characters in
<paramref name="s"/> specified by <paramref name="startIndex"/> and <paramref name="length"/> contains invalid trailing characters.
<para/>
-or-
<para/>
The range of characters in <paramref name="s"/> specified by <paramref name="startIndex"/> and <paramref name="length"/>
contain only a the ASCII character \u002d ('-') or \u002B ('+') sign and/or hexadecimal prefix 0X or 0x with no digits.
<para/>
-or-
<para/>
<paramref name="length"/> is zero.
</exception>
<exception cref="T:System.OverflowException">
The range of characters in <paramref name="s"/> specified by <paramref name="startIndex"/> and <paramref name="length"/>
represents a number that is less than <see cref="F:System.Int16.MinValue"/> or greater than <see cref="F:System.Int16.MaxValue"/>.
</exception>
<seealso cref="M:J2N.Numerics.Int16.TryParse(System.Text.StringBuilder,System.Int32,System.Int32,System.Int32,System.Int16@)"/>
<seealso cref="M:J2N.Numerics.Int16.Parse(System.String,System.Int32)"/>
</member>
<member name="M:J2N.Numerics.Int16.Parse(J2N.Text.ICharSequence,System.Int32,System.Int32,System.Int32)">
<summary>
Parses the <see cref="T:J2N.Text.ICharSequence"/> argument as a signed <see cref="T:System.Int16"/> in the specified <paramref name="radix"/>, beginning at the
specified <paramref name="startIndex"/> with the specified number of characters in <paramref name="length"/>.
<para/>
IMPORTANT: This method has .NET semantics. That is, the <paramref name="length"/> parameter
is a length rather than an exclusive end index as would be the case in Java. To translate from
Java, use <c>endIndex - beginIndex</c> to obtain the <paramref name="length"/>.
<para/>
Usage Note: This method is similar to the <see cref="M:System.Convert.ToInt16(System.String,System.Int32)"/> method, however it allows conversion
of the value without allocating a substring. It also differs in that it allows the use of the ASCII character \u002d ('-')
or \u002B ('+') in any <paramref name="radix"/> and allows any <paramref name="radix"/> value from
<see cref="F:J2N.Character.MinRadix"/> to <see cref="F:J2N.Character.MaxRadix"/> inclusive.
<para/>
Supports any BMP (Basic Multilingual Plane) or SMP (Supplementary Mulitlingual Plane) digit as defined by Unicode 10.0.
</summary>
<param name="s">The <see cref="T:J2N.Text.ICharSequence"/> containing the <see cref="T:System.Int16"/> representation to be parsed.</param>
<param name="startIndex">The zero-based starting character position of a region in <paramref name="s"/>.</param>
<param name="length">The number of characters in the region to parse.</param>
<param name="radix">The radix (or base) to use when parsing <paramref name="s"/>. The value must be in the range
<see cref="F:J2N.Character.MinRadix"/> - <see cref="F:J2N.Character.MaxRadix"/> inclusive.</param>
<returns>The signed <see cref="T:System.Int16"/> represented by the subsequence in the specified <paramref name="radix"/>.</returns>
<remarks>
If <paramref name="radix"/> is 16, you can prefix the number specified by the <paramref name="s"/> parameter with "0x" or "0X".
<para/>
To specify a negative value for base (radix) 10 numeric representations, use the ASCII character \u002d ('-').
<para/>
For any other <paramref name="radix"/>, negative values may either be specified with ASCII character \u002d ('-')
(as in Java) or by specifying the two's complement representation (as in .NET), but not both.
In the latter case, the highest-order binary bit of an integer (bit 15) is interpreted as the sign bit.
As a result, it is possible to write code in which a non-base 10 number that is out of the range of the <see cref="T:System.Int16"/>
data type is converted to a <see cref="T:System.Int16"/> value without the method throwing an exception.
</remarks>
<exception cref="T:System.ArgumentNullException"><paramref name="s"/> is <c>null</c> or <see cref="P:J2N.Text.ICharSequence.HasValue"/> returns <c>false</c>.</exception>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="startIndex"/> or <paramref name="length"/> is less than zero.
<para/>
-or-
<para/>
<paramref name="startIndex"/> and <paramref name="length"/> refer to a location outside of <paramref name="s"/>.
<para/>
-or-
<para/>
<paramref name="radix"/> is less than <see cref="F:J2N.Character.MinRadix"/> or greater than <see cref="F:J2N.Character.MaxRadix"/>.
</exception>
<exception cref="T:System.FormatException">
The range of characters in <paramref name="s"/> specified by <paramref name="startIndex"/> and <paramref name="length"/>
contains a character that is not a valid digit in the base specified by <paramref name="radix"/>.
The exception message indicates that there are no digits to convert if the first character specified by
<paramref name="startIndex"/> is invalid; otherwise, the message indicates that the range of characters in
<paramref name="s"/> specified by <paramref name="startIndex"/> and <paramref name="length"/> contains invalid trailing characters.
<para/>
-or-
<para/>
The range of characters in <paramref name="s"/> specified by <paramref name="startIndex"/> and <paramref name="length"/>
contain only a the ASCII character \u002d ('-') or \u002B ('+') sign and/or hexadecimal prefix 0X or 0x with no digits.
<para/>
-or-
<para/>
<paramref name="length"/> is zero.
</exception>
<exception cref="T:System.OverflowException">
The range of characters in <paramref name="s"/> specified by <paramref name="startIndex"/> and <paramref name="length"/>
represents a number that is less than <see cref="F:System.Int16.MinValue"/> or greater than <see cref="F:System.Int16.MaxValue"/>.
</exception>
<seealso cref="M:J2N.Numerics.Int16.TryParse(J2N.Text.ICharSequence,System.Int32,System.Int32,System.Int32,System.Int16@)"/>
<seealso cref="M:J2N.Numerics.Int16.Parse(System.String,System.Int32)"/>
</member>
<member name="M:J2N.Numerics.Int16.TryParse(System.ReadOnlySpan{System.Char},System.Int32,System.Int32,System.Int32,System.Int16@)">
<summary>
Parses the <see cref="T:System.ReadOnlySpan`1"/> argument as a signed <see cref="T:System.Int16"/> in the specified <paramref name="radix"/>, beginning at the
specified <paramref name="startIndex"/> with the specified number of characters in <paramref name="length"/>.
<para/>
IMPORTANT: This method has .NET semantics. That is, the <paramref name="length"/> parameter
is a length rather than an exclusive end index as would be the case in Java. To translate from
Java, use <c>endIndex - beginIndex</c> to obtain the <paramref name="length"/>.
<para/>
Usage Note: This method is similar to the <see cref="M:System.Convert.ToInt16(System.String,System.Int32)"/> method, however it allows conversion
of the value without allocating a substring. It also differs in that it allows the use of the ASCII character \u002d ('-')
or \u002B ('+') in any <paramref name="radix"/> and allows any <paramref name="radix"/> value from
<see cref="F:J2N.Character.MinRadix"/> to <see cref="F:J2N.Character.MaxRadix"/> inclusive.
<para/>
Supports any BMP (Basic Multilingual Plane) or SMP (Supplementary Mulitlingual Plane) digit as defined by Unicode 10.0.
<para/>
Since <see cref="M:J2N.Numerics.Int16.Parse(System.ReadOnlySpan{System.Char},System.Int32,System.Int32,System.Int32)"/> throws many different exception types and in Java they are all normalized to
<c>NumberFormatException</c>, this method can be used to mimic the same behavior by throwing <see cref="T:System.FormatException"/>
when this method returns <c>false</c>.
</summary>
<param name="s">The <see cref="T:System.ReadOnlySpan`1"/> containing the <see cref="T:System.Int16"/> representation to be parsed.</param>
<param name="startIndex">The zero-based starting character position of a region in <paramref name="s"/>.</param>
<param name="length">The number of characters in the region to parse.</param>
<param name="radix">The radix (or base) to use when parsing <paramref name="s"/>. The value must be in the range
<see cref="F:J2N.Character.MinRadix"/> - <see cref="F:J2N.Character.MaxRadix"/> inclusive.</param>
<param name="result">The signed <see cref="T:System.Int16"/> represented by the subsequence in the specified <paramref name="radix"/>.</param>
<returns><c>true</c> if <paramref name="s"/> was converted successfully; otherwise, <c>false</c>.</returns>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="startIndex"/> or <paramref name="length"/> is less than zero.
<para/>
-or-
<para/>
<paramref name="startIndex"/> and <paramref name="length"/> refer to a location outside of <paramref name="s"/>.
<para/>
-or-
<para/>
<paramref name="radix"/> is less than <see cref="F:J2N.Character.MinRadix"/> or greater than <see cref="F:J2N.Character.MaxRadix"/>.
</exception>
<remarks>
If <paramref name="radix"/> is 16, you can prefix the number specified by the <paramref name="s"/> parameter with "0x" or "0X".
<para/>
To specify a negative value for base (radix) 10 numeric representations, use the ASCII character \u002d ('-').
<para/>
For any other <paramref name="radix"/>, negative values may either be specified with ASCII character \u002d ('-')
(as in Java) or by specifying the two's complement representation (as in .NET), but not both.
In the latter case, the highest-order binary bit of an integer (bit 15) is interpreted as the sign bit.
As a result, it is possible to write code in which a non-base 10 number that is out of the range of the <see cref="T:System.Int16"/>
data type is converted to a <see cref="T:System.Int16"/> value without the method throwing an exception.
</remarks>
<seealso cref="M:J2N.Numerics.Int16.Parse(System.ReadOnlySpan{System.Char},System.Int32,System.Int32,System.Int32)"/>
<seealso cref="M:J2N.Numerics.Int16.Parse(System.String,System.Int32)"/>
</member>
<member name="M:J2N.Numerics.Int16.TryParse(System.String,System.Int32,System.Int32,System.Int32,System.Int16@)">
<summary>
Parses the <see cref="T:System.String"/> argument as a signed <see cref="T:System.Int16"/> in the specified <paramref name="radix"/>, beginning at the
specified <paramref name="startIndex"/> with the specified number of characters in <paramref name="length"/>.
<para/>
IMPORTANT: This method has .NET semantics. That is, the <paramref name="length"/> parameter
is a length rather than an exclusive end index as would be the case in Java. To translate from
Java, use <c>endIndex - beginIndex</c> to obtain the <paramref name="length"/>.
<para/>
Usage Note: This method is similar to the <see cref="M:System.Convert.ToInt16(System.String,System.Int32)"/> method, however it allows conversion
of the value without allocating a substring. It also differs in that it allows the use of the ASCII character \u002d ('-')
or \u002B ('+') in any <paramref name="radix"/> and allows any <paramref name="radix"/> value from
<see cref="F:J2N.Character.MinRadix"/> to <see cref="F:J2N.Character.MaxRadix"/> inclusive.
<para/>
Supports any BMP (Basic Multilingual Plane) or SMP (Supplementary Mulitlingual Plane) digit as defined by Unicode 10.0.
<para/>
Since <see cref="M:J2N.Numerics.Int16.Parse(System.String,System.Int32,System.Int32,System.Int32)"/> throws many different exception types and in Java they are all normalized to
<c>NumberFormatException</c>, this method can be used to mimic the same behavior by throwing <see cref="T:System.FormatException"/>
when this method returns <c>false</c>.
</summary>
<param name="s">The <see cref="T:System.String"/> containing the <see cref="T:System.Int16"/> representation to be parsed.</param>
<param name="startIndex">The zero-based starting character position of a region in <paramref name="s"/>.</param>
<param name="length">The number of characters in the region to parse.</param>
<param name="radix">The radix (or base) to use when parsing <paramref name="s"/>. The value must be in the range
<see cref="F:J2N.Character.MinRadix"/> - <see cref="F:J2N.Character.MaxRadix"/> inclusive.</param>
<param name="result">The signed <see cref="T:System.Int16"/> represented by the subsequence in the specified <paramref name="radix"/>.</param>
<returns><c>true</c> if <paramref name="s"/> was converted successfully; otherwise, <c>false</c>.</returns>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="startIndex"/> or <paramref name="length"/> is less than zero.
<para/>
-or-
<para/>
<paramref name="startIndex"/> and <paramref name="length"/> refer to a location outside of <paramref name="s"/>.
<para/>
-or-
<para/>
<paramref name="radix"/> is less than <see cref="F:J2N.Character.MinRadix"/> or greater than <see cref="F:J2N.Character.MaxRadix"/>.
</exception>
<remarks>
If <paramref name="radix"/> is 16, you can prefix the number specified by the <paramref name="s"/> parameter with "0x" or "0X".
<para/>
To specify a negative value for base (radix) 10 numeric representations, use the ASCII character \u002d ('-').
<para/>
For any other <paramref name="radix"/>, negative values may either be specified with ASCII character \u002d ('-')
(as in Java) or by specifying the two's complement representation (as in .NET), but not both.
In the latter case, the highest-order binary bit of an integer (bit 15) is interpreted as the sign bit.
As a result, it is possible to write code in which a non-base 10 number that is out of the range of the <see cref="T:System.Int16"/>
data type is converted to a <see cref="T:System.Int16"/> value without the method throwing an exception.
</remarks>
<seealso cref="M:J2N.Numerics.Int16.Parse(System.String,System.Int32,System.Int32,System.Int32)"/>
<seealso cref="M:J2N.Numerics.Int16.Parse(System.String,System.Int32)"/>
</member>
<member name="M:J2N.Numerics.Int16.TryParse(System.Char[],System.Int32,System.Int32,System.Int32,System.Int16@)">
<summary>
Parses the <see cref="T:char[]"/> argument as a signed <see cref="T:System.Int16"/> in the specified <paramref name="radix"/>, beginning at the
specified <paramref name="startIndex"/> with the specified number of characters in <paramref name="length"/>.
<para/>
IMPORTANT: This method has .NET semantics. That is, the <paramref name="length"/> parameter
is a length rather than an exclusive end index as would be the case in Java. To translate from
Java, use <c>endIndex - beginIndex</c> to obtain the <paramref name="length"/>.
<para/>
Usage Note: This method is similar to the <see cref="M:System.Convert.ToInt16(System.String,System.Int32)"/> method, however it allows conversion
of the value without allocating a substring. It also differs in that it allows the use of the ASCII character \u002d ('-')
or \u002B ('+') in any <paramref name="radix"/> and allows any <paramref name="radix"/> value from
<see cref="F:J2N.Character.MinRadix"/> to <see cref="F:J2N.Character.MaxRadix"/> inclusive.
<para/>
Supports any BMP (Basic Multilingual Plane) or SMP (Supplementary Mulitlingual Plane) digit as defined by Unicode 10.0.
<para/>
Since <see cref="M:J2N.Numerics.Int16.Parse(System.Char[],System.Int32,System.Int32,System.Int32)"/> throws many different exception types and in Java they are all normalized to
<c>NumberFormatException</c>, this method can be used to mimic the same behavior by throwing <see cref="T:System.FormatException"/>
when this method returns <c>false</c>.
</summary>
<param name="s">The <see cref="T:char[]"/> containing the <see cref="T:System.Int16"/> representation to be parsed.</param>
<param name="startIndex">The zero-based starting character position of a region in <paramref name="s"/>.</param>
<param name="length">The number of characters in the region to parse.</param>
<param name="radix">The radix (or base) to use when parsing <paramref name="s"/>. The value must be in the range
<see cref="F:J2N.Character.MinRadix"/> - <see cref="F:J2N.Character.MaxRadix"/> inclusive.</param>
<param name="result">The signed <see cref="T:System.Int16"/> represented by the subsequence in the specified <paramref name="radix"/>.</param>
<returns><c>true</c> if <paramref name="s"/> was converted successfully; otherwise, <c>false</c>.</returns>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="startIndex"/> or <paramref name="length"/> is less than zero.
<para/>
-or-
<para/>
<paramref name="startIndex"/> and <paramref name="length"/> refer to a location outside of <paramref name="s"/>.
<para/>
-or-
<para/>
<paramref name="radix"/> is less than <see cref="F:J2N.Character.MinRadix"/> or greater than <see cref="F:J2N.Character.MaxRadix"/>.
</exception>
<remarks>
If <paramref name="radix"/> is 16, you can prefix the number specified by the <paramref name="s"/> parameter with "0x" or "0X".
<para/>
To specify a negative value for base (radix) 10 numeric representations, use the ASCII character \u002d ('-').
<para/>
For any other <paramref name="radix"/>, negative values may either be specified with ASCII character \u002d ('-')
(as in Java) or by specifying the two's complement representation (as in .NET), but not both.
In the latter case, the highest-order binary bit of an integer (bit 15) is interpreted as the sign bit.
As a result, it is possible to write code in which a non-base 10 number that is out of the range of the <see cref="T:System.Int16"/>
data type is converted to a <see cref="T:System.Int16"/> value without the method throwing an exception.
</remarks>
<seealso cref="M:J2N.Numerics.Int16.Parse(System.Char[],System.Int32,System.Int32,System.Int32)"/>
<seealso cref="M:J2N.Numerics.Int16.Parse(System.String,System.Int32)"/>
</member>
<member name="M:J2N.Numerics.Int16.TryParse(System.Text.StringBuilder,System.Int32,System.Int32,System.Int32,System.Int16@)">
<summary>
Parses the <see cref="T:System.Text.StringBuilder"/> argument as a signed <see cref="T:System.Int16"/> in the specified <paramref name="radix"/>, beginning at the
specified <paramref name="startIndex"/> with the specified number of characters in <paramref name="length"/>.
<para/>
IMPORTANT: This method has .NET semantics. That is, the <paramref name="length"/> parameter
is a length rather than an exclusive end index as would be the case in Java. To translate from
Java, use <c>endIndex - beginIndex</c> to obtain the <paramref name="length"/>.
<para/>
Usage Note: This method is similar to the <see cref="M:System.Convert.ToInt16(System.String,System.Int32)"/> method, however it allows conversion
of the value without allocating a substring. It also differs in that it allows the use of the ASCII character \u002d ('-')
or \u002B ('+') in any <paramref name="radix"/> and allows any <paramref name="radix"/> value from
<see cref="F:J2N.Character.MinRadix"/> to <see cref="F:J2N.Character.MaxRadix"/> inclusive.
<para/>
Supports any BMP (Basic Multilingual Plane) or SMP (Supplementary Mulitlingual Plane) digit as defined by Unicode 10.0.
<para/>
Since <see cref="M:J2N.Numerics.Int16.Parse(System.Text.StringBuilder,System.Int32,System.Int32,System.Int32)"/> throws many different exception types and in Java they are all normalized to
<c>NumberFormatException</c>, this method can be used to mimic the same behavior by throwing <see cref="T:System.FormatException"/>
when this method returns <c>false</c>.
</summary>
<param name="s">The <see cref="T:System.Text.StringBuilder"/> containing the <see cref="T:System.Int16"/> representation to be parsed.</param>
<param name="startIndex">The zero-based starting character position of a region in <paramref name="s"/>.</param>
<param name="length">The number of characters in the region to parse.</param>
<param name="radix">The radix (or base) to use when parsing <paramref name="s"/>. The value must be in the range
<see cref="F:J2N.Character.MinRadix"/> - <see cref="F:J2N.Character.MaxRadix"/> inclusive.</param>
<param name="result">The signed <see cref="T:System.Int16"/> represented by the subsequence in the specified <paramref name="radix"/>.</param>
<returns><c>true</c> if <paramref name="s"/> was converted successfully; otherwise, <c>false</c>.</returns>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="startIndex"/> or <paramref name="length"/> is less than zero.
<para/>
-or-
<para/>
<paramref name="startIndex"/> and <paramref name="length"/> refer to a location outside of <paramref name="s"/>.
<para/>
-or-
<para/>
<paramref name="radix"/> is less than <see cref="F:J2N.Character.MinRadix"/> or greater than <see cref="F:J2N.Character.MaxRadix"/>.
</exception>
<remarks>
If <paramref name="radix"/> is 16, you can prefix the number specified by the <paramref name="s"/> parameter with "0x" or "0X".
<para/>
To specify a negative value for base (radix) 10 numeric representations, use the ASCII character \u002d ('-').
<para/>
For any other <paramref name="radix"/>, negative values may either be specified with ASCII character \u002d ('-')
(as in Java) or by specifying the two's complement representation (as in .NET), but not both.
In the latter case, the highest-order binary bit of an integer (bit 15) is interpreted as the sign bit.
As a result, it is possible to write code in which a non-base 10 number that is out of the range of the <see cref="T:System.Int16"/>
data type is converted to a <see cref="T:System.Int16"/> value without the method throwing an exception.
</remarks>
<seealso cref="M:J2N.Numerics.Int16.Parse(System.Text.StringBuilder,System.Int32,System.Int32,System.Int32)"/>
<seealso cref="M:J2N.Numerics.Int16.Parse(System.String,System.Int32)"/>
</member>
<member name="M:J2N.Numerics.Int16.TryParse(J2N.Text.ICharSequence,System.Int32,System.Int32,System.Int32,System.Int16@)">
<summary>
Parses the <see cref="T:J2N.Text.ICharSequence"/> argument as a signed <see cref="T:System.Int16"/> in the specified <paramref name="radix"/>, beginning at the
specified <paramref name="startIndex"/> with the specified number of characters in <paramref name="length"/>.
<para/>
IMPORTANT: This method has .NET semantics. That is, the <paramref name="length"/> parameter
is a length rather than an exclusive end index as would be the case in Java. To translate from
Java, use <c>endIndex - beginIndex</c> to obtain the <paramref name="length"/>.
<para/>
Usage Note: This method is similar to the <see cref="M:System.Convert.ToInt16(System.String,System.Int32)"/> method, however it allows conversion
of the value without allocating a substring. It also differs in that it allows the use of the ASCII character \u002d ('-')
or \u002B ('+') in any <paramref name="radix"/> and allows any <paramref name="radix"/> value from
<see cref="F:J2N.Character.MinRadix"/> to <see cref="F:J2N.Character.MaxRadix"/> inclusive.
<para/>
Supports any BMP (Basic Multilingual Plane) or SMP (Supplementary Mulitlingual Plane) digit as defined by Unicode 10.0.
<para/>
Since <see cref="M:J2N.Numerics.Int16.Parse(J2N.Text.ICharSequence,System.Int32,System.Int32,System.Int32)"/> throws many different exception types and in Java they are all normalized to
<c>NumberFormatException</c>, this method can be used to mimic the same behavior by throwing <see cref="T:System.FormatException"/>
when this method returns <c>false</c>.
</summary>
<param name="s">The <see cref="T:J2N.Text.ICharSequence"/> containing the <see cref="T:System.Int16"/> representation to be parsed.</param>
<param name="startIndex">The zero-based starting character position of a region in <paramref name="s"/>.</param>
<param name="length">The number of characters in the region to parse.</param>
<param name="radix">The radix (or base) to use when parsing <paramref name="s"/>. The value must be in the range
<see cref="F:J2N.Character.MinRadix"/> - <see cref="F:J2N.Character.MaxRadix"/> inclusive.</param>
<param name="result">The signed <see cref="T:System.Int16"/> represented by the subsequence in the specified <paramref name="radix"/>.</param>
<returns><c>true</c> if <paramref name="s"/> was converted successfully; otherwise, <c>false</c>.</returns>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="startIndex"/> or <paramref name="length"/> is less than zero.
<para/>
-or-
<para/>
<paramref name="startIndex"/> and <paramref name="length"/> refer to a location outside of <paramref name="s"/>.
<para/>
-or-
<para/>
<paramref name="radix"/> is less than <see cref="F:J2N.Character.MinRadix"/> or greater than <see cref="F:J2N.Character.MaxRadix"/>.
</exception>
<remarks>
If <paramref name="radix"/> is 16, you can prefix the number specified by the <paramref name="s"/> parameter with "0x" or "0X".
<para/>
To specify a negative value for base (radix) 10 numeric representations, use the ASCII character \u002d ('-').
<para/>
For any other <paramref name="radix"/>, negative values may either be specified with ASCII character \u002d ('-')
(as in Java) or by specifying the two's complement representation (as in .NET), but not both.
In the latter case, the highest-order binary bit of an integer (bit 15) is interpreted as the sign bit.
As a result, it is possible to write code in which a non-base 10 number that is out of the range of the <see cref="T:System.Int16"/>
data type is converted to a <see cref="T:System.Int16"/> value without the method throwing an exception.
</remarks>
<seealso cref="M:J2N.Numerics.Int16.Parse(J2N.Text.ICharSequence,System.Int32,System.Int32,System.Int32)"/>
<seealso cref="M:J2N.Numerics.Int16.Parse(System.String,System.Int32)"/>
</member>
<member name="M:J2N.Numerics.Int16.Parse(System.ReadOnlySpan{System.Char},System.Int32)">
<summary>
Parses the <see cref="T:System.ReadOnlySpan`1"/> argument as a signed <see cref="T:System.Int16"/> in the specified <paramref name="radix"/>.
<para/>
Usage Note: This method is similar to the <see cref="M:System.Convert.ToInt16(System.String,System.Int32)"/> method. It differs in that
it allows the use of the ASCII character \u002d ('-') or \u002B ('+') in any <paramref name="radix"/>.
<para/>
Supports any BMP (Basic Multilingual Plane) or SMP (Supplementary Mulitlingual Plane) digit as defined by Unicode 10.0.
</summary>
<param name="s">The <see cref="T:System.ReadOnlySpan`1"/> containing the <see cref="T:System.Int16"/> representation to be parsed.</param>
<param name="radix">The radix (or base) to use when parsing <paramref name="s"/>. The value must be in the range
<see cref="F:J2N.Character.MinRadix"/> - <see cref="F:J2N.Character.MaxRadix"/> inclusive.</param>
<returns>A 16-bit signed integer that is equivalent to the number in <paramref name="s"/>, or 0 (zero) if
<paramref name="s"/> is <c>null</c>.</returns>
<remarks>
If <paramref name="radix"/> is 16, you can prefix the number specified by the <paramref name="s"/> parameter with "0x" or "0X".
<para/>
To specify a negative value for base (radix) 10 numeric representations, use the ASCII character \u002d ('-').
<para/>
For any other <paramref name="radix"/>, negative values may either be specified with ASCII character \u002d ('-')
(as in Java) or by specifying the two's complement representation (as in .NET), but not both.
In the latter case, the highest-order binary bit of a long integer (bit 15) is interpreted as the sign bit.
As a result, it is possible to write code in which a non-base 10 number that is out of the range of the <see cref="T:System.Int16"/>
data type is converted to a <see cref="T:System.Int16"/> value without the method throwing an exception.
</remarks>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="radix"/> is less than <see cref="F:J2N.Character.MinRadix"/> or greater than <see cref="F:J2N.Character.MaxRadix"/>.
</exception>
<exception cref="T:System.FormatException">
<paramref name="s"/> contains a character that is not a valid digit in the base specified by <paramref name="radix"/>.
The exception message indicates that there are no digits to convert if the first character in <paramref name="s"/> is invalid;
otherwise, the message indicates that <paramref name="s"/> contains invalid trailing characters.
<para/>
-or-
<para/>
<paramref name="s"/> contains only a the ASCII character \u002d ('-') or \u002B ('+') sign and/or hexadecimal
prefix 0X or 0x with no digits.
</exception>
<exception cref="T:System.OverflowException">
<paramref name="s"/> represents a number that is less than <see cref="F:System.Int16.MinValue"/> or greater than <see cref="F:System.Int16.MaxValue"/>.
</exception>
<seealso cref="M:J2N.Numerics.Int16.TryParse(System.ReadOnlySpan{System.Char},System.Int32,System.Int16@)"/>
<seealso cref="M:J2N.Numerics.Int16.Parse(System.ReadOnlySpan{System.Char},System.Int32)"/>
</member>
<member name="M:J2N.Numerics.Int16.Parse(System.String,System.Int32)">
<summary>
Parses the <see cref="T:System.String"/> argument as a signed <see cref="T:System.Int16"/> in the specified <paramref name="radix"/>.
<para/>
Usage Note: This method is similar to the <see cref="M:System.Convert.ToInt16(System.String,System.Int32)"/> method. It differs in that
it allows the use of the ASCII character \u002d ('-') or \u002B ('+') in any <paramref name="radix"/>.
<para/>
Supports any BMP (Basic Multilingual Plane) or SMP (Supplementary Mulitlingual Plane) digit as defined by Unicode 10.0.
</summary>
<param name="s">The <see cref="T:System.String"/> containing the <see cref="T:System.Int16"/> representation to be parsed.</param>
<param name="radix">The radix (or base) to use when parsing <paramref name="s"/>. The value must be in the range
<see cref="F:J2N.Character.MinRadix"/> - <see cref="F:J2N.Character.MaxRadix"/> inclusive.</param>
<returns>A 16-bit signed integer that is equivalent to the number in <paramref name="s"/>, or 0 (zero) if
<paramref name="s"/> is <c>null</c>.</returns>
<remarks>
If <paramref name="radix"/> is 16, you can prefix the number specified by the <paramref name="s"/> parameter with "0x" or "0X".
<para/>
To specify a negative value for base (radix) 10 numeric representations, use the ASCII character \u002d ('-').
<para/>
For any other <paramref name="radix"/>, negative values may either be specified with ASCII character \u002d ('-')
(as in Java) or by specifying the two's complement representation (as in .NET), but not both.
In the latter case, the highest-order binary bit of a long integer (bit 15) is interpreted as the sign bit.
As a result, it is possible to write code in which a non-base 10 number that is out of the range of the <see cref="T:System.Int16"/>
data type is converted to a <see cref="T:System.Int16"/> value without the method throwing an exception.
</remarks>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="radix"/> is less than <see cref="F:J2N.Character.MinRadix"/> or greater than <see cref="F:J2N.Character.MaxRadix"/>.
</exception>
<exception cref="T:System.FormatException">
<paramref name="s"/> contains a character that is not a valid digit in the base specified by <paramref name="radix"/>.
The exception message indicates that there are no digits to convert if the first character in <paramref name="s"/> is invalid;
otherwise, the message indicates that <paramref name="s"/> contains invalid trailing characters.
<para/>
-or-
<para/>
<paramref name="s"/> contains only a the ASCII character \u002d ('-') or \u002B ('+') sign and/or hexadecimal
prefix 0X or 0x with no digits.
</exception>
<exception cref="T:System.OverflowException">
<paramref name="s"/> represents a number that is less than <see cref="F:System.Int16.MinValue"/> or greater than <see cref="F:System.Int16.MaxValue"/>.
</exception>
<seealso cref="M:J2N.Numerics.Int16.TryParse(System.String,System.Int32,System.Int16@)"/>
<seealso cref="M:J2N.Numerics.Int16.Parse(System.String,System.Int32)"/>
</member>
<member name="M:J2N.Numerics.Int16.TryParse(System.ReadOnlySpan{System.Char},System.Int32,System.Int16@)">
<summary>
Parses the <see cref="T:System.ReadOnlySpan`1"/> argument as a signed <see cref="T:System.Int16"/> in the specified <paramref name="radix"/>.
<para/>
Usage Note: This method is similar to the <see cref="M:System.Convert.ToInt16(System.String,System.Int32)"/> method. It differs in that it
allows the use of the ASCII character \u002d ('-') or \u002B ('+') in any <paramref name="radix"/> and allows any
<paramref name="radix"/> value from <see cref="F:J2N.Character.MinRadix"/> to <see cref="F:J2N.Character.MaxRadix"/> inclusive.
<para/>
Supports any BMP (Basic Multilingual Plane) or SMP (Supplementary Mulitlingual Plane) digit as defined by Unicode 10.0.
<para/>
Since <see cref="M:J2N.Numerics.Int16.Parse(System.ReadOnlySpan{System.Char},System.Int32)"/> throws many different exception types and in Java they are all normalized to
<c>NumberFormatException</c>, this method can be used to mimic the same behavior by throwing <see cref="T:System.FormatException"/>
when this method returns <c>false</c>.
</summary>
<param name="s">The <see cref="T:System.ReadOnlySpan`1"/> containing the <see cref="T:System.Int16"/> representation to be parsed.</param>
<param name="radix">The radix (or base) to use when parsing <paramref name="s"/>. The value must be in the range
<see cref="F:J2N.Character.MinRadix"/> - <see cref="F:J2N.Character.MaxRadix"/> inclusive.</param>
<param name="result">The signed <see cref="T:System.Int16"/> represented by the subsequence in the specified <paramref name="radix"/>.</param>
<returns><c>true</c> if <paramref name="s"/> was converted successfully; otherwise, <c>false</c>.</returns>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="radix"/> is less than <see cref="F:J2N.Character.MinRadix"/> or greater than <see cref="F:J2N.Character.MaxRadix"/>.
</exception>
<remarks>
If <paramref name="radix"/> is 16, you can prefix the number specified by the <paramref name="s"/> parameter with "0x" or "0X".
<para/>
To specify a negative value for base (radix) 10 numeric representations, use the ASCII character \u002d ('-').
<para/>
For any other <paramref name="radix"/>, negative values may either be specified with ASCII character \u002d ('-')
(as in Java) or by specifying the two's complement representation (as in .NET), but not both.
In the latter case, the highest-order binary bit of an integer (bit 15) is interpreted as the sign bit.
As a result, it is possible to write code in which a non-base 10 number that is out of the range of the <see cref="T:System.Int16"/>
data type is converted to a <see cref="T:System.Int16"/> value without the method throwing an exception.
</remarks>
<seealso cref="M:J2N.Numerics.Int16.Parse(System.ReadOnlySpan{System.Char},System.Int32,System.Int32,System.Int32)"/>
<seealso cref="M:J2N.Numerics.Int16.Parse(System.ReadOnlySpan{System.Char},System.Int32)"/>
</member>
<member name="M:J2N.Numerics.Int16.TryParse(System.String,System.Int32,System.Int16@)">
<summary>
Parses the <see cref="T:System.String"/> argument as a signed <see cref="T:System.Int16"/> in the specified <paramref name="radix"/>.
<para/>
Usage Note: This method is similar to the <see cref="M:System.Convert.ToInt16(System.String,System.Int32)"/> method. It differs in that it
allows the use of the ASCII character \u002d ('-') or \u002B ('+') in any <paramref name="radix"/> and allows any
<paramref name="radix"/> value from <see cref="F:J2N.Character.MinRadix"/> to <see cref="F:J2N.Character.MaxRadix"/> inclusive.
<para/>
Supports any BMP (Basic Multilingual Plane) or SMP (Supplementary Mulitlingual Plane) digit as defined by Unicode 10.0.
<para/>
Since <see cref="M:J2N.Numerics.Int16.Parse(System.String,System.Int32)"/> throws many different exception types and in Java they are all normalized to
<c>NumberFormatException</c>, this method can be used to mimic the same behavior by throwing <see cref="T:System.FormatException"/>
when this method returns <c>false</c>.
</summary>
<param name="s">The <see cref="T:System.String"/> containing the <see cref="T:System.Int16"/> representation to be parsed.</param>
<param name="radix">The radix (or base) to use when parsing <paramref name="s"/>. The value must be in the range
<see cref="F:J2N.Character.MinRadix"/> - <see cref="F:J2N.Character.MaxRadix"/> inclusive.</param>
<param name="result">The signed <see cref="T:System.Int16"/> represented by the subsequence in the specified <paramref name="radix"/>.</param>
<returns><c>true</c> if <paramref name="s"/> was converted successfully; otherwise, <c>false</c>.</returns>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="radix"/> is less than <see cref="F:J2N.Character.MinRadix"/> or greater than <see cref="F:J2N.Character.MaxRadix"/>.
</exception>
<remarks>
If <paramref name="radix"/> is 16, you can prefix the number specified by the <paramref name="s"/> parameter with "0x" or "0X".
<para/>
To specify a negative value for base (radix) 10 numeric representations, use the ASCII character \u002d ('-').
<para/>
For any other <paramref name="radix"/>, negative values may either be specified with ASCII character \u002d ('-')
(as in Java) or by specifying the two's complement representation (as in .NET), but not both.
In the latter case, the highest-order binary bit of an integer (bit 15) is interpreted as the sign bit.
As a result, it is possible to write code in which a non-base 10 number that is out of the range of the <see cref="T:System.Int16"/>
data type is converted to a <see cref="T:System.Int16"/> value without the method throwing an exception.
</remarks>
<seealso cref="M:J2N.Numerics.Int16.Parse(System.String,System.Int32,System.Int32,System.Int32)"/>
<seealso cref="M:J2N.Numerics.Int16.Parse(System.String,System.Int32)"/>
</member>
<member name="M:J2N.Numerics.Int16.Parse(System.String,System.IFormatProvider)">
<summary>
Converts the string representation of a number in a specified culture-specific format to its
16-bit signed integer equivalent.
</summary>
<param name="s">A string containing a number to convert.</param>
<param name="provider">An <see cref="T:System.IFormatProvider"/> that supplies culture-specific formatting information about <paramref name="s"/>.</param>
<returns>A 16-bit signed integer equivalent to the number specified in <paramref name="s"/>.</returns>
<exception cref="T:System.ArgumentNullException"><paramref name="s"/> is <c>null</c>.</exception>
<exception cref="T:System.FormatException"><paramref name="s"/> is not in a valid <see cref="F:J2N.Globalization.NumberStyle.Integer"/> format.</exception>
<exception cref="T:System.OverflowException">
<paramref name="s"/> represents a number less than <see cref="F:System.Int16.MinValue"/> or greater than <see cref="F:System.Int16.MaxValue"/>.
</exception>
<remarks>
The <paramref name="s"/> parameter contains a number of the form:
<para/>
[ws][sign]digits[ws]
<para/>
Elements in square brackets ([ and ]) are optional. The following table describes each element.
<para/>
<list type="table">
<listheader>
<term>Element</term>
<term>Description</term>
</listheader>
<item>
<term><i>ws</i></term>
<term>A series of white-space characters.</term>
</item>
<item>
<term><i>$</i></term>
<term>A culture-specific currency symbol. Its position in the string is defined by the <see cref="P:System.Globalization.NumberFormatInfo.CurrencyNegativePattern"/>
and <see cref="P:System.Globalization.NumberFormatInfo.CurrencyPositivePattern"/> properties of the <see cref="T:System.Globalization.NumberFormatInfo"/> object returned by the
<see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> method of the <paramref name="provider"/> parameter. The current culture's currency symbol can
appear in <paramref name="s"/> if style includes the <see cref="F:J2N.Globalization.NumberStyle.AllowCurrencySymbol"/> flag.</term>
</item>
<item>
<term><i>sign</i></term>
<term>A negative sign symbol or a positive sign symbol as defined by the <see cref="T:System.Globalization.NumberFormatInfo"/> object returned from the
<see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> <paramref name="provider"/>.</term>
</item>
<item>
<term><i>digits</i></term>
<term>A series of digits ranging from 0 to 9.</term>
</item>
</list>
<para/>
The <paramref name="s"/> parameter is interpreted using the <see cref="F:J2N.Globalization.NumberStyle.Integer"/> style. In addition to decimal digits, only
leading and trailing spaces together with a leading sign are allowed in <paramref name="s"/>. To explicitly define the style elements
together with the culture-specific formatting information that can be present in <paramref name="s"/>, use the
<see cref="M:J2N.Numerics.Int16.Parse(System.String,J2N.Globalization.NumberStyle,System.IFormatProvider)"/> method.
<para/>
The <paramref name="provider"/> parameter is an <see cref="T:System.IFormatProvider"/> implementation, such as a <see cref="T:System.Globalization.CultureInfo"/> object,
a <see cref="T:System.Globalization.NumberFormatInfo"/> object or a <see cref="T:J2N.Text.StringFormatter"/> object, whose <see cref="M:System.IFormatProvider.GetFormat(System.Type)"/>
method returns a <see cref="T:System.Globalization.NumberFormatInfo"/> object. The <see cref="T:System.Globalization.NumberFormatInfo"/> object provides culture-specific information about
the format of <paramref name="s"/>. When the <see cref="M:J2N.Numerics.Int16.Parse(System.String,System.IFormatProvider)"/> method is invoked, it calls the provider parameter's
<see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> method and passes it a <see cref="T:System.Type"/> object that represents the <see cref="T:System.Globalization.NumberFormatInfo"/> type.
The <see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> method then returns the <see cref="T:System.Globalization.NumberFormatInfo"/> object that provides information about the
format of the <paramref name="s"/> parameter. There are three ways to use the <paramref name="provider"/> parameter to supply custom formatting
information to the parse operation:
<list type="bullet">
<item><description>You can pass a <see cref="T:System.Globalization.CultureInfo"/> object that represents the culture that supplies formatting information. Its
<see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> method returns the <see cref="T:System.Globalization.NumberFormatInfo"/> object that provides numeric formatting
information for that culture.</description></item>
<item><description>You can pass the actual <see cref="T:System.Globalization.NumberFormatInfo"/> object that provides numeric formatting information. (Its
implementation of <see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> just returns itself.)</description></item>
<item><description>You can pass a custom object that implements <see cref="T:System.IFormatProvider"/>. Its <see cref="M:System.IFormatProvider.GetFormat(System.Type)"/>
method instantiates and returns the <see cref="T:System.Globalization.NumberFormatInfo"/> object that provides formatting information.</description></item>
</list>
If <paramref name="provider"/> is <c>null</c> or a <see cref="T:System.Globalization.NumberFormatInfo"/> object cannot be obtained, the <see cref="T:System.Globalization.NumberFormatInfo"/>
object for the current culture is used.
</remarks>
<seealso cref="M:J2N.Numerics.Int16.TryParse(System.String,J2N.Globalization.NumberStyle,System.IFormatProvider,System.Int16@)"/>
<seealso cref="M:J2N.Numerics.Int16.GetInstance(System.String,System.IFormatProvider)"/>
</member>
<member name="M:J2N.Numerics.Int16.TryParse(System.String,System.Int16@)">
<summary>
Converts the string representation of a number to its 16-bit signed integer equivalent.
A return value indicates whether the conversion succeeded.
<para/>
Usage Note: When porting from Java, note that this is a culture-sensitive method. Java uses the invariant
culture in the Integer class, so call <see cref="M:J2N.Numerics.Int16.TryParse(System.String,J2N.Globalization.NumberStyle,System.IFormatProvider,System.Int16@)"/>
and pass <see cref="F:J2N.Globalization.NumberStyle.AllowLeadingSign"/> and <see cref="P:System.Globalization.NumberFormatInfo.InvariantInfo"/> to exactly match the Java parsing behavior.
<para/>
Using that overload also allows you to normalize the exception behavior. The <see cref="M:J2N.Numerics.Int16.Parse(System.String,System.IFormatProvider)"/>
method may throw <see cref="T:System.ArgumentNullException"/>, <see cref="T:System.OverflowException"/>, or <see cref="T:System.FormatException"/>,
but Java only ever throws NumberFormatException in any of those cases. Using <see cref="M:J2N.Numerics.Int16.TryParse(System.String,J2N.Globalization.NumberStyle,System.IFormatProvider,System.Int16@)"/>
means a <see cref="T:System.FormatException"/> can be thrown in any of those error condtions when it returns <c>false</c>.
</summary>
<param name="s">A string containing a number to convert.</param>
<param name="result">When this method returns, contains the 16-bit signed integer value equivalent of
the number contained in <paramref name="s"/>, if the conversion succeeded, or zero if the conversion failed.
The conversion fails if the s parameter is <c>null</c> or <see cref="F:System.String.Empty"/>, is not of the correct format,
or represents a number less than <see cref="F:System.Int16.MinValue"/> or greater than <see cref="F:System.Int16.MaxValue"/>. This parameter
is passed uninitialized; any value originally supplied in <paramref name="result"/> will be overwritten.</param>
<returns><c>true</c> if <paramref name="s"/> was converted successfully; otherwise, <c>false</c>.</returns>
<remarks>
The <see cref="M:J2N.Numerics.Int16.TryParse(System.String,System.Int16@)"/> method is like the <see cref="M:J2N.Numerics.Int16.Parse(System.String,System.IFormatProvider)"/> method,
except the <see cref="M:J2N.Numerics.Int16.TryParse(System.String,System.Int16@)"/> method does not throw an exception if the
conversion fails. It eliminates the need to use exception handling to test for a <see cref="T:System.FormatException"/>
in the event that <paramref name="s"/> is invalid and cannot be successfully parsed.
<para/>
The <paramref name="s"/> parameter contains a number of the form:
<code>
[ws][sign]digits[ws]
</code>
Items in square brackets ([ and ]) are optional. The following table describes each element.
<list type="table">
<listheader>
<term>Element</term>
<term>Description</term>
</listheader>
<item>
<term><i>ws</i></term>
<term>Optional white space.</term>
</item>
<item>
<term><i>sign</i></term>
<term>An optional sign.</term>
</item>
<item>
<term><i>digits</i></term>
<term>A sequence of digits ranging from 0 to 9.</term>
</item>
</list>
<para/>
The <paramref name="s"/> parameter is interpreted using the <see cref="F:J2N.Globalization.NumberStyle.Integer"/> style.
In addition to the decimal digits, only leading and trailing spaces together with a leading sign are
allowed. To explicitly define the style elements together with the culture-specific formatting
information that can be present in <paramref name="s"/>, use the <see cref="M:J2N.Numerics.Int16.TryParse(System.String,J2N.Globalization.NumberStyle,System.IFormatProvider,System.Int16@)"/> method.
<para/>
The <paramref name="s"/> parameter is parsed using the formatting information in a <see cref="T:System.Globalization.NumberFormatInfo"/>
object initialized for the current system culture. For more information, see <see cref="P:System.Globalization.NumberFormatInfo.CurrentInfo"/>.
<para/>
This overload of the <see cref="M:J2N.Numerics.Int16.TryParse(System.String,System.Int16@)"/> method interprets all digits in the <paramref name="s"/> parameter
as decimal digits. To parse the string representation of a hexadecimal number, call the
<see cref="M:J2N.Numerics.Int16.TryParse(System.String,J2N.Globalization.NumberStyle,System.IFormatProvider,System.Int16@)"/> overload.
</remarks>
<seealso cref="M:J2N.Numerics.Int16.Parse(System.String,System.IFormatProvider)"/>
<seealso cref="M:J2N.Numerics.Number.ToString"/>
</member>
<member name="M:J2N.Numerics.Int16.TryParse(System.ReadOnlySpan{System.Char},System.Int16@)">
<summary>
Converts the span representation of a number in a specified style and culture-specific format to its 16-bit signed
integer equivalent. A return value indicates whether the conversion succeeded.
<para/>
Usage Note: When porting from Java, note that this is a culture-sensitive method. Java uses the invariant
culture in the Integer class, so call <see cref="M:J2N.Numerics.Int16.TryParse(System.ReadOnlySpan{System.Char},J2N.Globalization.NumberStyle,System.IFormatProvider,System.Int16@)"/>
and pass <see cref="F:J2N.Globalization.NumberStyle.AllowLeadingSign"/> and <see cref="P:System.Globalization.NumberFormatInfo.InvariantInfo"/> to exactly match the Java parsing behavior.
<para/>
Using that overload also allows you to normalize the exception behavior. The <see cref="M:J2N.Numerics.Int16.Parse(System.String,System.IFormatProvider)"/>
method may throw <see cref="T:System.ArgumentNullException"/>, <see cref="T:System.OverflowException"/>, or <see cref="T:System.FormatException"/>,
but Java only ever throws NumberFormatException in any of those cases. Using <see cref="M:J2N.Numerics.Int16.TryParse(System.ReadOnlySpan{System.Char},J2N.Globalization.NumberStyle,System.IFormatProvider,System.Int16@)"/>
means a <see cref="T:System.FormatException"/> can be thrown in any of those error condtions when it returns <c>false</c>.
</summary>
<param name="s">A span containing the characters that represent the number to convert.</param>
<param name="result">When this method returns, contains the 16-bit signed integer value equivalent of
the number contained in <paramref name="s"/>, if the conversion succeeded, or zero if the conversion failed.
The conversion fails if the s parameter is <c>null</c> or <see cref="F:System.String.Empty"/>, is not of the correct format,
or represents a number less than <see cref="F:System.Int16.MinValue"/> or greater than <see cref="F:System.Int16.MaxValue"/>. This parameter
is passed uninitialized; any value originally supplied in <paramref name="result"/> will be overwritten.</param>
<returns><c>true</c> if <paramref name="s"/> was converted successfully; otherwise, <c>false</c>.</returns>
<remarks>
The <see cref="M:J2N.Numerics.Int16.TryParse(System.ReadOnlySpan{System.Char},System.Int16@)"/> method is like the <see cref="M:J2N.Numerics.Int16.Parse(System.ReadOnlySpan{System.Char},J2N.Globalization.NumberStyle,System.IFormatProvider)"/> method,
except the <see cref="M:J2N.Numerics.Int16.TryParse(System.ReadOnlySpan{System.Char},System.Int16@)"/> method does not throw an exception if the
conversion fails. It eliminates the need to use exception handling to test for a <see cref="T:System.FormatException"/>
in the event that <paramref name="s"/> is invalid and cannot be successfully parsed.
<para/>
The <paramref name="s"/> parameter contains a number of the form:
<code>
[ws][sign]digits[ws]
</code>
Items in square brackets ([ and ]) are optional. The following table describes each element.
<list type="table">
<listheader>
<term>Element</term>
<term>Description</term>
</listheader>
<item>
<term><i>ws</i></term>
<term>Optional white space.</term>
</item>
<item>
<term><i>sign</i></term>
<term>An optional sign.</term>
</item>
<item>
<term><i>digits</i></term>
<term>A sequence of digits ranging from 0 to 9.</term>
</item>
</list>
<para/>
The <paramref name="s"/> parameter is interpreted using the <see cref="F:J2N.Globalization.NumberStyle.Integer"/> style.
In addition to the decimal digits, only leading and trailing spaces together with a leading sign are
allowed. To explicitly define the style elements together with the culture-specific formatting
information that can be present in <paramref name="s"/>, use the <see cref="M:J2N.Numerics.Int16.TryParse(System.ReadOnlySpan{System.Char},J2N.Globalization.NumberStyle,System.IFormatProvider,System.Int16@)"/> method.
<para/>
The <paramref name="s"/> parameter is parsed using the formatting information in a <see cref="T:System.Globalization.NumberFormatInfo"/>
object initialized for the current system culture. For more information, see <see cref="P:System.Globalization.NumberFormatInfo.CurrentInfo"/>.
<para/>
This overload of the <see cref="M:J2N.Numerics.Int16.TryParse(System.ReadOnlySpan{System.Char},System.Int16@)"/> method interprets all digits in the <paramref name="s"/> parameter
as decimal digits. To parse the string representation of a hexadecimal number, call the
<see cref="M:J2N.Numerics.Int16.TryParse(System.ReadOnlySpan{System.Char},J2N.Globalization.NumberStyle,System.IFormatProvider,System.Int16@)"/> overload.
</remarks>
<seealso cref="M:J2N.Numerics.Int16.Parse(System.ReadOnlySpan{System.Char},J2N.Globalization.NumberStyle,System.IFormatProvider)"/>
<seealso cref="M:J2N.Numerics.Int16.TryParse(System.String,System.Int16@)"/>
<seealso cref="M:J2N.Numerics.Number.ToString"/>
</member>
<member name="M:J2N.Numerics.Int16.Parse(System.String,J2N.Globalization.NumberStyle,System.IFormatProvider)">
<summary>
Converts the string representation of a number in a specified style and culture-specific format to its
16-bit signed integer equivalent.
</summary>
<param name="s">A string containing a number to convert.</param>
<param name="style">A bitwise combination of enumeration values that indicates the style elements that can be
present in <paramref name="s"/>. A typical value to specify is <see cref="F:J2N.Globalization.NumberStyle.Integer"/>.</param>
<param name="provider">An <see cref="T:System.IFormatProvider"/> that supplies culture-specific formatting information about <paramref name="s"/>.</param>
<returns>A 16-bit signed integer equivalent to the number specified in <paramref name="s"/>.</returns>
<exception cref="T:System.ArgumentNullException"><paramref name="s"/> is <c>null</c>.</exception>
<exception cref="T:System.ArgumentException">
<paramref name="style"/> is not a <see cref="T:J2N.Globalization.NumberStyle"/> value.
<para/>
-or-
<para/>
<paramref name="style"/> is not a combination of <see cref="F:J2N.Globalization.NumberStyle.AllowHexSpecifier"/> and <see cref="F:J2N.Globalization.NumberStyle.HexNumber"/> values.
</exception>
<exception cref="T:System.FormatException"><paramref name="s"/> is not in a format compliant with <paramref name="style"/>.</exception>
<exception cref="T:System.OverflowException">
<paramref name="s"/> represents a number less than <see cref="F:System.Int16.MinValue"/> or greater than <see cref="F:System.Int16.MaxValue"/>.
<para/>
-or-
<para/>
<paramref name="s"/> includes non-zero fractional digits.
</exception>
<remarks>
The <paramref name="style"/> parameter defines the style elements (such as white space or the positive sign) that are allowed in the
<paramref name="s"/> parameter for the parse operation to succeed. It must be a combination of bit flags from the <see cref="T:J2N.Globalization.NumberStyle"/>
enumeration. Depending on the value of <paramref name="style"/>, the <paramref name="s"/> parameter may include the following elements:
<para/>
[ws][$][sign][digits,]digits[.fractional-digits][e[sign]exponential-digits][type][ws]
<para/>
Or, if the <paramref name="style"/> parameter includes <see cref="F:J2N.Globalization.NumberStyle.AllowHexSpecifier"/>:
<para/>
[ws][0x]hexdigits[hextype][ws]
<para/>
Elements framed in square brackets ([ and ]) are optional. The following table describes each element.
<para/>
<list type="table">
<listheader>
<term>Element</term>
<term>Description</term>
</listheader>
<item>
<term><i>ws</i></term>
<term>A series of white-space characters. White space can appear at the beginning of <paramref name="s"/> if style includes the
<see cref="F:J2N.Globalization.NumberStyle.AllowLeadingWhite"/> flag, and it can appear at the end of <paramref name="s"/> if style includes the
<see cref="F:J2N.Globalization.NumberStyle.AllowTrailingWhite"/> flag.</term>
</item>
<item>
<term><i>$</i></term>
<term>A culture-specific currency symbol. Its position in the string is defined by the <see cref="P:System.Globalization.NumberFormatInfo.CurrencyNegativePattern"/>
and <see cref="P:System.Globalization.NumberFormatInfo.CurrencyPositivePattern"/> properties of the <see cref="T:System.Globalization.NumberFormatInfo"/> object returned by the
<see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> method of the <paramref name="provider"/> parameter. The current culture's currency symbol can
appear in <paramref name="s"/> if style includes the <see cref="F:J2N.Globalization.NumberStyle.AllowCurrencySymbol"/> flag.</term>
</item>
<item>
<term><i>sign</i></term>
<term>A negative sign symbol (-) or a positive sign symbol (+). The sign can appear at the beginning of <paramref name="s"/> if
<paramref name="style"/> includes the <see cref="F:J2N.Globalization.NumberStyle.AllowLeadingSign"/> flag, and it can appear at the end of <paramref name="s"/>
if <paramref name="style"/> includes the <see cref="F:J2N.Globalization.NumberStyle.AllowTrailingSign"/> flag. Parentheses can be used in <paramref name="s"/>
to indicate a negative value if <paramref name="style"/> includes the <see cref="F:J2N.Globalization.NumberStyle.AllowParentheses"/> flag.</term>
</item>
<item>
<term><i>digits</i></term>
<term>A series of digits ranging from 0 to 9.</term>
</item>
<item>
<term><i>.</i></term>
<term>A culture-specific decimal point symbol. The decimal point symbol of the culture specified by <paramref name="provider"/>
can appear in <paramref name="s"/> if <paramref name="style"/> includes the <see cref="F:J2N.Globalization.NumberStyle.AllowDecimalPoint"/> flag.</term>
</item>
<item>
<term><i>fractional-digits</i>
</term>
<term>A series of digits ranging from 0 to 9 that specify the fractional part of the number. Fractional digits can appear in
<paramref name="s"/> if <paramref name="style"/> includes the <see cref="F:J2N.Globalization.NumberStyle.AllowDecimalPoint"/> flag.</term>
</item>
<item>
<term><i>e</i></term>
<term>The 'e' or 'E' character, which indicates that the value is represented in exponential notation. The <paramref name="s"/>
parameter can represent a number in exponential notation if <paramref name="style"/> includes the <see cref="F:J2N.Globalization.NumberStyle.AllowExponent"/> flag.</term>
</item>
<item>
<term><i>exponential-digits</i></term>
<term>A sequence of decimal digits from 0 through 9 that specify an exponent.</term>
</item>
<item>
<term><i>0x</i>/></term>
<term>The '0x' or '0X' characters, which indicate a hexadecimal number is to immediately follow.</term>
</item>
<item>
<term><i>hexdigits</i></term>
<term>A sequence of hexadecimal digits from 0 through f, or 0 through F. Hexadecimal digits can appear in <paramref name="s"/>
if <paramref name="style"/> includes the <see cref="F:J2N.Globalization.NumberStyle.AllowHexSpecifier"/> flag.</term>
</item>
<item>
<term><i>type</i></term>
<term>The 'UL', 'Ul', 'uL', 'ul', 'LU', 'Lu', 'lU', or 'lu', which is the
<a href="https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/language-specification/lexical-structure#6453-integer-literals">integral type suffix</a>
or 'f', 'F', 'd', 'D', 'm' or 'M' character, which is the
<a href="https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/language-specification/lexical-structure#6454-real-literals">real type suffix</a>
of the number as specified in the C# language specification. The type suffix can appear in <paramref name="s"/> if <paramref name="style"/>
includes the <see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/> flag.</term>
</item>
<item>
<term><i>hextype</i></term>
<term>The 'UL', 'Ul', 'uL', 'ul', 'LU', 'Lu', 'lU', or 'lu', which is the
<a href="https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/language-specification/lexical-structure#6453-integer-literals">integral type suffix</a>
of the number as specified in the C# language specification. The type suffix can appear in <paramref name="s"/> if <paramref name="style"/>
includes the <see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/> flag. Real type suffixes are not supported.</term>
</item>
</list>
<para/>
NOTE: Any terminating NUL (U+0000) characters in <paramref name="s"/> are ignored by the parsing operation, regardless of
the value of the <paramref name="style"/> argument.
<para/>
A string with decimal digits only (which corresponds to the <see cref="F:J2N.Globalization.NumberStyle.None"/> flag) always parses successfully.
Most of the remaining <see cref="T:J2N.Globalization.NumberStyle"/> members control elements that may be but are not required to be present in
this input string. The following table indicates how individual <see cref="T:J2N.Globalization.NumberStyle"/> members affect the elements that may
be present in <paramref name="s"/>.
<list type="table">
<listheader>
<term>Non-composite NumberStyle values</term>
<term>Elements permitted in <paramref name="s"/> in addition to digits</term>
</listheader>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.None"/></term>
<term>Decimal digits only.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowDecimalPoint"/></term>
<term>The decimal point (.) and <i>fractional-digits</i> elements. However, <i>fractional-digits</i> must consist
of only one or more 0 digits or the method returns <c>false</c>.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowExponent"/></term>
<term>The <paramref name="s"/> parameter can also use exponential notation. If <paramref name="s"/> represents a
number in exponential notation, it must represent an integer within the range of the <see cref="T:System.Int16"/> data type
without a non-zero, fractional component.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowLeadingWhite"/></term>
<term>The <i>ws</i> element at the beginning of <paramref name="s"/>.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowTrailingWhite"/></term>
<term>The <i>ws</i> element at the end of <paramref name="s"/>.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowLeadingSign"/></term>
<term>A sign can appear before <i>digits</i>.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowTrailingSign"/></term>
<term>A sign can appear after <i>digits</i>.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowParentheses"/></term>
<term>The <i>sign</i> element in the form of parentheses enclosing the numeric value.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowThousands"/></term>
<term>The thousands separator (,) element.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowCurrencySymbol"/></term>
<term>The <i>$</i> element.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/></term>
<term>The literal <i>type</i> suffix used in the literal identifier syntax of C# (suffixed with one of
'D', 'd', 'F', 'f', 'M', 'm', 'L', 'l', 'U', 'u', 'UL', 'ul', 'LU', or 'lu').</term>
</item>
</list>
<para/>
The <see cref="T:J2N.Globalization.NumberStyle"/> enum can be converted to the .NET <see cref="T:System.Globalization.NumberStyles"/> enum by using the
<see cref="M:J2N.Globalization.NumberStyleExtensions.ToNumberStyles(J2N.Globalization.NumberStyle)"/> extension method.
Similarly, <see cref="T:System.Globalization.NumberStyles"/> enum can be converted to the J2N <see cref="T:J2N.Globalization.NumberStyle"/> enum by using
the <see cref="M:J2N.Globalization.NumberStyleExtensions.ToNumberStyle(System.Globalization.NumberStyles)"/> extension method.
<para/>
If the <see cref="F:J2N.Globalization.NumberStyle.AllowHexSpecifier"/> flag is used, <paramref name="s"/> must be a hexadecimal value with or without a <c>0x</c> prefix.
For example, "F3" and "0xF3" both parse successfully. The only other flags that can be present in <paramref name="style"/> are
<see cref="F:J2N.Globalization.NumberStyle.AllowLeadingWhite"/>, <see cref="F:J2N.Globalization.NumberStyle.AllowTrailingWhite"/> and <see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/>.
(The <see cref="T:J2N.Globalization.NumberStyle"/> enumeration has a composite number style, <see cref="F:J2N.Globalization.NumberStyle.HexNumber"/>, that includes both white space
flags.)
The <see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/> only allows 'L', 'l', 'U', 'u', 'UL', 'ul', 'LU', or 'lu' for hexadecimal numbers.
<para/>
The <paramref name="provider"/> parameter is an <see cref="T:System.IFormatProvider"/> implementation, such as a <see cref="T:System.Globalization.CultureInfo"/> object,
a <see cref="T:System.Globalization.NumberFormatInfo"/> object or a <see cref="T:J2N.Text.StringFormatter"/> object, whose <see cref="M:System.IFormatProvider.GetFormat(System.Type)"/>
method returns a <see cref="T:System.Globalization.NumberFormatInfo"/> object. The <see cref="T:System.Globalization.NumberFormatInfo"/> object provides culture-specific information about
the format of <paramref name="s"/>. When the <see cref="M:J2N.Numerics.Int16.Parse(System.String,System.IFormatProvider)"/> method is invoked, it calls the provider parameter's
<see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> method and passes it a <see cref="T:System.Type"/> object that represents the <see cref="T:System.Globalization.NumberFormatInfo"/> type.
The <see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> method then returns the <see cref="T:System.Globalization.NumberFormatInfo"/> object that provides information about the
format of the <paramref name="s"/> parameter. There are three ways to use the <paramref name="provider"/> parameter to supply custom formatting
information to the parse operation:
<list type="bullet">
<item><description>You can pass a <see cref="T:System.Globalization.CultureInfo"/> object that represents the culture that supplies formatting information. Its
<see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> method returns the <see cref="T:System.Globalization.NumberFormatInfo"/> object that provides numeric formatting
information for that culture.</description></item>
<item><description>You can pass the actual <see cref="T:System.Globalization.NumberFormatInfo"/> object that provides numeric formatting information. (Its
implementation of <see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> just returns itself.)</description></item>
<item><description>You can pass a custom object that implements <see cref="T:System.IFormatProvider"/>. Its <see cref="M:System.IFormatProvider.GetFormat(System.Type)"/>
method instantiates and returns the <see cref="T:System.Globalization.NumberFormatInfo"/> object that provides formatting information.</description></item>
</list>
If <paramref name="provider"/> is <c>null</c> or a <see cref="T:System.Globalization.NumberFormatInfo"/> object cannot be obtained, the <see cref="T:System.Globalization.NumberFormatInfo"/>
object for the current culture is used.
</remarks>
<seealso cref="M:J2N.Numerics.Int16.TryParse(System.String,J2N.Globalization.NumberStyle,System.IFormatProvider,System.Int16@)"/>
<seealso cref="M:J2N.Numerics.Int16.GetInstance(System.String,J2N.Globalization.NumberStyle,System.IFormatProvider)"/>
</member>
<member name="M:J2N.Numerics.Int16.Parse(System.ReadOnlySpan{System.Char},J2N.Globalization.NumberStyle,System.IFormatProvider)">
<summary>
Converts the string representation of a number in a specified style and culture-specific format to its
16-bit signed integer equivalent.
</summary>
<param name="s">A string containing a number to convert.</param>
<param name="style">A bitwise combination of enumeration values that indicates the style elements that can be
present in <paramref name="s"/>. A typical value to specify is <see cref="F:J2N.Globalization.NumberStyle.Integer"/>.</param>
<param name="provider">An <see cref="T:System.IFormatProvider"/> that supplies culture-specific formatting information about <paramref name="s"/>.</param>
<returns>A 16-bit signed integer equivalent to the number specified in <paramref name="s"/>.</returns>
<exception cref="T:System.ArgumentException">
<paramref name="style"/> is not a <see cref="T:J2N.Globalization.NumberStyle"/> value.
<para/>
-or-
<para/>
<paramref name="style"/> is not a combination of <see cref="F:J2N.Globalization.NumberStyle.AllowHexSpecifier"/> and <see cref="F:J2N.Globalization.NumberStyle.HexNumber"/> values.
</exception>
<exception cref="T:System.FormatException"><paramref name="s"/> is not in a format compliant with <paramref name="style"/>.</exception>
<exception cref="T:System.OverflowException">
<paramref name="s"/> represents a number less than <see cref="F:System.Int16.MinValue"/> or greater than <see cref="F:System.Int16.MaxValue"/>.
<para/>
-or-
<para/>
<paramref name="s"/> includes non-zero fractional digits.
</exception>
<remarks>
The <paramref name="style"/> parameter defines the style elements (such as white space or the positive sign) that are allowed in the
<paramref name="s"/> parameter for the parse operation to succeed. It must be a combination of bit flags from the <see cref="T:J2N.Globalization.NumberStyle"/>
enumeration. Depending on the value of <paramref name="style"/>, the <paramref name="s"/> parameter may include the following elements:
<para/>
[ws][$][sign][digits,]digits[.fractional-digits][e[sign]exponential-digits][type][ws]
<para/>
Or, if the <paramref name="style"/> parameter includes <see cref="F:J2N.Globalization.NumberStyle.AllowHexSpecifier"/>:
<para/>
[ws][0x]hexdigits[hextype][ws]
<para/>
Elements framed in square brackets ([ and ]) are optional. The following table describes each element.
<para/>
<list type="table">
<listheader>
<term>Element</term>
<term>Description</term>
</listheader>
<item>
<term><i>ws</i></term>
<term>A series of white-space characters. White space can appear at the beginning of <paramref name="s"/> if style includes the
<see cref="F:J2N.Globalization.NumberStyle.AllowLeadingWhite"/> flag, and it can appear at the end of <paramref name="s"/> if style includes the
<see cref="F:J2N.Globalization.NumberStyle.AllowTrailingWhite"/> flag.</term>
</item>
<item>
<term><i>$</i></term>
<term>A culture-specific currency symbol. Its position in the string is defined by the <see cref="P:System.Globalization.NumberFormatInfo.CurrencyNegativePattern"/>
and <see cref="P:System.Globalization.NumberFormatInfo.CurrencyPositivePattern"/> properties of the <see cref="T:System.Globalization.NumberFormatInfo"/> object returned by the
<see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> method of the <paramref name="provider"/> parameter. The current culture's currency symbol can
appear in <paramref name="s"/> if style includes the <see cref="F:J2N.Globalization.NumberStyle.AllowCurrencySymbol"/> flag.</term>
</item>
<item>
<term><i>sign</i></term>
<term>A negative sign symbol (-) or a positive sign symbol (+). The sign can appear at the beginning of <paramref name="s"/> if
<paramref name="style"/> includes the <see cref="F:J2N.Globalization.NumberStyle.AllowLeadingSign"/> flag, and it can appear at the end of <paramref name="s"/>
if <paramref name="style"/> includes the <see cref="F:J2N.Globalization.NumberStyle.AllowTrailingSign"/> flag. Parentheses can be used in <paramref name="s"/>
to indicate a negative value if <paramref name="style"/> includes the <see cref="F:J2N.Globalization.NumberStyle.AllowParentheses"/> flag.</term>
</item>
<item>
<term><i>digits</i></term>
<term>A series of digits ranging from 0 to 9.</term>
</item>
<item>
<term><i>.</i></term>
<term>A culture-specific decimal point symbol. The decimal point symbol of the culture specified by <paramref name="provider"/>
can appear in <paramref name="s"/> if <paramref name="style"/> includes the <see cref="F:J2N.Globalization.NumberStyle.AllowDecimalPoint"/> flag.</term>
</item>
<item>
<term><i>fractional-digits</i>
</term>
<term>A series of digits ranging from 0 to 9 that specify the fractional part of the number. Fractional digits can appear in
<paramref name="s"/> if <paramref name="style"/> includes the <see cref="F:J2N.Globalization.NumberStyle.AllowDecimalPoint"/> flag.</term>
</item>
<item>
<term><i>e</i></term>
<term>The 'e' or 'E' character, which indicates that the value is represented in exponential notation. The <paramref name="s"/>
parameter can represent a number in exponential notation if <paramref name="style"/> includes the <see cref="F:J2N.Globalization.NumberStyle.AllowExponent"/> flag.</term>
</item>
<item>
<term><i>exponential-digits</i></term>
<term>A sequence of decimal digits from 0 through 9 that specify an exponent.</term>
</item>
<item>
<term><i>0x</i>/></term>
<term>The '0x' or '0X' characters, which indicate a hexadecimal number is to immediately follow.</term>
</item>
<item>
<term><i>hexdigits</i></term>
<term>A sequence of hexadecimal digits from 0 through f, or 0 through F. Hexadecimal digits can appear in <paramref name="s"/>
if <paramref name="style"/> includes the <see cref="F:J2N.Globalization.NumberStyle.AllowHexSpecifier"/> flag.</term>
</item>
<item>
<term><i>type</i></term>
<term>The 'UL', 'Ul', 'uL', 'ul', 'LU', 'Lu', 'lU', or 'lu', which is the
<a href="https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/language-specification/lexical-structure#6453-integer-literals">integral type suffix</a>
or 'f', 'F', 'd', 'D', 'm' or 'M' character, which is the
<a href="https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/language-specification/lexical-structure#6454-real-literals">real type suffix</a>
of the number as specified in the C# language specification. The type suffix can appear in <paramref name="s"/> if <paramref name="style"/>
includes the <see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/> flag.</term>
</item>
<item>
<term><i>hextype</i></term>
<term>The 'UL', 'Ul', 'uL', 'ul', 'LU', 'Lu', 'lU', or 'lu', which is the
<a href="https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/language-specification/lexical-structure#6453-integer-literals">integral type suffix</a>
of the number as specified in the C# language specification. The type suffix can appear in <paramref name="s"/> if <paramref name="style"/>
includes the <see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/> flag. Real type suffixes are not supported.</term>
</item>
</list>
<para/>
NOTE: Any terminating NUL (U+0000) characters in <paramref name="s"/> are ignored by the parsing operation, regardless of
the value of the <paramref name="style"/> argument.
<para/>
A string with decimal digits only (which corresponds to the <see cref="F:J2N.Globalization.NumberStyle.None"/> flag) always parses successfully.
Most of the remaining <see cref="T:J2N.Globalization.NumberStyle"/> members control elements that may be but are not required to be present in
this input string. The following table indicates how individual <see cref="T:J2N.Globalization.NumberStyle"/> members affect the elements that may
be present in <paramref name="s"/>.
<list type="table">
<listheader>
<term>Non-composite NumberStyle values</term>
<term>Elements permitted in <paramref name="s"/> in addition to digits</term>
</listheader>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.None"/></term>
<term>Decimal digits only.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowDecimalPoint"/></term>
<term>The decimal point (.) and <i>fractional-digits</i> elements. However, <i>fractional-digits</i> must consist
of only one or more 0 digits or the method returns <c>false</c>.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowExponent"/></term>
<term>The <paramref name="s"/> parameter can also use exponential notation. If <paramref name="s"/> represents a
number in exponential notation, it must represent an integer within the range of the <see cref="T:System.Int16"/> data type
without a non-zero, fractional component.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowLeadingWhite"/></term>
<term>The <i>ws</i> element at the beginning of <paramref name="s"/>.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowTrailingWhite"/></term>
<term>The <i>ws</i> element at the end of <paramref name="s"/>.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowLeadingSign"/></term>
<term>A sign can appear before <i>digits</i>.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowTrailingSign"/></term>
<term>A sign can appear after <i>digits</i>.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowParentheses"/></term>
<term>The <i>sign</i> element in the form of parentheses enclosing the numeric value.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowThousands"/></term>
<term>The thousands separator (,) element.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowCurrencySymbol"/></term>
<term>The <i>$</i> element.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/></term>
<term>The literal <i>type</i> suffix used in the literal identifier syntax of C# (suffixed with one of
'D', 'd', 'F', 'f', 'M', 'm', 'L', 'l', 'U', 'u', 'UL', 'ul', 'LU', or 'lu').</term>
</item>
</list>
<para/>
The <see cref="T:J2N.Globalization.NumberStyle"/> enum can be converted to the .NET <see cref="T:System.Globalization.NumberStyles"/> enum by using the
<see cref="M:J2N.Globalization.NumberStyleExtensions.ToNumberStyles(J2N.Globalization.NumberStyle)"/> extension method.
Similarly, <see cref="T:System.Globalization.NumberStyles"/> enum can be converted to the J2N <see cref="T:J2N.Globalization.NumberStyle"/> enum by using
the <see cref="M:J2N.Globalization.NumberStyleExtensions.ToNumberStyle(System.Globalization.NumberStyles)"/> extension method.
<para/>
If the <see cref="F:J2N.Globalization.NumberStyle.AllowHexSpecifier"/> flag is used, <paramref name="s"/> must be a hexadecimal value with or without a <c>0x</c> prefix.
For example, "F3" and "0xF3" both parse successfully. The only other flags that can be present in <paramref name="style"/> are
<see cref="F:J2N.Globalization.NumberStyle.AllowLeadingWhite"/>, <see cref="F:J2N.Globalization.NumberStyle.AllowTrailingWhite"/> and <see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/>.
(The <see cref="T:J2N.Globalization.NumberStyle"/> enumeration has a composite number style, <see cref="F:J2N.Globalization.NumberStyle.HexNumber"/>, that includes both white space
flags.)
The <see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/> only allows 'L', 'l', 'U', 'u', 'UL', 'ul', 'LU', or 'lu' for hexadecimal numbers.
<para/>
The <paramref name="provider"/> parameter is an <see cref="T:System.IFormatProvider"/> implementation, such as a <see cref="T:System.Globalization.CultureInfo"/> object,
a <see cref="T:System.Globalization.NumberFormatInfo"/> object or a <see cref="T:J2N.Text.StringFormatter"/> object, whose <see cref="M:System.IFormatProvider.GetFormat(System.Type)"/>
method returns a <see cref="T:System.Globalization.NumberFormatInfo"/> object. The <see cref="T:System.Globalization.NumberFormatInfo"/> object provides culture-specific information about
the format of <paramref name="s"/>. When the <see cref="M:J2N.Numerics.Int16.Parse(System.String,System.IFormatProvider)"/> method is invoked, it calls the provider parameter's
<see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> method and passes it a <see cref="T:System.Type"/> object that represents the <see cref="T:System.Globalization.NumberFormatInfo"/> type.
The <see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> method then returns the <see cref="T:System.Globalization.NumberFormatInfo"/> object that provides information about the
format of the <paramref name="s"/> parameter. There are three ways to use the <paramref name="provider"/> parameter to supply custom formatting
information to the parse operation:
<list type="bullet">
<item><description>You can pass a <see cref="T:System.Globalization.CultureInfo"/> object that represents the culture that supplies formatting information. Its
<see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> method returns the <see cref="T:System.Globalization.NumberFormatInfo"/> object that provides numeric formatting
information for that culture.</description></item>
<item><description>You can pass the actual <see cref="T:System.Globalization.NumberFormatInfo"/> object that provides numeric formatting information. (Its
implementation of <see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> just returns itself.)</description></item>
<item><description>You can pass a custom object that implements <see cref="T:System.IFormatProvider"/>. Its <see cref="M:System.IFormatProvider.GetFormat(System.Type)"/>
method instantiates and returns the <see cref="T:System.Globalization.NumberFormatInfo"/> object that provides formatting information.</description></item>
</list>
If <paramref name="provider"/> is <c>null</c> or a <see cref="T:System.Globalization.NumberFormatInfo"/> object cannot be obtained, the <see cref="T:System.Globalization.NumberFormatInfo"/>
object for the current culture is used.
</remarks>
<seealso cref="M:J2N.Numerics.Int16.TryParse(System.String,J2N.Globalization.NumberStyle,System.IFormatProvider,System.Int16@)"/>
<seealso cref="M:J2N.Numerics.Int16.GetInstance(System.String,J2N.Globalization.NumberStyle,System.IFormatProvider)"/>
</member>
<member name="M:J2N.Numerics.Int16.TryParse(System.String,J2N.Globalization.NumberStyle,System.IFormatProvider,System.Int16@)">
<summary>
Converts the string representation of a number in a specified style and culture-specific format to its
16-bit signed integer equivalent. A return value indicates whether the conversion succeeded.
<para/>
Usage Note: To exactly match Java, use <see cref="F:J2N.Globalization.NumberStyle.AllowLeadingSign"/> for <paramref name="style"/> and
<see cref="P:System.Globalization.NumberFormatInfo.InvariantInfo"/> for <paramref name="provider"/>. We recommend factoring out
exceptions when parsing, but if the Java code depends on exceptions, throw <see cref="T:System.FormatException"/>
when this method returns <c>false</c>.
</summary>
<param name="s">A string containing a number to convert. The string is interpreted using the style specified by <paramref name="style"/>.</param>
<param name="style">A bitwise combination of enumeration values that indicates the style elements that can be present in <paramref name="s"/>.
A typical value to specify is <see cref="F:J2N.Globalization.NumberStyle.Integer"/>.</param>
<param name="provider">An object that supplies culture-specific formatting information about <paramref name="s"/>.</param>
<param name="result">When this method returns, contains the 16-bit signed integer value equivalent of
the number contained in <paramref name="s"/>, if the conversion succeeded, or zero if the conversion failed.
The conversion fails if the s parameter is <c>null</c> or <see cref="F:System.String.Empty"/>, is not of the correct format,
or represents a number less than <see cref="F:System.Int16.MinValue"/> or greater than <see cref="F:System.Int16.MaxValue"/>. This parameter
is passed uninitialized; any value originally supplied in <paramref name="result"/> will be overwritten.</param>
<returns><c>true</c> if <paramref name="s"/> was converted successfully; otherwise, <c>false</c>.</returns>
<exception cref="T:System.ArgumentException">
<paramref name="style"/> is not a <see cref="T:J2N.Globalization.NumberStyle"/> value.
<para/>
-or-
<para/>
<paramref name="style"/> is not a combination of <see cref="F:J2N.Globalization.NumberStyle.AllowHexSpecifier"/> and <see cref="F:J2N.Globalization.NumberStyle.HexNumber"/> values.
</exception>
<remarks>
The <see cref="M:J2N.Numerics.Int16.TryParse(System.String,J2N.Globalization.NumberStyle,System.IFormatProvider,System.Int16@)"/> method is like the <see cref="M:J2N.Numerics.Int16.Parse(System.String,J2N.Globalization.NumberStyle,System.IFormatProvider)"/> method,
except the <see cref="M:J2N.Numerics.Int16.TryParse(System.String,J2N.Globalization.NumberStyle,System.IFormatProvider,System.Int16@)"/> method does not throw an exception if the
conversion fails. It eliminates the need to use exception handling to test for a <see cref="T:System.FormatException"/>
in the event that <paramref name="s"/> is invalid and cannot be successfully parsed.
<para/>
The <paramref name="style"/> parameter defines the style elements (such as white space or a positive or negative sign)
that are allowed in the <paramref name="s"/> parameter for the parse operation to succeed. It must be a combination of
bit flags from the <see cref="T:J2N.Globalization.NumberStyle"/> enumeration. Depending on the value of <paramref name="style"/>, the <paramref name="s"/>
parameter may include the following elements:
<code>
[ws][$][sign][digits,]digits[.fractional-digits][e[sign]exponential-digits][type][ws]
</code>
Or, if the <paramref name="style"/> parameter includes <see cref="F:J2N.Globalization.NumberStyle.AllowHexSpecifier"/>:
<code>
[ws][0x]hexdigits[hextype][ws]
</code>
Items in square brackets ([ and ]) are optional. The following table describes each element.
<list type="table">
<listheader>
<term>Element</term>
<term>Description</term>
</listheader>
<item>
<term><i>ws</i></term>
<term>Optional white space.</term>
</item>
<item>
<term><i>$</i></term>
<term>A culture-specific currency symbol. Its position in the string is defined by the <see cref="P:System.Globalization.NumberFormatInfo.CurrencyPositivePattern"/>
property of the <see cref="T:System.Globalization.NumberFormatInfo"/> object returned by the <see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> method of the
<paramref name="provider"/> parameter. The currency symbol can appear in <paramref name="s"/> if style includes the
<see cref="F:J2N.Globalization.NumberStyle.AllowCurrencySymbol"/> flag.</term>
</item>
<item>
<term><i>sign</i></term>
<term>An optional sign.</term>
</item>
<item>
<term><i>digits</i></term>
<term>A sequence of digits ranging from 0 to 9.</term>
</item>
<item>
<term><i>,</i></term>
<term>A culture-specific thousands separator. The thousands separator of the culture specified by <paramref name="provider"/>
can appear in <paramref name="s"/> if <paramref name="style"/> includes the <see cref="F:J2N.Globalization.NumberStyle.AllowThousands"/> flag.</term>
</item>
<item>
<term><i>.</i></term>
<term>A culture-specific decimal point symbol. The decimal point symbol of the culture specified by <paramref name="provider"/>
can appear in <paramref name="s"/> if <paramref name="style"/> includes the <see cref="F:J2N.Globalization.NumberStyle.AllowDecimalPoint"/> flag.</term>
</item>
<item>
<term><i>fractional-digits</i></term>
<term>One or more occurrences of the digit 0. Fractional digits can appear in <paramref name="s"/> only if style includes
the <see cref="F:J2N.Globalization.NumberStyle.AllowDecimalPoint"/> flag.</term>
</item>
<item>
<term><i>The 'e' or 'E' character, which indicates that the value is represented in exponential notation. The <paramref name="s"/>
parameter can represent a number in exponential notation if style includes the <see cref="F:J2N.Globalization.NumberStyle.AllowExponent"/> flag.</i></term>
<term></term>
</item>
<item>
<term><i>exponential-digits</i></term>
<term>A sequence of decimal digits from 0 through 9 that specify an exponent.</term>
</item>
<item>
<term><i>0x</i>/></term>
<term>The '0x' or '0X' characters, which indicate a hexadecimal number is to immediately follow.</term>
</item>
<item>
<term><i>hexdigits</i></term>
<term>A sequence of hexadecimal digits from 0 through f, or 0 through F.</term>
</item>
<item>
<term><i>type</i></term>
<term>The 'UL', 'Ul', 'uL', 'ul', 'LU', 'Lu', 'lU', or 'lu', which is the
<a href="https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/language-specification/lexical-structure#6453-integer-literals">integral type suffix</a>
or 'f', 'F', 'd', 'D', 'm' or 'M' character, which is the
<a href="https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/language-specification/lexical-structure#6454-real-literals">real type suffix</a>
of the number as specified in the C# language specification. The type suffix can appear in <paramref name="s"/> if <paramref name="style"/>
includes the <see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/> flag.</term>
</item>
<item>
<term><i>hextype</i></term>
<term>The 'UL', 'Ul', 'uL', 'ul', 'LU', 'Lu', 'lU', or 'lu', which is the
<a href="https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/language-specification/lexical-structure#6453-integer-literals">integral type suffix</a>
of the number as specified in the C# language specification. The type suffix can appear in <paramref name="s"/> if <paramref name="style"/>
includes the <see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/> flag. Real type suffixes are not supported.</term>
</item>
</list>
<para/>
NOTE: Any terminating NUL (U+0000) characters in <paramref name="s"/> are ignored by the parsing operation, regardless of
the value of the <paramref name="style"/> argument.
<para/>
A string with decimal digits only (which corresponds to the <see cref="F:J2N.Globalization.NumberStyle.None"/> flag) always parses successfully.
Most of the remaining <see cref="T:J2N.Globalization.NumberStyle"/> members control elements that may be but are not required to be present in
this input string. The following table indicates how individual <see cref="T:J2N.Globalization.NumberStyle"/> members affect the elements that may
be present in <paramref name="s"/>.
<list type="table">
<listheader>
<term>Non-composite NumberStyle values</term>
<term>Elements permitted in <paramref name="s"/> in addition to digits</term>
</listheader>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.None"/></term>
<term>Decimal digits only.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowDecimalPoint"/></term>
<term>The decimal point (.) and <i>fractional-digits</i> elements. However, <i>fractional-digits</i> must consist
of only one or more 0 digits or the method returns <c>false</c>.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowExponent"/></term>
<term>The <paramref name="s"/> parameter can also use exponential notation. If <paramref name="s"/> represents a
number in exponential notation, it must represent an integer within the range of the <see cref="T:System.Int16"/> data type
without a non-zero, fractional component.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowLeadingWhite"/></term>
<term>The <i>ws</i> element at the beginning of <paramref name="s"/>.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowTrailingWhite"/></term>
<term>The <i>ws</i> element at the end of <paramref name="s"/>.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowLeadingSign"/></term>
<term>A sign can appear before <i>digits</i>.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowTrailingSign"/></term>
<term>A sign can appear after <i>digits</i>.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowParentheses"/></term>
<term>The <i>sign</i> element in the form of parentheses enclosing the numeric value.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowThousands"/></term>
<term>The thousands separator (,) element.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowCurrencySymbol"/></term>
<term>The <i>$</i> element.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/></term>
<term>The literal <i>type</i> suffix used in the literal identifier syntax of C# (suffixed with one of
'D', 'd', 'F', 'f', 'M', 'm', 'L', 'l', 'U', 'u', 'UL', 'ul', 'LU', or 'lu').</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.Currency"/></term>
<term>All elements. The <paramref name="s"/> parameter cannot represent a hexadecimal
number or a number in exponential notation.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.Float"/></term>
<term>The <i>ws</i> element at the beginning or end of <paramref name="s"/>, sign at
the beginning of <paramref name="s"/>, and the decimal point (.) symbol. The <paramref name="s"/>
parameter can also use exponential notation.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.Number"/></term>
<term>The <i>ws</i>, <i>sign</i>, thousands separator (,), and decimal point (.) elements.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.Any"/></term>
<term>All styles, except <paramref name="s"/> cannot represent a hexadecimal number.</term>
</item>
</list>
<para/>
The <see cref="T:J2N.Globalization.NumberStyle"/> enum can be converted to the .NET <see cref="T:System.Globalization.NumberStyles"/> enum by using the
<see cref="M:J2N.Globalization.NumberStyleExtensions.ToNumberStyles(J2N.Globalization.NumberStyle)"/> extension method.
Similarly, <see cref="T:System.Globalization.NumberStyles"/> enum can be converted to the J2N <see cref="T:J2N.Globalization.NumberStyle"/> enum by using
the <see cref="M:J2N.Globalization.NumberStyleExtensions.ToNumberStyle(System.Globalization.NumberStyles)"/> extension method.
<para/>
If the <see cref="F:J2N.Globalization.NumberStyle.AllowHexSpecifier"/> flag is used, <paramref name="s"/> must be a hexadecimal value with or without a <c>0x</c> prefix.
For example, "F3" and "0xF3" both parse successfully. The only other flags that can be present in <paramref name="style"/> are
<see cref="F:J2N.Globalization.NumberStyle.AllowLeadingWhite"/>, <see cref="F:J2N.Globalization.NumberStyle.AllowTrailingWhite"/> and <see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/>.
(The <see cref="T:J2N.Globalization.NumberStyle"/> enumeration has a composite number style, <see cref="F:J2N.Globalization.NumberStyle.HexNumber"/>, that includes both white space
flags.)
The <see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/> only allows 'L', 'l', 'U', 'u', 'UL', 'ul', 'LU', or 'lu' for hexadecimal numbers.
<para/>
The <paramref name="provider"/> parameter is an <see cref="T:System.IFormatProvider"/> implementation, such as a <see cref="T:System.Globalization.CultureInfo"/> object,
a <see cref="T:System.Globalization.NumberFormatInfo"/> object or a <see cref="T:J2N.Text.StringFormatter"/> object, whose <see cref="M:System.IFormatProvider.GetFormat(System.Type)"/>
method returns a <see cref="T:System.Globalization.NumberFormatInfo"/> object. The <see cref="T:System.Globalization.NumberFormatInfo"/> object provides culture-specific information about
the format of <paramref name="s"/>. If <paramref name="provider"/> is <c>null</c>, the <see cref="T:System.Globalization.NumberFormatInfo"/> object for the current
culture is used.
</remarks>
<seealso cref="M:J2N.Numerics.Int16.Parse(System.String,J2N.Globalization.NumberStyle,System.IFormatProvider)"/>
<seealso cref="M:J2N.Numerics.Int16.TryParse(System.String,System.Int16@)"/>
<seealso cref="M:J2N.Numerics.Number.ToString"/>
<seealso cref="T:J2N.Globalization.NumberStyle"/>
</member>
<member name="M:J2N.Numerics.Int16.TryParse(System.ReadOnlySpan{System.Char},J2N.Globalization.NumberStyle,System.IFormatProvider,System.Int16@)">
<summary>
Converts the span representation of a number in a specified style and culture-specific format to its 16-bit signed integer equivalent.
A return value indicates whether the conversion succeeded.
<para/>
Usage Note: To exactly match Java, use <see cref="F:J2N.Globalization.NumberStyle.AllowLeadingSign"/> for <paramref name="style"/> and
<see cref="P:System.Globalization.NumberFormatInfo.InvariantInfo"/> for <paramref name="provider"/>. We recommend factoring out
exceptions when parsing, but if the Java code depends on exceptions, throw <see cref="T:System.FormatException"/>
when this method returns <c>false</c>.
</summary>
<param name="s">A span containing the characters that represent the number to convert. The span is interpreted using
the style specified by <paramref name="style"/>.</param>
<param name="style">A bitwise combination of enumeration values that indicates the style elements that can be present in <paramref name="s"/>.
A typical value to specify is <see cref="F:J2N.Globalization.NumberStyle.Integer"/>.</param>
<param name="provider">An object that supplies culture-specific formatting information about <paramref name="s"/>.</param>
<param name="result">When this method returns, contains the 16-bit signed integer value equivalent of
the number contained in <paramref name="s"/>, if the conversion succeeded, or zero if the conversion failed.
The conversion fails if the s parameter is <c>null</c> or <see cref="F:System.String.Empty"/>, is not of the correct format,
or represents a number less than <see cref="F:System.Int16.MinValue"/> or greater than <see cref="F:System.Int16.MaxValue"/>. This parameter
is passed uninitialized; any value originally supplied in <paramref name="result"/> will be overwritten.</param>
<returns><c>true</c> if <paramref name="s"/> was converted successfully; otherwise, <c>false</c>.</returns>
<exception cref="T:System.ArgumentException">
<paramref name="style"/> is not a <see cref="T:J2N.Globalization.NumberStyle"/> value.
<para/>
-or-
<para/>
<paramref name="style"/> is not a combination of <see cref="F:J2N.Globalization.NumberStyle.AllowHexSpecifier"/> and <see cref="F:J2N.Globalization.NumberStyle.HexNumber"/> values.
</exception>
<remarks>
The <see cref="M:J2N.Numerics.Int16.TryParse(System.ReadOnlySpan{System.Char},J2N.Globalization.NumberStyle,System.IFormatProvider,System.Int16@)"/> method is like the <see cref="M:J2N.Numerics.Int16.Parse(System.ReadOnlySpan{System.Char},J2N.Globalization.NumberStyle,System.IFormatProvider)"/> method,
except the <see cref="M:J2N.Numerics.Int16.TryParse(System.ReadOnlySpan{System.Char},J2N.Globalization.NumberStyle,System.IFormatProvider,System.Int16@)"/> method does not throw an exception if the
conversion fails. It eliminates the need to use exception handling to test for a <see cref="T:System.FormatException"/>
in the event that <paramref name="s"/> is invalid and cannot be successfully parsed.
<para/>
The <paramref name="style"/> parameter defines the style elements (such as white space or a positive or negative sign)
that are allowed in the <paramref name="s"/> parameter for the parse operation to succeed. It must be a combination of
bit flags from the <see cref="T:J2N.Globalization.NumberStyle"/> enumeration. Depending on the value of <paramref name="style"/>, the <paramref name="s"/>
parameter may include the following elements:
<code>
[ws][$][sign][digits,]digits[.fractional-digits][e[sign]exponential-digits][type][ws]
</code>
Or, if the <paramref name="style"/> parameter includes <see cref="F:J2N.Globalization.NumberStyle.AllowHexSpecifier"/>:
<code>
[ws][0x]hexdigits[hextype][ws]
</code>
Items in square brackets ([ and ]) are optional. The following table describes each element.
<list type="table">
<listheader>
<term>Element</term>
<term>Description</term>
</listheader>
<item>
<term><i>ws</i></term>
<term>Optional white space.</term>
</item>
<item>
<term><i>$</i></term>
<term>A culture-specific currency symbol. Its position in the string is defined by the <see cref="P:System.Globalization.NumberFormatInfo.CurrencyPositivePattern"/>
property of the <see cref="T:System.Globalization.NumberFormatInfo"/> object returned by the <see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> method of the
<paramref name="provider"/> parameter. The currency symbol can appear in <paramref name="s"/> if style includes the
<see cref="F:J2N.Globalization.NumberStyle.AllowCurrencySymbol"/> flag.</term>
</item>
<item>
<term><i>sign</i></term>
<term>An optional sign.</term>
</item>
<item>
<term><i>digits</i></term>
<term>A sequence of digits ranging from 0 to 9.</term>
</item>
<item>
<term><i>,</i></term>
<term>A culture-specific thousands separator. The thousands separator of the culture specified by <paramref name="provider"/>
can appear in <paramref name="s"/> if <paramref name="style"/> includes the <see cref="F:J2N.Globalization.NumberStyle.AllowThousands"/> flag.</term>
</item>
<item>
<term><i>.</i></term>
<term>A culture-specific decimal point symbol. The decimal point symbol of the culture specified by <paramref name="provider"/>
can appear in <paramref name="s"/> if <paramref name="style"/> includes the <see cref="F:J2N.Globalization.NumberStyle.AllowDecimalPoint"/> flag.</term>
</item>
<item>
<term><i>fractional-digits</i></term>
<term>One or more occurrences of the digit 0. Fractional digits can appear in <paramref name="s"/> only if style includes
the <see cref="F:J2N.Globalization.NumberStyle.AllowDecimalPoint"/> flag.</term>
</item>
<item>
<term><i>e</i></term>
<term>The 'e' or 'E' character, which indicates that the value is represented in exponential notation. The <paramref name="s"/>
parameter can represent a number in exponential notation if style includes the <see cref="F:J2N.Globalization.NumberStyle.AllowExponent"/> flag.</term>
</item>
<item>
<term><i>exponential-digits</i></term>
<term>A sequence of decimal digits from 0 through 9 that specify an exponent.</term>
</item>
<item>
<term><i>hexdigits</i></term>
<term>A sequence of hexadecimal digits from 0 through f, or 0 through F.</term>
</item>
<item>
<term><i>0x</i>/></term>
<term>The '0x' or '0X' characters, which indicate a hexadecimal number is to immediately follow.</term>
</item>
<item>
<term><i>type</i></term>
<term>The 'UL', 'Ul', 'uL', 'ul', 'LU', 'Lu', 'lU', or 'lu', which is the
<a href="https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/language-specification/lexical-structure#6453-integer-literals">integral type suffix</a>
or 'f', 'F', 'd', 'D', 'm' or 'M' character, which is the
<a href="https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/language-specification/lexical-structure#6454-real-literals">real type suffix</a>
of the number as specified in the C# language specification. The type suffix can appear in <paramref name="s"/> if <paramref name="style"/>
includes the <see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/> flag.</term>
</item>
<item>
<term><i>hextype</i></term>
<term>The 'UL', 'Ul', 'uL', 'ul', 'LU', 'Lu', 'lU', or 'lu', which is the
<a href="https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/language-specification/lexical-structure#6453-integer-literals">integral type suffix</a>
of the number as specified in the C# language specification. The type suffix can appear in <paramref name="s"/> if <paramref name="style"/>
includes the <see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/> flag. Real type suffixes are not supported.</term>
</item>
</list>
<para/>
NOTE: Any terminating NUL (U+0000) characters in <paramref name="s"/> are ignored by the parsing operation, regardless of
the value of the <paramref name="style"/> argument.
<para/>
A string with decimal digits only (which corresponds to the <see cref="F:J2N.Globalization.NumberStyle.None"/> flag) always parses successfully.
Most of the remaining <see cref="T:J2N.Globalization.NumberStyle"/> members control elements that may be but are not required to be present in
this input string. The following table indicates how individual <see cref="T:J2N.Globalization.NumberStyle"/> members affect the elements that may
be present in <paramref name="s"/>.
<list type="table">
<listheader>
<term>Non-composite NumberStyle values</term>
<term>Elements permitted in <paramref name="s"/> in addition to digits</term>
</listheader>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.None"/></term>
<term>Decimal digits only.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowDecimalPoint"/></term>
<term>The decimal point (.) and <i>fractional-digits</i> elements. However, <i>fractional-digits</i> must consist
of only one or more 0 digits or the method returns <c>false</c>.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowExponent"/></term>
<term>The <paramref name="s"/> parameter can also use exponential notation. If <paramref name="s"/> represents a
number in exponential notation, it must represent an integer within the range of the <see cref="T:System.Int16"/> data type
without a non-zero, fractional component.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowLeadingWhite"/></term>
<term>The <i>ws</i> element at the beginning of <paramref name="s"/>.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowTrailingWhite"/></term>
<term>The <i>ws</i> element at the end of <paramref name="s"/>.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowLeadingSign"/></term>
<term>A sign can appear before <i>digits</i>.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowTrailingSign"/></term>
<term>A sign can appear after <i>digits</i>.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowParentheses"/></term>
<term>The <i>sign</i> element in the form of parentheses enclosing the numeric value.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowThousands"/></term>
<term>The thousands separator (,) element.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowCurrencySymbol"/></term>
<term>The <i>$</i> element.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/></term>
<term>The literal <i>type</i> suffix used in the literal identifier syntax of C# (suffixed with one of
'D', 'd', 'F', 'f', 'M', 'm', 'L', 'l', 'U', 'u', 'UL', 'ul', 'LU', or 'lu').</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.Currency"/></term>
<term>All elements. The <paramref name="s"/> parameter cannot represent a hexadecimal
number or a number in exponential notation.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.Float"/></term>
<term>The <i>ws</i> element at the beginning or end of <paramref name="s"/>, sign at
the beginning of <paramref name="s"/>, and the decimal point (.) symbol. The <paramref name="s"/>
parameter can also use exponential notation.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.Number"/></term>
<term>The <i>ws</i>, <i>sign</i>, thousands separator (,), and decimal point (.) elements.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.Any"/></term>
<term>All styles, except <paramref name="s"/> cannot represent a hexadecimal number.</term>
</item>
</list>
<para/>
The <see cref="T:J2N.Globalization.NumberStyle"/> enum can be converted to the .NET <see cref="T:System.Globalization.NumberStyles"/> enum by using the
<see cref="M:J2N.Globalization.NumberStyleExtensions.ToNumberStyles(J2N.Globalization.NumberStyle)"/> extension method.
Similarly, <see cref="T:System.Globalization.NumberStyles"/> enum can be converted to the J2N <see cref="T:J2N.Globalization.NumberStyle"/> enum by using
the <see cref="M:J2N.Globalization.NumberStyleExtensions.ToNumberStyle(System.Globalization.NumberStyles)"/> extension method.
<para/>
If the <see cref="F:J2N.Globalization.NumberStyle.AllowHexSpecifier"/> flag is used, <paramref name="s"/> must be a hexadecimal value with or without a <c>0x</c> prefix.
For example, "F3" and "0xF3" both parse successfully. The only other flags that can be present in <paramref name="style"/> are
<see cref="F:J2N.Globalization.NumberStyle.AllowLeadingWhite"/>, <see cref="F:J2N.Globalization.NumberStyle.AllowTrailingWhite"/> and <see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/>.
(The <see cref="T:J2N.Globalization.NumberStyle"/> enumeration has a composite number style, <see cref="F:J2N.Globalization.NumberStyle.HexNumber"/>, that includes both white space
flags.)
The <see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/> only allows 'L', 'l', 'U', 'u', 'UL', 'ul', 'LU', or 'lu' for hexadecimal numbers.
<para/>
The <paramref name="provider"/> parameter is an <see cref="T:System.IFormatProvider"/> implementation, such as a <see cref="T:System.Globalization.CultureInfo"/> object,
a <see cref="T:System.Globalization.NumberFormatInfo"/> object or a <see cref="T:J2N.Text.StringFormatter"/> object, whose <see cref="M:System.IFormatProvider.GetFormat(System.Type)"/>
method returns a <see cref="T:System.Globalization.NumberFormatInfo"/> object. The <see cref="T:System.Globalization.NumberFormatInfo"/> object provides culture-specific information about
the format of <paramref name="s"/>. If <paramref name="provider"/> is <c>null</c>, the <see cref="T:System.Globalization.NumberFormatInfo"/> object for the current
culture is used.
</remarks>
<seealso cref="M:J2N.Numerics.Int16.Parse(System.ReadOnlySpan{System.Char},J2N.Globalization.NumberStyle,System.IFormatProvider)"/>
<seealso cref="M:J2N.Numerics.Int16.TryParse(System.ReadOnlySpan{System.Char},System.Int16@)"/>
<seealso cref="M:J2N.Numerics.Number.ToString"/>
<seealso cref="T:J2N.Globalization.NumberStyle"/>
</member>
<member name="M:J2N.Numerics.Int16.ToString">
<summary>
Converts the value of the current <see cref="T:J2N.Numerics.Int16"/> object to its equivalent string representation.
</summary>
<returns>The string representation of the value of this object, which consists of a sequence of digits
that range from 0 to 9 with no leading zeroes.</returns>
<remarks>
The <see cref="M:J2N.Numerics.Int16.ToString"/> method formats the current instance in the default ("J", or Java)
format of the current culture. If you want to specify a different format, precision, or culture, use the
other overloads of the <see cref="M:J2N.Numerics.Int16.ToString(System.String,System.IFormatProvider)"/> method, as follows:
<list type="table">
<listheader>
<term>To use format</term>
<term>For culture</term>
<term>Use the overload</term>
</listheader>
<item>
<term>Default ("J") format</term>
<term>A specific culture</term>
<term><see cref="M:J2N.Numerics.Int16.ToString(System.Int16,System.IFormatProvider)"/> or <see cref="M:J2N.Numerics.Int16.ToString(System.IFormatProvider)"/></term>
</item>
<item>
<term>A specific format or precision</term>
<term>Default (current) culture</term>
<term><see cref="M:J2N.Numerics.Int16.ToString(System.Int16,System.String)"/> or <see cref="M:J2N.Numerics.Int16.ToString(System.String)"/></term>
</item>
<item>
<term>A specific format or precision</term>
<term>A specific culture</term>
<term><see cref="M:J2N.Numerics.Int16.ToString(System.Int16,System.String,System.IFormatProvider)"/> or <see cref="M:J2N.Numerics.Int16.ToString(System.String,System.IFormatProvider)"/></term>
</item>
</list>
<para/>
.NET provides extensive formatting support, which is described in greater detail in the following formatting topics:
<list type="bullet">
<item><description>For more information about numeric format specifiers, see
<a href="https://docs.microsoft.com/en-us/dotnet/standard/base-types/standard-numeric-format-strings">Standard Numeric Format Strings</a>
and <a href="https://docs.microsoft.com/en-us/dotnet/standard/base-types/custom-numeric-format-strings">Custom Numeric Format Strings</a>.
</description></item>
<item><description>For more information about formatting, see
<a href="https://docs.microsoft.com/en-us/dotnet/standard/base-types/formatting-types">Formatting Types</a>.</description></item>
</list>
</remarks>
<seealso cref="M:J2N.Numerics.Int16.Parse(System.String,System.IFormatProvider)"/>
</member>
<member name="M:J2N.Numerics.Int16.ToString(System.String)">
<summary>
Converts the value of the current <see cref="T:J2N.Numerics.Int16"/> object to its equivalent string representation
using the specified format.
</summary>
<param name="format">A numeric format string.</param>
<returns>The string representation of the current <see cref="T:J2N.Numerics.Int16"/> object, formatted as specified by
the <paramref name="format"/> parameter.</returns>
<exception cref="T:System.FormatException">
<paramref name="format"/> includes an unsupported specifier. Supported format specifiers are listed in the Remarks section.
</exception>
<remarks>
The <see cref="M:J2N.Numerics.Int16.ToString(System.String)"/> method formats the current instance in
a specified format by using the conventions of the current culture. If you want to specify a different format or culture,
use the other overloads of the <see cref="M:J2N.Numerics.Int16.ToString(System.String,System.IFormatProvider)"/> method, as follows:
<list type="table">
<listheader>
<term>To use format</term>
<term>For culture</term>
<term>Use the overload</term>
</listheader>
<item>
<term>Default ("J") format</term>
<term>Default (current) culture</term>
<term><see cref="M:J2N.Numerics.Int16.ToString(System.Int16)"/> or <see cref="M:J2N.Numerics.Int16.ToString"/></term>
</item>
<item>
<term>Default ("J") format</term>
<term>A specific culture</term>
<term><see cref="M:J2N.Numerics.Int16.ToString(System.Int16,System.IFormatProvider)"/> or <see cref="M:J2N.Numerics.Int16.ToString(System.IFormatProvider)"/></term>
</item>
<item>
<term>A specific format or precision</term>
<term>A specific culture</term>
<term><see cref="M:J2N.Numerics.Int16.ToString(System.Int16,System.String,System.IFormatProvider)"/> or <see cref="M:J2N.Numerics.Int16.ToString(System.String,System.IFormatProvider)"/></term>
</item>
</list>
<para/>
The format parameter can be either a standard or a custom numeric format string. All standard numeric format strings other
than "R" (or "r") are supported, as are all custom numeric format characters. If format is <c>null</c> or an empty string (""),
the return value is formatted with the Java numeric format specifier ("J").
<para/>
The return value of this function is formatted using the <see cref="T:System.Globalization.NumberFormatInfo"/> object for the thread current culture.
For information about the thread current culture, see <see cref="P:System.Threading.Thread.CurrentCulture"/>. To provide formatting information
for cultures other than the current culture, call the <see cref="M:J2N.Numerics.Int16.ToString(System.String,System.IFormatProvider)"/> method.
<para/>
.NET provides extensive formatting support, which is described in greater detail in the following formatting topics:
<list type="bullet">
<item><description>For more information about numeric format specifiers, see
<a href="https://docs.microsoft.com/en-us/dotnet/standard/base-types/standard-numeric-format-strings">Standard Numeric Format Strings</a>
and <a href="https://docs.microsoft.com/en-us/dotnet/standard/base-types/custom-numeric-format-strings">Custom Numeric Format Strings</a>.
</description></item>
<item><description>For more information about formatting, see
<a href="https://docs.microsoft.com/en-us/dotnet/standard/base-types/formatting-types">Formatting Types</a>.</description></item>
</list>
</remarks>
<seealso cref="M:J2N.Numerics.Int16.Parse(System.String,System.IFormatProvider)"/>
</member>
<member name="M:J2N.Numerics.Int16.ToString(System.IFormatProvider)">
<summary>
Converts the numeric value of the current <see cref="T:J2N.Numerics.Int16"/> object to its equivalent string representation using the
specified culture-specific formatting information.
</summary>
<param name="provider">An object that supplies culture-specific formatting information.</param>
<returns>The string representation of the value of this object in the format specified by the <paramref name="provider"/> parameter.</returns>
<remarks>
The <see cref="M:J2N.Numerics.Int16.ToString(System.IFormatProvider)"/> method formats the current instance in
the default ("J") format of a specified culture. If you want to specify a different format or culture, use the
other overloads of the <see cref="M:J2N.Numerics.Int16.ToString(System.String,System.IFormatProvider)"/> method, as follows:
<list type="table">
<listheader>
<term>To use format</term>
<term>For culture</term>
<term>Use the overload</term>
</listheader>
<item>
<term>Default ("J") format</term>
<term>Default (current) culture</term>
<term><see cref="M:J2N.Numerics.Int16.ToString(System.Int16)"/> or <see cref="M:J2N.Numerics.Int16.ToString"/></term>
</item>
<item>
<term>A specific format or precision</term>
<term>Default (current) culture</term>
<term><see cref="M:J2N.Numerics.Int16.ToString(System.Int16,System.String)"/> or <see cref="M:J2N.Numerics.Int16.ToString(System.String)"/></term>
</item>
<item>
<term>A specific format or precision</term>
<term>A specific culture</term>
<term><see cref="M:J2N.Numerics.Int16.ToString(System.Int16,System.String,System.IFormatProvider)"/> or <see cref="M:J2N.Numerics.Int16.ToString(System.String,System.IFormatProvider)"/></term>
</item>
</list>
<para/>
The return value is formatted with the Java numeric format specifier ("J").
<para/>
The <paramref name="provider"/> parameter is an object that implements the <see cref="T:System.IFormatProvider"/> interface. Its <see cref="M:System.IFormatProvider.GetFormat(System.Type)"/>
method returns a <see cref="T:System.Globalization.NumberFormatInfo"/> object that provides culture-specific information about the format of the string that is
returned by this method. The object that implements <see cref="T:System.IFormatProvider"/> can be any of the following:
<list type="bullet">
<item><description>A <see cref="T:System.Globalization.CultureInfo"/> object that represents the culture whose formatting rules are to be used.</description></item>
<item><description>A <see cref="T:System.Globalization.NumberFormatInfo"/> object that contains specific numeric formatting information for this value.</description></item>
<item><description>A custom object that implements <see cref="T:System.IFormatProvider"/>.</description></item>
</list>
<para/>
If provider is <c>null</c> or a <see cref="T:System.Globalization.NumberFormatInfo"/> object cannot be obtained from provider, the return value is formatted
using the <see cref="T:System.Globalization.NumberFormatInfo"/> object for the thread current culture. For information about the thread current culture, see
<see cref="P:System.Threading.Thread.CurrentCulture"/>.
<para/>
.NET provides extensive formatting support, which is described in greater detail in the following formatting topics:
<list type="bullet">
<item><description>For more information about numeric format specifiers, see
<a href="https://docs.microsoft.com/en-us/dotnet/standard/base-types/standard-numeric-format-strings">Standard Numeric Format Strings</a>
and <a href="https://docs.microsoft.com/en-us/dotnet/standard/base-types/custom-numeric-format-strings">Custom Numeric Format Strings</a>.
</description></item>
<item><description>For more information about formatting, see
<a href="https://docs.microsoft.com/en-us/dotnet/standard/base-types/formatting-types">Formatting Types</a>.</description></item>
</list>
</remarks>
<seealso cref="M:J2N.Numerics.Int16.Parse(System.String,System.IFormatProvider)"/>
</member>
<member name="M:J2N.Numerics.Int16.ToString(System.String,System.IFormatProvider)">
<summary>
Converts the value of the current <see cref="T:J2N.Numerics.Int16"/> object to its equivalent string representation using the specified format
and culture-specific formatting information.
</summary>
<param name="format">A standard or custom numeric format string.</param>
<param name="provider">An object that supplies culture-specific formatting information.</param>
<returns>The string representation of the current <see cref="T:J2N.Numerics.Int16"/> object, formatted as specified by the <paramref name="format"/>
and <paramref name="provider"/> parameters.</returns>
<exception cref="T:System.FormatException"><paramref name="format"/> includes an unsupported specifier. Supported format specifiers are listed
in the Remarks section.</exception>
<remarks>
The <see cref="M:J2N.Numerics.Int16.ToString(System.String,System.IFormatProvider)"/> method formats the current instance in
a specified format of a specified culture. If you want to specify a different format or culture, use the
other overloads of the <see cref="M:J2N.Numerics.Int16.ToString(System.String,System.IFormatProvider)"/> method, as follows:
<list type="table">
<listheader>
<term>To use format</term>
<term>For culture</term>
<term>Use the overload</term>
</listheader>
<item>
<term>Default ("J") format</term>
<term>Default (current) culture</term>
<term><see cref="M:J2N.Numerics.Int16.ToString(System.Int16)"/> or <see cref="M:J2N.Numerics.Int16.ToString"/></term>
</item>
<item>
<term>Default ("J") format</term>
<term>A specific culture</term>
<term><see cref="M:J2N.Numerics.Int16.ToString(System.Int16,System.IFormatProvider)"/> or <see cref="M:J2N.Numerics.Int16.ToString(System.IFormatProvider)"/></term>
</item>
<item>
<term>A specific format or precision</term>
<term>Default (current) culture</term>
<term><see cref="M:J2N.Numerics.Int16.ToString(System.Int16,System.String)"/> or <see cref="M:J2N.Numerics.Int16.ToString(System.String)"/></term>
</item>
</list>
<para/>
The <see cref="M:J2N.Numerics.Int16.ToString(System.String,System.IFormatProvider)"/> method formats an <see cref="T:J2N.Numerics.Int16"/> value in a specified format
of a specified culture. To format a number by using the default ("J") format of the current culture, call the
<see cref="M:J2N.Numerics.Int16.ToString"/> method. To format a number by using a specified format of the current culture, call the
<see cref="M:J2N.Numerics.Int16.ToString(System.String)"/> method.
<para/>
The <paramref name="format"/> parameter can be either a standard or a custom numeric format string. All standard
numeric format strings other than "R" (or "r") are supported, as are all custom numeric format characters. If
<paramref name="format"/> is <c>null</c> or an empty string (""), the return value of this method is formatted
with the Java numeric format specifier ("J").
<para/>
The <paramref name="provider"/> parameter is an object that implements the <see cref="T:System.IFormatProvider"/> interface. Its <see cref="M:System.IFormatProvider.GetFormat(System.Type)"/>
method returns a <see cref="T:System.Globalization.NumberFormatInfo"/> object that provides culture-specific information about the format of the string that is
returned by this method. The object that implements <see cref="T:System.IFormatProvider"/> can be any of the following:
<list type="bullet">
<item><description>A <see cref="T:System.Globalization.CultureInfo"/> object that represents the culture whose formatting rules are to be used.</description></item>
<item><description>A <see cref="T:System.Globalization.NumberFormatInfo"/> object that contains specific numeric formatting information for this value.</description></item>
<item><description>A custom object that implements <see cref="T:System.IFormatProvider"/>.</description></item>
</list>
<para/>
If provider is <c>null</c> or a <see cref="T:System.Globalization.NumberFormatInfo"/> object cannot be obtained from provider, the return value is formatted
using the <see cref="T:System.Globalization.NumberFormatInfo"/> object for the thread current culture. For information about the thread current culture, see
<see cref="P:System.Threading.Thread.CurrentCulture"/>.
<para/>
.NET provides extensive formatting support, which is described in greater detail in the following formatting topics:
<list type="bullet">
<item><description>For more information about numeric format specifiers, see
<a href="https://docs.microsoft.com/en-us/dotnet/standard/base-types/standard-numeric-format-strings">Standard Numeric Format Strings</a>
and <a href="https://docs.microsoft.com/en-us/dotnet/standard/base-types/custom-numeric-format-strings">Custom Numeric Format Strings</a>.
</description></item>
<item><description>For more information about formatting, see
<a href="https://docs.microsoft.com/en-us/dotnet/standard/base-types/formatting-types">Formatting Types</a>.</description></item>
</list>
</remarks>
<seealso cref="M:J2N.Numerics.Int16.Parse(System.String,System.IFormatProvider)"/>
</member>
<member name="M:J2N.Numerics.Int16.ToString(System.Int16)">
<summary>
Converts the specified <paramref name="value"/> to its equivalent string representation.
</summary>
<param name="value">The <see cref="T:System.Int16"/> to convert.</param>
<returns>The string representation of the <paramref name="value"/> parameter, which consists of a sequence of digits
that range from 0 to 9 with no leading zeroes.</returns>
<remarks>
The <see cref="M:J2N.Numerics.Int16.ToString"/> method formats the current instance in the default ("J", or Java)
format of the current culture. If you want to specify a different format, precision, or culture, use the
other overloads of the <see cref="M:J2N.Numerics.Int16.ToString(System.Int16,System.String,System.IFormatProvider)"/> method, as follows:
<list type="table">
<listheader>
<term>To use format</term>
<term>For culture</term>
<term>Use the overload</term>
</listheader>
<item>
<term>Default ("J") format</term>
<term>A specific culture</term>
<term><see cref="M:J2N.Numerics.Int16.ToString(System.Int16,System.IFormatProvider)"/> or <see cref="M:J2N.Numerics.Int16.ToString(System.IFormatProvider)"/></term>
</item>
<item>
<term>A specific format or precision</term>
<term>Default (current) culture</term>
<term><see cref="M:J2N.Numerics.Int16.ToString(System.Int16,System.String)"/> or <see cref="M:J2N.Numerics.Int16.ToString(System.String)"/></term>
</item>
<item>
<term>A specific format or precision</term>
<term>A specific culture</term>
<term><see cref="M:J2N.Numerics.Int16.ToString(System.Int16,System.String,System.IFormatProvider)"/> or <see cref="M:J2N.Numerics.Int16.ToString(System.String,System.IFormatProvider)"/></term>
</item>
</list>
<para/>
.NET provides extensive formatting support, which is described in greater detail in the following formatting topics:
<list type="bullet">
<item><description>For more information about numeric format specifiers, see
<a href="https://docs.microsoft.com/en-us/dotnet/standard/base-types/standard-numeric-format-strings">Standard Numeric Format Strings</a>
and <a href="https://docs.microsoft.com/en-us/dotnet/standard/base-types/custom-numeric-format-strings">Custom Numeric Format Strings</a>.
</description></item>
<item><description>For more information about formatting, see
<a href="https://docs.microsoft.com/en-us/dotnet/standard/base-types/formatting-types">Formatting Types</a>.</description></item>
</list>
</remarks>
<seealso cref="M:J2N.Numerics.Int16.Parse(System.String,System.IFormatProvider)"/>
</member>
<member name="M:J2N.Numerics.Int16.ToString(System.Int16,System.String)">
<summary>
Converts the specified <paramref name="value"/> to its equivalent string representation
using the specified format.
</summary>
<param name="value">The <see cref="T:System.Int16"/> to convert.</param>
<param name="format">A numeric format string.</param>
<returns>The string representation of the <paramref name="value"/> parameter, formatted as specified by
the <paramref name="format"/> parameter.</returns>
<exception cref="T:System.FormatException">
<paramref name="format"/> includes an unsupported specifier. Supported format specifiers are listed in the Remarks section.
</exception>
<remarks>
The <see cref="M:J2N.Numerics.Int16.ToString(System.Int16,System.String)"/> method formats the current instance in
a specified format by using the conventions of the current culture. If you want to specify a different format or culture,
use the other overloads of the <see cref="M:J2N.Numerics.Int16.ToString(System.Int16,System.String,System.IFormatProvider)"/> method, as follows:
<list type="table">
<listheader>
<term>To use format</term>
<term>For culture</term>
<term>Use the overload</term>
</listheader>
<item>
<term>Default ("J") format</term>
<term>Default (current) culture</term>
<term><see cref="M:J2N.Numerics.Int16.ToString(System.Int16)"/> or <see cref="M:J2N.Numerics.Int16.ToString"/></term>
</item>
<item>
<term>Default ("J") format</term>
<term>A specific culture</term>
<term><see cref="M:J2N.Numerics.Int16.ToString(System.Int16,System.IFormatProvider)"/> or <see cref="M:J2N.Numerics.Int16.ToString(System.IFormatProvider)"/></term>
</item>
<item>
<term>A specific format or precision</term>
<term>A specific culture</term>
<term><see cref="M:J2N.Numerics.Int16.ToString(System.Int16,System.String,System.IFormatProvider)"/> or <see cref="M:J2N.Numerics.Int16.ToString(System.String,System.IFormatProvider)"/></term>
</item>
</list>
<para/>
The format parameter can be either a standard or a custom numeric format string. All standard numeric format strings other
than "R" (or "r") are supported, as are all custom numeric format characters. If format is <c>null</c> or an empty string (""),
the return value is formatted with the Java numeric format specifier ("J").
<para/>
The return value of this function is formatted using the <see cref="T:System.Globalization.NumberFormatInfo"/> object for the thread current culture.
For information about the thread current culture, see <see cref="P:System.Threading.Thread.CurrentCulture"/>. To provide formatting information
for cultures other than the current culture, call the <see cref="M:J2N.Numerics.Int16.ToString(System.Int16,System.String,System.IFormatProvider)"/> method.
<para/>
.NET provides extensive formatting support, which is described in greater detail in the following formatting topics:
<list type="bullet">
<item><description>For more information about numeric format specifiers, see
<a href="https://docs.microsoft.com/en-us/dotnet/standard/base-types/standard-numeric-format-strings">Standard Numeric Format Strings</a>
and <a href="https://docs.microsoft.com/en-us/dotnet/standard/base-types/custom-numeric-format-strings">Custom Numeric Format Strings</a>.
</description></item>
<item><description>For more information about formatting, see
<a href="https://docs.microsoft.com/en-us/dotnet/standard/base-types/formatting-types">Formatting Types</a>.</description></item>
</list>
</remarks>
<seealso cref="M:J2N.Numerics.Int16.Parse(System.String,System.IFormatProvider)"/>
</member>
<member name="M:J2N.Numerics.Int16.ToString(System.Int16,System.IFormatProvider)">
<summary>
Converts the specified <paramref name="value"/> to its equivalent string representation using the
specified culture-specific formatting information.
</summary>
<param name="value">The <see cref="T:System.Int16"/> to convert.</param>
<param name="provider">An object that supplies culture-specific formatting information.</param>
<returns>The string representation of the specified <paramref name="value"/> in the format specified
by the <paramref name="provider"/> parameter.</returns>
<remarks>
The <see cref="M:J2N.Numerics.Int16.ToString(System.Int16,System.IFormatProvider)"/> method formats the current instance in
the default ("J") format of a specified culture. If you want to specify a different format or culture, use the
other overloads of the <see cref="M:J2N.Numerics.Int16.ToString(System.Int16,System.String,System.IFormatProvider)"/> method, as follows:
<list type="table">
<listheader>
<term>To use format</term>
<term>For culture</term>
<term>Use the overload</term>
</listheader>
<item>
<term>Default ("J") format</term>
<term>Default (current) culture</term>
<term><see cref="M:J2N.Numerics.Int16.ToString(System.Int16)"/> or <see cref="M:J2N.Numerics.Int16.ToString"/></term>
</item>
<item>
<term>A specific format or precision</term>
<term>Default (current) culture</term>
<term><see cref="M:J2N.Numerics.Int16.ToString(System.Int16,System.String)"/> or <see cref="M:J2N.Numerics.Int16.ToString(System.String)"/></term>
</item>
<item>
<term>A specific format or precision</term>
<term>A specific culture</term>
<term><see cref="M:J2N.Numerics.Int16.ToString(System.Int16,System.String,System.IFormatProvider)"/> or <see cref="M:J2N.Numerics.Int16.ToString(System.String,System.IFormatProvider)"/></term>
</item>
</list>
<para/>
The return value is formatted with the Java numeric format specifier ("J").
<para/>
The <paramref name="provider"/> parameter is an object that implements the <see cref="T:System.IFormatProvider"/> interface. Its <see cref="M:System.IFormatProvider.GetFormat(System.Type)"/>
method returns a <see cref="T:System.Globalization.NumberFormatInfo"/> object that provides culture-specific information about the format of the string that is
returned by this method. The object that implements <see cref="T:System.IFormatProvider"/> can be any of the following:
<list type="bullet">
<item><description>A <see cref="T:System.Globalization.CultureInfo"/> object that represents the culture whose formatting rules are to be used.</description></item>
<item><description>A <see cref="T:System.Globalization.NumberFormatInfo"/> object that contains specific numeric formatting information for this value.</description></item>
<item><description>A custom object that implements <see cref="T:System.IFormatProvider"/>.</description></item>
</list>
<para/>
If provider is <c>null</c> or a <see cref="T:System.Globalization.NumberFormatInfo"/> object cannot be obtained from provider, the return value is formatted
using the <see cref="T:System.Globalization.NumberFormatInfo"/> object for the thread current culture. For information about the thread current culture, see
<see cref="P:System.Threading.Thread.CurrentCulture"/>.
<para/>
.NET provides extensive formatting support, which is described in greater detail in the following formatting topics:
<list type="bullet">
<item><description>For more information about numeric format specifiers, see
<a href="https://docs.microsoft.com/en-us/dotnet/standard/base-types/standard-numeric-format-strings">Standard Numeric Format Strings</a>
and <a href="https://docs.microsoft.com/en-us/dotnet/standard/base-types/custom-numeric-format-strings">Custom Numeric Format Strings</a>.
</description></item>
<item><description>For more information about formatting, see
<a href="https://docs.microsoft.com/en-us/dotnet/standard/base-types/formatting-types">Formatting Types</a>.</description></item>
</list>
</remarks>
<seealso cref="M:J2N.Numerics.Int16.Parse(System.String,System.IFormatProvider)"/>
</member>
<member name="M:J2N.Numerics.Int16.ToString(System.Int16,System.String,System.IFormatProvider)">
<summary>
Converts the specified <paramref name="value"/> to its equivalent string representation using the specified format
and culture-specific formatting information.
</summary>
<param name="value">The <see cref="T:System.Int16"/> to convert.</param>
<param name="format">A standard or custom numeric format string.</param>
<param name="provider">An object that supplies culture-specific formatting information.</param>
<returns>The string representation of the specified <paramref name="value"/> parameter, formatted as specified by the <paramref name="format"/>
and <paramref name="provider"/> parameters.</returns>
<exception cref="T:System.FormatException"><paramref name="format"/> includes an unsupported specifier. Supported format specifiers are listed
in the Remarks section.</exception>
<remarks>
The <see cref="M:J2N.Numerics.Int16.ToString(System.Int16,System.String,System.IFormatProvider)"/> method formats the current instance in
a specified format of a specified culture. If you want to specify a different format or culture, use the
other overloads of the <see cref="M:J2N.Numerics.Int16.ToString(System.Int16,System.String,System.IFormatProvider)"/> method, as follows:
<list type="table">
<listheader>
<term>To use format</term>
<term>For culture</term>
<term>Use the overload</term>
</listheader>
<item>
<term>Default ("J") format</term>
<term>Default (current) culture</term>
<term><see cref="M:J2N.Numerics.Int16.ToString(System.Int16)"/> or <see cref="M:J2N.Numerics.Int16.ToString"/></term>
</item>
<item>
<term>Default ("J") format</term>
<term>A specific culture</term>
<term><see cref="M:J2N.Numerics.Int16.ToString(System.Int16,System.IFormatProvider)"/> or <see cref="M:J2N.Numerics.Int16.ToString(System.IFormatProvider)"/></term>
</item>
<item>
<term>A specific format or precision</term>
<term>Default (current) culture</term>
<term><see cref="M:J2N.Numerics.Int16.ToString(System.Int16,System.String)"/> or <see cref="M:J2N.Numerics.Int16.ToString(System.String)"/></term>
</item>
</list>
<para/>
The <see cref="M:J2N.Numerics.Int16.ToString(System.Int16,System.String,System.IFormatProvider)"/> method formats a <see cref="T:System.Int16"/> value in a specified format
of a specified culture. To format a number by using the default ("J") format of the current culture, call the
<see cref="M:J2N.Numerics.Int16.ToString(System.Int16)"/> method. To format a number by using a specified format of the current culture, call the
<see cref="M:J2N.Numerics.Int16.ToString(System.Int16,System.String)"/> method.
<para/>
The <paramref name="format"/> parameter can be either a standard or a custom numeric format string. All standard
numeric format strings other than "R" (or "r") are supported, as are all custom numeric format characters. If
<paramref name="format"/> is <c>null</c> or an empty string (""), the return value of this method is formatted
with the Java numeric format specifier ("J").
<para/>
The <paramref name="provider"/> parameter is an object that implements the <see cref="T:System.IFormatProvider"/> interface. Its <see cref="M:System.IFormatProvider.GetFormat(System.Type)"/>
method returns a <see cref="T:System.Globalization.NumberFormatInfo"/> object that provides culture-specific information about the format of the string that is
returned by this method. The object that implements <see cref="T:System.IFormatProvider"/> can be any of the following:
<list type="bullet">
<item><description>A <see cref="T:System.Globalization.CultureInfo"/> object that represents the culture whose formatting rules are to be used.</description></item>
<item><description>A <see cref="T:System.Globalization.NumberFormatInfo"/> object that contains specific numeric formatting information for this value.</description></item>
<item><description>A custom object that implements <see cref="T:System.IFormatProvider"/>.</description></item>
</list>
<para/>
If provider is <c>null</c> or a <see cref="T:System.Globalization.NumberFormatInfo"/> object cannot be obtained from provider, the return value is formatted
using the <see cref="T:System.Globalization.NumberFormatInfo"/> object for the thread current culture. For information about the thread current culture, see
<see cref="P:System.Threading.Thread.CurrentCulture"/>.
<para/>
.NET provides extensive formatting support, which is described in greater detail in the following formatting topics:
<list type="bullet">
<item><description>For more information about numeric format specifiers, see
<a href="https://docs.microsoft.com/en-us/dotnet/standard/base-types/standard-numeric-format-strings">Standard Numeric Format Strings</a>
and <a href="https://docs.microsoft.com/en-us/dotnet/standard/base-types/custom-numeric-format-strings">Custom Numeric Format Strings</a>.
</description></item>
<item><description>For more information about formatting, see
<a href="https://docs.microsoft.com/en-us/dotnet/standard/base-types/formatting-types">Formatting Types</a>.</description></item>
</list>
</remarks>
<seealso cref="M:J2N.Numerics.Int16.Parse(System.String,System.IFormatProvider)"/>
</member>
<member name="M:J2N.Numerics.Int16.TryFormat(System.Span{System.Char},System.Int32@,System.ReadOnlySpan{System.Char},System.IFormatProvider)">
<summary>
Tries to format the value of the current short number instance into the provided span of characters.
</summary>
<param name="destination">The span in which to write this instance's value formatted as a span of characters.</param>
<param name="charsWritten">When this method returns, contains the number of characters that were written in
<paramref name="destination"/>.</param>
<param name="format">A span containing the characters that represent a standard or custom format string that
defines the acceptable format for <paramref name="destination"/>.</param>
<param name="provider">An optional object that supplies culture-specific formatting information for
<paramref name="destination"/>.</param>
<returns><c>true</c> if the formatting was successful; otherwise, <c>false</c>.</returns>
</member>
<member name="M:J2N.Numerics.Int16.TryFormat(System.Int16,System.Span{System.Char},System.Int32@,System.ReadOnlySpan{System.Char},System.IFormatProvider)">
<summary>
Tries to format the value of the <paramref name="value"/> into the provided span of characters.
</summary>
<param name="value">The short number to format.</param>
<param name="destination">The span in which to write this instance's value formatted as a span of characters.</param>
<param name="charsWritten">When this method returns, contains the number of characters that were written in
<paramref name="destination"/>.</param>
<param name="format">A span containing the characters that represent a standard or custom format string that
defines the acceptable format for <paramref name="destination"/>.</param>
<param name="provider">An optional object that supplies culture-specific formatting information for
<paramref name="destination"/>.</param>
<returns><c>true</c> if the formatting was successful; otherwise, <c>false</c>.</returns>
</member>
<member name="M:J2N.Numerics.Int16.ReverseBytes(System.Int16)">
<summary>
Returns the value obtained by reversing the order of the bytes in the
two's complement representation of the specified <paramref name="value"/>.
</summary>
<param name="value">The <see cref="T:System.Int16"/> value for which to reverse the byte order.</param>
<returns>The value obtained by reversing the bytes in the specified
<paramref name="value"/>.</returns>
</member>
<member name="M:J2N.Numerics.Int16.GetInstance(System.String,System.IFormatProvider)">
<summary>
Converts the string representation of a number in a specified culture-specific format to its
16-bit signed integer equivalent.
</summary>
<param name="s">A string containing a number to convert.</param>
<param name="provider">An <see cref="T:System.IFormatProvider"/> that supplies culture-specific formatting information about <paramref name="s"/>.</param>
<returns>An immutable <see cref="T:J2N.Numerics.Int16"/> instance equivalent to the number specified in <paramref name="s"/>.</returns>
<exception cref="T:System.ArgumentNullException"><paramref name="s"/> is <c>null</c>.</exception>
<exception cref="T:System.FormatException"><paramref name="s"/> is not in a valid <see cref="F:J2N.Globalization.NumberStyle.Integer"/> format.</exception>
<exception cref="T:System.OverflowException">
<paramref name="s"/> represents a number less than <see cref="F:System.Int16.MinValue"/> or greater than <see cref="F:System.Int16.MaxValue"/>.
</exception>
<remarks>
The <paramref name="s"/> parameter contains a number of the form:
<para/>
[ws][sign]digits[ws]
<para/>
Elements in square brackets ([ and ]) are optional. The following table describes each element.
<para/>
<list type="table">
<listheader>
<term>Element</term>
<term>Description</term>
</listheader>
<item>
<term><i>ws</i></term>
<term>A series of white-space characters.</term>
</item>
<item>
<term><i>$</i></term>
<term>A culture-specific currency symbol. Its position in the string is defined by the <see cref="P:System.Globalization.NumberFormatInfo.CurrencyNegativePattern"/>
and <see cref="P:System.Globalization.NumberFormatInfo.CurrencyPositivePattern"/> properties of the <see cref="T:System.Globalization.NumberFormatInfo"/> object returned by the
<see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> method of the <paramref name="provider"/> parameter. The current culture's currency symbol can
appear in <paramref name="s"/> if style includes the <see cref="F:J2N.Globalization.NumberStyle.AllowCurrencySymbol"/> flag.</term>
</item>
<item>
<term><i>sign</i></term>
<term>A negative sign symbol or a positive sign symbol as defined by the <see cref="T:System.Globalization.NumberFormatInfo"/> object returned from the
<see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> <paramref name="provider"/>.</term>
</item>
<item>
<term><i>digits</i></term>
<term>A series of digits ranging from 0 to 9.</term>
</item>
</list>
<para/>
The <paramref name="s"/> parameter is interpreted using the <see cref="F:J2N.Globalization.NumberStyle.Integer"/> style. In addition to decimal digits, only
leading and trailing spaces together with a leading sign are allowed in <paramref name="s"/>. To explicitly define the style elements
together with the culture-specific formatting information that can be present in <paramref name="s"/>, use the
<see cref="M:J2N.Numerics.Int16.GetInstance(System.String,J2N.Globalization.NumberStyle,System.IFormatProvider)"/> method.
<para/>
The <paramref name="provider"/> parameter is an <see cref="T:System.IFormatProvider"/> implementation, such as a <see cref="T:System.Globalization.CultureInfo"/> object,
a <see cref="T:System.Globalization.NumberFormatInfo"/> object or a <see cref="T:J2N.Text.StringFormatter"/> object, whose <see cref="M:System.IFormatProvider.GetFormat(System.Type)"/>
method returns a <see cref="T:System.Globalization.NumberFormatInfo"/> object. The <see cref="T:System.Globalization.NumberFormatInfo"/> object provides culture-specific information about
the format of <paramref name="s"/>. When the <see cref="M:J2N.Numerics.Int16.GetInstance(System.String,System.IFormatProvider)"/> method is invoked, it calls the provider parameter's
<see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> method and passes it a <see cref="T:System.Type"/> object that represents the <see cref="T:System.Globalization.NumberFormatInfo"/> type.
The <see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> method then returns the <see cref="T:System.Globalization.NumberFormatInfo"/> object that provides information about the
format of the <paramref name="s"/> parameter. There are three ways to use the <paramref name="provider"/> parameter to supply custom formatting
information to the parse operation:
<list type="bullet">
<item><description>You can pass a <see cref="T:System.Globalization.CultureInfo"/> object that represents the culture that supplies formatting information. Its
<see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> method returns the <see cref="T:System.Globalization.NumberFormatInfo"/> object that provides numeric formatting
information for that culture.</description></item>
<item><description>You can pass the actual <see cref="T:System.Globalization.NumberFormatInfo"/> object that provides numeric formatting information. (Its
implementation of <see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> just returns itself.)</description></item>
<item><description>You can pass a custom object that implements <see cref="T:System.IFormatProvider"/>. Its <see cref="M:System.IFormatProvider.GetFormat(System.Type)"/>
method instantiates and returns the <see cref="T:System.Globalization.NumberFormatInfo"/> object that provides formatting information.</description></item>
</list>
If <paramref name="provider"/> is <c>null</c> or a <see cref="T:System.Globalization.NumberFormatInfo"/> object cannot be obtained, the <see cref="T:System.Globalization.NumberFormatInfo"/>
object for the current culture is used.
</remarks>
<seealso cref="M:J2N.Numerics.Int16.TryParse(System.String,J2N.Globalization.NumberStyle,System.IFormatProvider,System.Int16@)"/>
<seealso cref="M:J2N.Numerics.Int16.Parse(System.String,System.IFormatProvider)"/>
</member>
<member name="M:J2N.Numerics.Int16.GetInstance(System.String,J2N.Globalization.NumberStyle,System.IFormatProvider)">
<summary>
Converts the string representation of a number in a specified style and culture-specific format to its
16-bit signed <see cref="T:J2N.Numerics.Int16"/> equivalent.
</summary>
<param name="s">A string containing a number to convert.</param>
<param name="style">A bitwise combination of enumeration values that indicates the style elements that can be
present in <paramref name="s"/>. A typical value to specify is <see cref="F:J2N.Globalization.NumberStyle.Integer"/>.</param>
<param name="provider">An <see cref="T:System.IFormatProvider"/> that supplies culture-specific formatting information about <paramref name="s"/>.</param>
<returns>An immutable <see cref="T:J2N.Numerics.Int16"/> instance equivalent to the number specified in <paramref name="s"/>.</returns>
<exception cref="T:System.ArgumentNullException"><paramref name="s"/> is <c>null</c>.</exception>
<exception cref="T:System.ArgumentException">
<paramref name="style"/> is not a <see cref="T:J2N.Globalization.NumberStyle"/> value.
<para/>
-or-
<para/>
<paramref name="style"/> is not a combination of <see cref="F:J2N.Globalization.NumberStyle.AllowHexSpecifier"/> and <see cref="F:J2N.Globalization.NumberStyle.HexNumber"/> values.
</exception>
<exception cref="T:System.FormatException"><paramref name="s"/> is not in a format compliant with <paramref name="style"/>.</exception>
<exception cref="T:System.OverflowException">
<paramref name="s"/> represents a number less than <see cref="F:System.Int16.MinValue"/> or greater than <see cref="F:System.Int16.MaxValue"/>.
<para/>
-or-
<para/>
<paramref name="s"/> includes non-zero fractional digits.
</exception>
<remarks>
The <paramref name="style"/> parameter defines the style elements (such as white space or the positive sign) that are allowed in the
<paramref name="s"/> parameter for the parse operation to succeed. It must be a combination of bit flags from the <see cref="T:J2N.Globalization.NumberStyle"/>
enumeration. Depending on the value of <paramref name="style"/>, the <paramref name="s"/> parameter may include the following elements:
<para/>
[ws][$][sign][digits,]digits[.fractional-digits][e[sign]exponential-digits][ws]
<para/>
Or, if the <paramref name="style"/> parameter includes <see cref="F:J2N.Globalization.NumberStyle.AllowHexSpecifier"/>:
<para/>
[ws]hexdigits[ws]
<para/>
Elements framed in square brackets ([ and ]) are optional. The following table describes each element.
<para/>
<list type="table">
<listheader>
<term>Element</term>
<term>Description</term>
</listheader>
<item>
<term><i>ws</i></term>
<term>A series of white-space characters. White space can appear at the beginning of <paramref name="s"/> if style includes the
<see cref="F:J2N.Globalization.NumberStyle.AllowLeadingWhite"/> flag, and it can appear at the end of <paramref name="s"/> if style includes the
<see cref="F:J2N.Globalization.NumberStyle.AllowTrailingWhite"/> flag.</term>
</item>
<item>
<term><i>$</i></term>
<term>A culture-specific currency symbol. Its position in the string is defined by the <see cref="P:System.Globalization.NumberFormatInfo.CurrencyNegativePattern"/>
and <see cref="P:System.Globalization.NumberFormatInfo.CurrencyPositivePattern"/> properties of the <see cref="T:System.Globalization.NumberFormatInfo"/> object returned by the
<see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> method of the <paramref name="provider"/> parameter. The current culture's currency symbol can
appear in <paramref name="s"/> if style includes the <see cref="F:J2N.Globalization.NumberStyle.AllowCurrencySymbol"/> flag.</term>
</item>
<item>
<term><i>sign</i></term>
<term>A negative sign symbol (-) or a positive sign symbol (+). The sign can appear at the beginning of <paramref name="s"/> if
<paramref name="style"/> includes the <see cref="F:J2N.Globalization.NumberStyle.AllowLeadingSign"/> flag, and it can appear at the end of <paramref name="s"/>
if <paramref name="style"/> includes the <see cref="F:J2N.Globalization.NumberStyle.AllowTrailingSign"/> flag. Parentheses can be used in <paramref name="s"/>
to indicate a negative value if <paramref name="style"/> includes the <see cref="F:J2N.Globalization.NumberStyle.AllowParentheses"/> flag.</term>
</item>
<item>
<term><i>digits</i></term>
<term>A series of digits ranging from 0 to 9.</term>
</item>
<item>
<term><i>.</i></term>
<term>A culture-specific decimal point symbol. The decimal point symbol of the culture specified by <paramref name="provider"/>
can appear in <paramref name="s"/> if <paramref name="style"/> includes the <see cref="F:J2N.Globalization.NumberStyle.AllowDecimalPoint"/> flag.</term>
</item>
<item>
<term><i>fractional-digits</i>
</term>
<term>A series of digits ranging from 0 to 9 that specify the fractional part of the number. Fractional digits can appear in
<paramref name="s"/> if <paramref name="style"/> includes the <see cref="F:J2N.Globalization.NumberStyle.AllowDecimalPoint"/> flag.</term>
</item>
<item>
<term><i>e</i></term>
<term>The 'e' or 'E' character, which indicates that the value is represented in exponential notation. The <paramref name="s"/>
parameter can represent a number in exponential notation if <paramref name="style"/> includes the <see cref="F:J2N.Globalization.NumberStyle.AllowExponent"/> flag.</term>
</item>
<item>
<term><i>exponential-digits</i></term>
<term>A sequence of decimal digits from 0 through 9 that specify an exponent.</term>
</item>
<item>
<term><i>hexdigits</i></term>
<term>A sequence of hexadecimal digits from 0 through f, or 0 through F. Hexadecimal digits can appear in <paramref name="s"/>
if <paramref name="style"/> includes the <see cref="F:J2N.Globalization.NumberStyle.AllowHexSpecifier"/> flag.</term>
</item>
</list>
<para/>
NOTE: Any terminating NUL (U+0000) characters in <paramref name="s"/> are ignored by the parsing operation, regardless of
the value of the <paramref name="style"/> argument.
<para/>
A string with decimal digits only (which corresponds to the <see cref="F:J2N.Globalization.NumberStyle.None"/> flag) always parses successfully.
Most of the remaining <see cref="T:J2N.Globalization.NumberStyle"/> members control elements that may be but are not required to be present in
this input string. The following table indicates how individual <see cref="T:J2N.Globalization.NumberStyle"/> members affect the elements that may
be present in <paramref name="s"/>.
<list type="table">
<listheader>
<term>Non-composite NumberStyle values</term>
<term>Elements permitted in <paramref name="s"/> in addition to digits</term>
</listheader>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.None"/></term>
<term>Decimal digits only.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowDecimalPoint"/></term>
<term>The decimal point (.) and <i>fractional-digits</i> elements. However, <i>fractional-digits</i> must consist
of only one or more 0 digits or the method returns <c>false</c>.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowExponent"/></term>
<term>The <paramref name="s"/> parameter can also use exponential notation. If <paramref name="s"/> represents a
number in exponential notation, it must represent an integer within the range of the <see cref="T:System.Int16"/> data type
without a non-zero, fractional component.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowLeadingWhite"/></term>
<term>The <i>ws</i> element at the beginning of <paramref name="s"/>.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowTrailingWhite"/></term>
<term>The <i>ws</i> element at the end of <paramref name="s"/>.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowLeadingSign"/></term>
<term>A sign can appear before <i>digits</i>.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowTrailingSign"/></term>
<term>A sign can appear after <i>digits</i>.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowParentheses"/></term>
<term>The <i>sign</i> element in the form of parentheses enclosing the numeric value.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowThousands"/></term>
<term>The thousands separator (,) element.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowCurrencySymbol"/></term>
<term>The <i>$</i> element.</term>
</item>
</list>
<para/>
The <see cref="T:J2N.Globalization.NumberStyle"/> enum can be converted to the .NET <see cref="T:System.Globalization.NumberStyles"/> enum by using the
<see cref="M:J2N.Globalization.NumberStyleExtensions.ToNumberStyles(J2N.Globalization.NumberStyle)"/> extension method.
Similarly, <see cref="T:System.Globalization.NumberStyles"/> enum can be converted to the J2N <see cref="T:J2N.Globalization.NumberStyle"/> enum by using
the <see cref="M:J2N.Globalization.NumberStyleExtensions.ToNumberStyle(System.Globalization.NumberStyles)"/> extension method.
<para/>
If the <see cref="F:J2N.Globalization.NumberStyle.AllowHexSpecifier"/> flag is used, <paramref name="s"/> must be a hexadecimal value without a prefix.
For example, "F3" parses successfully, but "0xF3" does not. The only other flags that can be present in <paramref name="style"/> are
<see cref="F:J2N.Globalization.NumberStyle.AllowLeadingWhite"/> and <see cref="F:J2N.Globalization.NumberStyle.AllowTrailingWhite"/>. (The <see cref="T:J2N.Globalization.NumberStyle"/> enumeration
has a composite number style, <see cref="F:J2N.Globalization.NumberStyle.HexNumber"/>, that includes both white space flags.)
<para/>
The <paramref name="provider"/> parameter is an <see cref="T:System.IFormatProvider"/> implementation, such as a <see cref="T:System.Globalization.CultureInfo"/> object,
a <see cref="T:System.Globalization.NumberFormatInfo"/> object or a <see cref="T:J2N.Text.StringFormatter"/> object, whose <see cref="M:System.IFormatProvider.GetFormat(System.Type)"/>
method returns a <see cref="T:System.Globalization.NumberFormatInfo"/> object. The <see cref="T:System.Globalization.NumberFormatInfo"/> object provides culture-specific information about
the format of <paramref name="s"/>. When the <see cref="M:J2N.Numerics.Int16.GetInstance(System.String,System.IFormatProvider)"/> method is invoked, it calls the provider parameter's
<see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> method and passes it a <see cref="T:System.Type"/> object that represents the <see cref="T:System.Globalization.NumberFormatInfo"/> type.
The <see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> method then returns the <see cref="T:System.Globalization.NumberFormatInfo"/> object that provides information about the
format of the <paramref name="s"/> parameter. There are three ways to use the <paramref name="provider"/> parameter to supply custom formatting
information to the parse operation:
<list type="bullet">
<item><description>You can pass a <see cref="T:System.Globalization.CultureInfo"/> object that represents the culture that supplies formatting information. Its
<see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> method returns the <see cref="T:System.Globalization.NumberFormatInfo"/> object that provides numeric formatting
information for that culture.</description></item>
<item><description>You can pass the actual <see cref="T:System.Globalization.NumberFormatInfo"/> object that provides numeric formatting information. (Its
implementation of <see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> just returns itself.)</description></item>
<item><description>You can pass a custom object that implements <see cref="T:System.IFormatProvider"/>. Its <see cref="M:System.IFormatProvider.GetFormat(System.Type)"/>
method instantiates and returns the <see cref="T:System.Globalization.NumberFormatInfo"/> object that provides formatting information.</description></item>
</list>
If <paramref name="provider"/> is <c>null</c> or a <see cref="T:System.Globalization.NumberFormatInfo"/> object cannot be obtained, the <see cref="T:System.Globalization.NumberFormatInfo"/>
object for the current culture is used.
</remarks>
<seealso cref="M:J2N.Numerics.Int16.TryParse(System.String,J2N.Globalization.NumberStyle,System.IFormatProvider,System.Int16@)"/>
<seealso cref="M:J2N.Numerics.Int16.Parse(System.String,J2N.Globalization.NumberStyle,System.IFormatProvider)"/>
</member>
<member name="M:J2N.Numerics.Int16.GetInstance(System.String,System.Int32)">
<summary>
Parses the <see cref="T:System.String"/> argument as a signed <see cref="T:J2N.Numerics.Int16"/> instance in the specified <paramref name="radix"/>.
<para/>
Usage Note: This method is similar to the <see cref="M:System.Convert.ToInt16(System.String,System.Int32)"/> method. It differs in that
it allows the use of the ASCII character \u002d ('-') or \u002B ('+') in any <paramref name="radix"/>.
<para/>
Supports any BMP (Basic Multilingual Plane) or SMP (Supplementary Mulitlingual Plane) digit as defined by Unicode 10.0.
<para/>
This is the same operation as Short.valueOf(string) in the JDK when specifying a <paramref name="radix"/> of 10, or
Short.valueOf(string, int) for any valid <paramref name="radix"/>.
</summary>
<param name="s">The <see cref="T:System.String"/> containing the <see cref="T:System.Int16"/> representation to be parsed.</param>
<param name="radix">The radix (or base) to use when parsing <paramref name="s"/>. The value must be in the range
<see cref="F:J2N.Character.MinRadix"/> - <see cref="F:J2N.Character.MaxRadix"/> inclusive.</param>
<returns>An immutable <see cref="T:J2N.Numerics.Int16"/> instance that is equivalent to the number in <paramref name="s"/>, or 0 (zero) if
<paramref name="s"/> is <c>null</c>.</returns>
<remarks>
If <paramref name="radix"/> is 16, you can prefix the number specified by the <paramref name="s"/> parameter with "0x" or "0X".
<para/>
To specify a negative value for base (radix) 10 numeric representations, use the ASCII character \u002d ('-').
<para/>
For any other <paramref name="radix"/>, negative values may either be specified with ASCII character \u002d ('-')
(as in Java) or by specifying the two's complement representation (as in .NET), but not both.
In the latter case, the highest-order binary bit of a long integer (bit 15) is interpreted as the sign bit.
As a result, it is possible to write code in which a non-base 10 number that is out of the range of the <see cref="T:System.Int16"/>
data type is converted to a <see cref="T:System.Int16"/> value without the method throwing an exception.
</remarks>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="radix"/> is less than <see cref="F:J2N.Character.MinRadix"/> or greater than <see cref="F:J2N.Character.MaxRadix"/>.
</exception>
<exception cref="T:System.FormatException">
<paramref name="s"/> contains a character that is not a valid digit in the base specified by <paramref name="radix"/>.
The exception message indicates that there are no digits to convert if the first character in <paramref name="s"/> is invalid;
otherwise, the message indicates that <paramref name="s"/> contains invalid trailing characters.
<para/>
-or-
<para/>
<paramref name="s"/> contains only a the ASCII character \u002d ('-') or \u002B ('+') sign and/or hexadecimal
prefix 0X or 0x with no digits.
</exception>
<exception cref="T:System.OverflowException">
<paramref name="s"/> represents a number that is less than <see cref="F:System.Int16.MinValue"/> or greater than <see cref="F:System.Int16.MaxValue"/>.
</exception>
<seealso cref="M:J2N.Numerics.Int16.TryParse(System.String,System.Int32,System.Int16@)"/>
<seealso cref="M:J2N.Numerics.Int16.Parse(System.String,System.Int32)"/>
</member>
<member name="M:J2N.Numerics.Int16.GetInstance(System.Int16)">
<summary>
Returns an immutable <see cref="T:J2N.Numerics.Int16"/> instance for the specified <paramref name="value"/>.
<para/>
Usage Note: This is the same operation as Short.valueOf() in the JDK.
</summary>
<param name="value">The <see cref="T:System.Int16"/> value the returned instance represents.</param>
<returns>An immutable <see cref="T:J2N.Numerics.Int16"/> instance containing the <paramref name="value"/>,
which may be retrieved from a cache.</returns>
</member>
<member name="F:J2N.Numerics.Int16.ValueOfCache.Cache">
<summary>
A cache of instances used by <see cref="M:J2N.Numerics.Int16.GetInstance(System.Int16)"/> and auto-boxing.
</summary>
</member>
<member name="M:J2N.Numerics.Int16.op_Implicit(J2N.Numerics.Int16)~System.Int16">
<inheritdoc/>
</member>
<member name="M:J2N.Numerics.Int16.op_Implicit(System.Int16)~J2N.Numerics.Int16">
<inheritdoc/>
</member>
<member name="M:J2N.Numerics.Int16.ToByte">
<inheritdoc/>
</member>
<member name="M:J2N.Numerics.Int16.ToDouble">
<inheritdoc/>
</member>
<member name="M:J2N.Numerics.Int16.ToInt16">
<inheritdoc/>
</member>
<member name="M:J2N.Numerics.Int16.ToInt32">
<inheritdoc/>
</member>
<member name="M:J2N.Numerics.Int16.ToInt64">
<inheritdoc/>
</member>
<member name="M:J2N.Numerics.Int16.ToSByte">
<inheritdoc/>
</member>
<member name="M:J2N.Numerics.Int16.ToSingle">
<inheritdoc/>
</member>
<member name="M:J2N.Numerics.Int16.GetTypeCode">
<summary>
Returns the <see cref="T:System.TypeCode"/> for value type <see cref="T:System.Int16"/>.
</summary>
<returns>The enumerated constant, <see cref="F:System.TypeCode.Int16"/>.</returns>
</member>
<member name="T:J2N.Numerics.Int32">
<summary>
An immutable reference type that wraps the primitive <see cref="T:System.Int32"/> type.
<para/>
In addition, this class provides methods for converting a <see cref="T:System.Int32"/> to a <see cref="T:System.String"/> and
a <see cref="T:System.String"/> to a <see cref="T:System.Int32"/> that are compatible with Java.
<para/>
Instances of this class can be produced implicitly by setting a <see cref="T:System.Int32"/> value to a variable declared
as <see cref="T:J2N.Numerics.Int32"/>
<code>
int value = 4;
Int32 instance = value;
</code>
Or explicitly by calling one of the <see cref="M:J2N.Numerics.Int32.GetInstance(System.Int32)"/>, <see cref="M:J2N.Numerics.Int32.Decode(System.String)"/>,
or <see cref="M:J2N.Numerics.Int32.TryDecode(System.String,J2N.Numerics.Int32@)"/> methods.
<para/>
The <see cref="T:System.Int32"/> value of an <see cref="T:J2N.Numerics.Int32"/> can also be retrieved in several ways. For implicit
conversion, simply assign a <see cref="T:System.Int32"/> variable an instance of <see cref="T:J2N.Numerics.Int32"/>.
<code>
Int32 instance = Int32.GetInstance(4);
int value = instance;
</code>
To explicitly get the value, call <see cref="M:J2N.Numerics.Int32.ToInt32"/> or use the <see cref="T:System.Convert"/> class.
<code>
int converted1 = instance.ToInt32();
int converted2 = Convert.ToInt32(instance, NumberFormatInfo.InvariantInfo);
</code>
<para/>
In most cases, the number types in .NET will suffice. The main reason for creating an object to wrap numeric types is to
provide a way to make strongly-typed instances that can co-exist in collections and arrays with reference types.
For example, when creating a table object that has columns with a mix of number and string data types.
When porting code from Java, there are sometimes cases where the design didn't factor in the use of value types,
so these classes can be used rather than reworking the design.
For more information about numbers classes, see
<a href="https://docs.oracle.com/javase/tutorial/java/data/numberclasses.html">The Numbers Classes</a>.
</summary>
<seealso cref="T:J2N.Numerics.Number"/>
<seealso cref="T:System.IConvertible"/>
<seealso cref="T:System.IFormattable"/>
<seealso cref="T:System.IComparable"/>
</member>
<member name="F:J2N.Numerics.Int32.Size">
<summary>
Constant for the number of bits needed to represent a <see cref="T:System.Int32"/> in
two's complement form.
</summary>
</member>
<member name="F:J2N.Numerics.Int32.value">
<summary>
The value which the receiver represents.
</summary>
</member>
<member name="M:J2N.Numerics.Int32.#ctor(System.Int32)">
<summary>
Initializes a new instance of the <see cref="T:J2N.Numerics.Int32"/> class.
</summary>
<param name="value">The primitive <see cref="T:System.Int32"/> value to store in the new instance.</param>
</member>
<member name="M:J2N.Numerics.Int32.CompareTo(J2N.Numerics.Int32)">
<summary>
Compares this instance to a specified <see cref="T:J2N.Numerics.Int32"/> and returns an indication of their relative values.
</summary>
<param name="value">An <see cref="T:J2N.Numerics.Int32"/> to compare, or <c>null</c>.</param>
<returns>
A signed integer that indicates the relative order of this instance and <paramref name="value"/>.
<list type="table">
<listheader>
<term>Return Value</term>
<term>Description </term>
</listheader>
<item>
<term>Less than zero</term>
<term>This instance is less than <paramref name="value"/>.</term>
</item>
<item>
<term>Zero</term>
<term>This instance is equal to <paramref name="value"/>.</term>
</item>
<item>
<term>Greater than zero</term>
<term>This instance is greater than <paramref name="value"/>, or <paramref name="value"/> is <c>null</c>.</term>
</item>
</list>
</returns>
<remarks>
This method implements the <see cref="T:System.IComparable`1"/> interface and performs slightly better than the <see cref="M:J2N.Numerics.Int32.CompareTo(System.Object)"/>
method because it does not have to convert the <paramref name="value"/> parameter to an object.
</remarks>
</member>
<member name="M:J2N.Numerics.Int32.CompareTo(System.Object)">
<summary>
Compares this instance to a specified object and returns an indication of their relative values.
</summary>
<param name="value">An object to compare, or <c>null</c>.</param>
<returns>
A signed integer that indicates the relative order of this instance and <paramref name="value"/>.
<list type="table">
<listheader>
<term>Return Value</term>
<term>Description </term>
</listheader>
<item>
<term>Less than zero</term>
<term>This instance is less than <paramref name="value"/>.</term>
</item>
<item>
<term>Zero</term>
<term>This instance is equal to <paramref name="value"/>.</term>
</item>
<item>
<term>Greater than zero</term>
<term>This instance is greater than <paramref name="value"/>, or <paramref name="value"/> is <c>null</c>.</term>
</item>
</list>
</returns>
<exception cref="T:System.ArgumentException"><paramref name="value"/> is not a <see cref="T:J2N.Numerics.Int32"/>.</exception>
<remarks>
<paramref name="value"/> must be <c>null</c> or an instance of <see cref="T:J2N.Numerics.Int32"/>; otherwise, an exception is thrown.
<para/>
Any instance of <see cref="T:J2N.Numerics.Int32"/>, regardless of its value, is considered greater than <c>null</c>.
<para/>
This method is implemented to support the <see cref="T:System.IComparable"/> interface.
</remarks>
</member>
<member name="M:J2N.Numerics.Int32.Decode(System.String)">
<summary>
Decodes a <see cref="T:System.String"/> into an <see cref="T:J2N.Numerics.Int32"/>. Accepts decimal, hexadecimal, and octal numbers given by the following grammar:
<list type="bullet">
<item>
<term><i>DecodableString:</i></term>
<list type="bullet">
<item><term><i>Sign</i> (<sub>opt</sub>) <i>DecimalNumeral</i></term></item>
<item><term><i>Sign</i> (<sub>opt</sub>) <c>0x</c> <i>HexDigits</i></term></item>
<item><term><i>Sign</i> (<sub>opt</sub>) <c>0X</c> <i>HexDigits</i></term></item>
<item><term><i>Sign</i> (<sub>opt</sub>) <c>#</c> <i>HexDigits</i></term></item>
<item><term><i>Sign</i> (<sub>opt</sub>) <c>0</c> <i>OctalDigits</i></term></item>
</list>
</item>
<item>
<term><i>Sign:</i></term>
<list type="bullet">
<item><term><c>-</c></term></item>
<item><term><c>+</c></term></item>
</list>
</item>
</list>
<para/>
<i>DecimalNumeral</i>, <i>HexDigits</i>, and <i>OctalDigits</i> are as defined in section
<a href="https://docs.oracle.com/javase/specs/jls/se16/html/jls-3.html#jls-3.10.1">3.10.1</a> of
The Java Language Specification, except that underscores are not accepted between digits.
<para/>
The sequence of characters following an optional sign and/or radix specifier (<c>"0x"</c>, <c>"0X"</c>, <c>"#"</c>, or leading zero) is
parsed as by the <see cref="M:J2N.Numerics.Int32.Parse(System.String,System.Int32)"/> method with the indicated radix (10, 16, or 8).
The sequence of characters must represent a positive value or an <see cref="T:System.OverflowException"/> is thrown.
The result is negated if the first character of the specified <see cref="T:System.String"/> is
the ASCII character \u002d ('-'). No whitespace characters are permitted in the <see cref="T:System.String"/>.
</summary>
<param name="s">A <see cref="T:System.String"/> that contains the number to convert.</param>
<returns>A 32-bit signed integer that is equivalent to the number in <paramref name="s"/>.</returns>
<exception cref="T:System.ArgumentNullException"><paramref name="s"/> is <c>null</c>.</exception>
<exception cref="T:System.FormatException">
<paramref name="s"/> contains a character that is not a valid digit in the base specified by its format.
The exception message indicates that there are no digits to convert if the first character in <paramref name="s"/> is invalid;
otherwise, the message indicates that <paramref name="s"/> contains invalid trailing characters.
<para/>
-or-
<para/>
<paramref name="s"/> contains only a the ASCII character \u002d ('-') or \u002B ('+') sign and/or hexadecimal
prefix (0X, 0x, or #) or octal prefix (0) with no digits.
</exception>
<exception cref="T:System.OverflowException">
<paramref name="s"/> represents a number that is less than <see cref="F:System.Int32.MinValue"/> or greater than <see cref="F:System.Int32.MaxValue"/>.
<para/>
-or-
<para/>
<paramref name="s"/> represents a two's complement negative number. Only positive values are allowed without a negative sign.
</exception>
</member>
<member name="M:J2N.Numerics.Int32.TryDecode(System.String,J2N.Numerics.Int32@)">
<summary>
Decodes a <see cref="T:System.String"/> into an <see cref="T:J2N.Numerics.Int32"/>. Accepts decimal, hexadecimal, and octal numbers given by the following grammar:
<list type="bullet">
<item>
<term><i>DecodableString:</i></term>
<list type="bullet">
<item><term><i>Sign</i> (<sub>opt</sub>) <i>DecimalNumeral</i></term></item>
<item><term><i>Sign</i> (<sub>opt</sub>) <c>0x</c> <i>HexDigits</i></term></item>
<item><term><i>Sign</i> (<sub>opt</sub>) <c>0X</c> <i>HexDigits</i></term></item>
<item><term><i>Sign</i> (<sub>opt</sub>) <c>#</c> <i>HexDigits</i></term></item>
<item><term><i>Sign</i> (<sub>opt</sub>) <c>0</c> <i>OctalDigits</i></term></item>
</list>
</item>
<item>
<term><i>Sign:</i></term>
<list type="bullet">
<item><term><c>-</c></term></item>
<item><term><c>+</c></term></item>
</list>
</item>
</list>
<para/>
<i>DecimalNumeral</i>, <i>HexDigits</i>, and <i>OctalDigits</i> are as defined in section
<a href="https://docs.oracle.com/javase/specs/jls/se16/html/jls-3.html#jls-3.10.1">3.10.1</a> of
The Java Language Specification, except that underscores are not accepted between digits.
<para/>
The sequence of characters following an optional sign and/or radix specifier (<c>"0x"</c>, <c>"0X"</c>, <c>"#"</c>, or leading zero) is
parsed as by the <see cref="M:J2N.Numerics.Int32.Parse(System.String,System.Int32)"/> method with the indicated radix (10, 16, or 8).
The sequence of characters must represent a positive value.
The result is negated if the first character of the specified <see cref="T:System.String"/> is
the ASCII character \u002d ('-'). No whitespace characters are permitted in the <see cref="T:System.String"/>.
</summary>
<param name="s">A <see cref="T:System.String"/> that contains the number to convert.</param>
<param name="result">When this method returns, contains the 32-bit signed integer value equivalent to the number contained in <paramref name="s"/>,
if the conversion succeeded, or zero if the conversion failed. The conversion fails if the <paramref name="s"/> parameter is <c>null</c> or
<see cref="F:System.String.Empty"/>, is not of the correct format, or represents a number less than <see cref="F:System.Int32.MinValue"/> or greater than
<see cref="F:System.Int32.MaxValue"/>. This parameter is passed uninitialized; any value originally supplied in result will be overwritten.</param>
<returns><c>true</c> if <paramref name="s"/> was converted successfully; otherwise, <c>false</c>.</returns>
</member>
<member name="M:J2N.Numerics.Int32.Equals(J2N.Numerics.Int32)">
<summary>
Returns a value indicating whether this instance is equal to a specified <see cref="T:J2N.Numerics.Int32"/> value.
</summary>
<param name="obj">A <see cref="T:J2N.Numerics.Int32"/> value to compare to this instance.</param>
<returns><c>true</c> if <paramref name="obj"/> has the same value as this instance; otherwise, <c>false</c>.</returns>
<remarks>This method implements the <see cref="T:System.IEquatable`1"/> interface, and performs slightly better than
<see cref="M:J2N.Numerics.Int32.Equals(System.Object)"/> because it does not have to convert the <paramref name="obj"/> parameter to an object.</remarks>
</member>
<member name="M:J2N.Numerics.Int32.Equals(System.Object)">
<summary>
Returns a value indicating whether this instance is equal to a specified object.
</summary>
<param name="obj">An object to compare with this instance.</param>
<returns><c>true</c> if <paramref name="obj"/> is an instance of <see cref="T:J2N.Numerics.Int32"/> and equals the value of
this instance; otherwise, <c>false</c>.</returns>
</member>
<member name="M:J2N.Numerics.Int32.GetHashCode">
<summary>
Returns the hash code for this instance.
</summary>
<returns>A 32-bit signed integer hash code.</returns>
</member>
<member name="M:J2N.Numerics.Int32.Parse(System.ReadOnlySpan{System.Char},System.Int32,System.Int32,System.Int32)">
<summary>
Parses the <see cref="T:System.ReadOnlySpan`1"/> argument as a signed <see cref="T:System.Int32"/> in the specified <paramref name="radix"/>, beginning at the
specified <paramref name="startIndex"/> with the specified number of characters in <paramref name="length"/>.
<para/>
IMPORTANT: This method has .NET semantics. That is, the <paramref name="length"/> parameter
is a length rather than an exclusive end index as would be the case in Java. To translate from
Java, use <c>endIndex - beginIndex</c> to obtain the <paramref name="length"/>.
<para/>
Usage Note: This method is similar to the <see cref="M:System.Convert.ToInt32(System.String,System.Int32)"/> method, however it allows conversion
of the value without allocating a substring. It also differs in that it allows the use of the ASCII character \u002d ('-')
or \u002B ('+') in any <paramref name="radix"/> and allows any <paramref name="radix"/> value from
<see cref="F:J2N.Character.MinRadix"/> to <see cref="F:J2N.Character.MaxRadix"/> inclusive.
<para/>
Supports any BMP (Basic Multilingual Plane) or SMP (Supplementary Mulitlingual Plane) digit as defined by Unicode 10.0.
</summary>
<param name="s">The <see cref="T:System.ReadOnlySpan`1"/> containing the <see cref="T:System.Int32"/> representation to be parsed.</param>
<param name="startIndex">The zero-based starting character position of a region in <paramref name="s"/>.</param>
<param name="length">The number of characters in the region to parse.</param>
<param name="radix">The radix (or base) to use when parsing <paramref name="s"/>. The value must be in the range
<see cref="F:J2N.Character.MinRadix"/> - <see cref="F:J2N.Character.MaxRadix"/> inclusive.</param>
<returns>The signed <see cref="T:System.Int32"/> represented by the subsequence in the specified <paramref name="radix"/>.</returns>
<remarks>
If <paramref name="radix"/> is 16, you can prefix the number specified by the <paramref name="s"/> parameter with "0x" or "0X".
<para/>
To specify a negative value for base (radix) 10 numeric representations, use the ASCII character \u002d ('-').
<para/>
For any other <paramref name="radix"/>, negative values may either be specified with ASCII character \u002d ('-')
(as in Java) or by specifying the two's complement representation (as in .NET), but not both.
In the latter case, the highest-order binary bit of an integer (bit 31) is interpreted as the sign bit.
As a result, it is possible to write code in which a non-base 10 number that is out of the range of the <see cref="T:System.Int32"/>
data type is converted to an <see cref="T:System.Int32"/> value without the method throwing an exception.
</remarks>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="startIndex"/> or <paramref name="length"/> is less than zero.
<para/>
-or-
<para/>
<paramref name="startIndex"/> and <paramref name="length"/> refer to a location outside of <paramref name="s"/>.
<para/>
-or-
<para/>
<paramref name="radix"/> is less than <see cref="F:J2N.Character.MinRadix"/> or greater than <see cref="F:J2N.Character.MaxRadix"/>.
</exception>
<exception cref="T:System.FormatException">
The range of characters in <paramref name="s"/> specified by <paramref name="startIndex"/> and <paramref name="length"/>
contains a character that is not a valid digit in the base specified by <paramref name="radix"/>.
The exception message indicates that there are no digits to convert if the first character specified by
<paramref name="startIndex"/> is invalid; otherwise, the message indicates that the range of characters in
<paramref name="s"/> specified by <paramref name="startIndex"/> and <paramref name="length"/> contains invalid trailing characters.
<para/>
-or-
<para/>
The range of characters in <paramref name="s"/> specified by <paramref name="startIndex"/> and <paramref name="length"/>
contain only a the ASCII character \u002d ('-') or \u002B ('+') sign and/or hexadecimal prefix 0X or 0x with no digits.
<para/>
-or-
<para/>
<paramref name="length"/> is zero.
</exception>
<exception cref="T:System.OverflowException">
The range of characters in <paramref name="s"/> specified by <paramref name="startIndex"/> and <paramref name="length"/>
represents a number that is less than <see cref="F:System.Int32.MinValue"/> or greater than <see cref="F:System.Int32.MaxValue"/>.
</exception>
<seealso cref="M:J2N.Numerics.Int32.TryParse(System.ReadOnlySpan{System.Char},System.Int32,System.Int32,System.Int32,System.Int32@)"/>
<seealso cref="M:J2N.Numerics.Int32.Parse(System.String,System.Int32)"/>
</member>
<member name="M:J2N.Numerics.Int32.Parse(System.String,System.Int32,System.Int32,System.Int32)">
<summary>
Parses the <see cref="T:System.String"/> argument as a signed <see cref="T:System.Int32"/> in the specified <paramref name="radix"/>, beginning at the
specified <paramref name="startIndex"/> with the specified number of characters in <paramref name="length"/>.
<para/>
IMPORTANT: This method has .NET semantics. That is, the <paramref name="length"/> parameter
is a length rather than an exclusive end index as would be the case in Java. To translate from
Java, use <c>endIndex - beginIndex</c> to obtain the <paramref name="length"/>.
<para/>
Usage Note: This method is similar to the <see cref="M:System.Convert.ToInt32(System.String,System.Int32)"/> method, however it allows conversion
of the value without allocating a substring. It also differs in that it allows the use of the ASCII character \u002d ('-')
or \u002B ('+') in any <paramref name="radix"/> and allows any <paramref name="radix"/> value from
<see cref="F:J2N.Character.MinRadix"/> to <see cref="F:J2N.Character.MaxRadix"/> inclusive.
<para/>
Supports any BMP (Basic Multilingual Plane) or SMP (Supplementary Mulitlingual Plane) digit as defined by Unicode 10.0.
</summary>
<param name="s">The <see cref="T:System.String"/> containing the <see cref="T:System.Int32"/> representation to be parsed.</param>
<param name="startIndex">The zero-based starting character position of a region in <paramref name="s"/>.</param>
<param name="length">The number of characters in the region to parse.</param>
<param name="radix">The radix (or base) to use when parsing <paramref name="s"/>. The value must be in the range
<see cref="F:J2N.Character.MinRadix"/> - <see cref="F:J2N.Character.MaxRadix"/> inclusive.</param>
<returns>The signed <see cref="T:System.Int32"/> represented by the subsequence in the specified <paramref name="radix"/>.</returns>
<remarks>
If <paramref name="radix"/> is 16, you can prefix the number specified by the <paramref name="s"/> parameter with "0x" or "0X".
<para/>
To specify a negative value for base (radix) 10 numeric representations, use the ASCII character \u002d ('-').
<para/>
For any other <paramref name="radix"/>, negative values may either be specified with ASCII character \u002d ('-')
(as in Java) or by specifying the two's complement representation (as in .NET), but not both.
In the latter case, the highest-order binary bit of an integer (bit 31) is interpreted as the sign bit.
As a result, it is possible to write code in which a non-base 10 number that is out of the range of the <see cref="T:System.Int32"/>
data type is converted to an <see cref="T:System.Int32"/> value without the method throwing an exception.
</remarks>
<exception cref="T:System.ArgumentNullException"><paramref name="s"/> is <c>null</c>.</exception>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="startIndex"/> or <paramref name="length"/> is less than zero.
<para/>
-or-
<para/>
<paramref name="startIndex"/> and <paramref name="length"/> refer to a location outside of <paramref name="s"/>.
<para/>
-or-
<para/>
<paramref name="radix"/> is less than <see cref="F:J2N.Character.MinRadix"/> or greater than <see cref="F:J2N.Character.MaxRadix"/>.
</exception>
<exception cref="T:System.FormatException">
The range of characters in <paramref name="s"/> specified by <paramref name="startIndex"/> and <paramref name="length"/>
contains a character that is not a valid digit in the base specified by <paramref name="radix"/>.
The exception message indicates that there are no digits to convert if the first character specified by
<paramref name="startIndex"/> is invalid; otherwise, the message indicates that the range of characters in
<paramref name="s"/> specified by <paramref name="startIndex"/> and <paramref name="length"/> contains invalid trailing characters.
<para/>
-or-
<para/>
The range of characters in <paramref name="s"/> specified by <paramref name="startIndex"/> and <paramref name="length"/>
contain only a the ASCII character \u002d ('-') or \u002B ('+') sign and/or hexadecimal prefix 0X or 0x with no digits.
<para/>
-or-
<para/>
<paramref name="length"/> is zero.
</exception>
<exception cref="T:System.OverflowException">
The range of characters in <paramref name="s"/> specified by <paramref name="startIndex"/> and <paramref name="length"/>
represents a number that is less than <see cref="F:System.Int32.MinValue"/> or greater than <see cref="F:System.Int32.MaxValue"/>.
</exception>
<seealso cref="M:J2N.Numerics.Int32.TryParse(System.String,System.Int32,System.Int32,System.Int32,System.Int32@)"/>
<seealso cref="M:J2N.Numerics.Int32.Parse(System.String,System.Int32)"/>
</member>
<member name="M:J2N.Numerics.Int32.Parse(System.Char[],System.Int32,System.Int32,System.Int32)">
<summary>
Parses the <see cref="T:char[]"/> argument as a signed <see cref="T:System.Int32"/> in the specified <paramref name="radix"/>, beginning at the
specified <paramref name="startIndex"/> with the specified number of characters in <paramref name="length"/>.
<para/>
IMPORTANT: This method has .NET semantics. That is, the <paramref name="length"/> parameter
is a length rather than an exclusive end index as would be the case in Java. To translate from
Java, use <c>endIndex - beginIndex</c> to obtain the <paramref name="length"/>.
<para/>
Usage Note: This method is similar to the <see cref="M:System.Convert.ToInt32(System.String,System.Int32)"/> method, however it allows conversion
of the value without allocating a substring. It also differs in that it allows the use of the ASCII character \u002d ('-')
or \u002B ('+') in any <paramref name="radix"/> and allows any <paramref name="radix"/> value from
<see cref="F:J2N.Character.MinRadix"/> to <see cref="F:J2N.Character.MaxRadix"/> inclusive.
<para/>
Supports any BMP (Basic Multilingual Plane) or SMP (Supplementary Mulitlingual Plane) digit as defined by Unicode 10.0.
</summary>
<param name="s">The <see cref="T:char[]"/> containing the <see cref="T:System.Int32"/> representation to be parsed.</param>
<param name="startIndex">The zero-based starting character position of a region in <paramref name="s"/>.</param>
<param name="length">The number of characters in the region to parse.</param>
<param name="radix">The radix (or base) to use when parsing <paramref name="s"/>. The value must be in the range
<see cref="F:J2N.Character.MinRadix"/> - <see cref="F:J2N.Character.MaxRadix"/> inclusive.</param>
<returns>The signed <see cref="T:System.Int32"/> represented by the subsequence in the specified <paramref name="radix"/>.</returns>
<remarks>
If <paramref name="radix"/> is 16, you can prefix the number specified by the <paramref name="s"/> parameter with "0x" or "0X".
<para/>
To specify a negative value for base (radix) 10 numeric representations, use the ASCII character \u002d ('-').
<para/>
For any other <paramref name="radix"/>, negative values may either be specified with ASCII character \u002d ('-')
(as in Java) or by specifying the two's complement representation (as in .NET), but not both.
In the latter case, the highest-order binary bit of an integer (bit 31) is interpreted as the sign bit.
As a result, it is possible to write code in which a non-base 10 number that is out of the range of the <see cref="T:System.Int32"/>
data type is converted to an <see cref="T:System.Int32"/> value without the method throwing an exception.
</remarks>
<exception cref="T:System.ArgumentNullException"><paramref name="s"/> is <c>null</c>.</exception>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="startIndex"/> or <paramref name="length"/> is less than zero.
<para/>
-or-
<para/>
<paramref name="startIndex"/> and <paramref name="length"/> refer to a location outside of <paramref name="s"/>.
<para/>
-or-
<para/>
<paramref name="radix"/> is less than <see cref="F:J2N.Character.MinRadix"/> or greater than <see cref="F:J2N.Character.MaxRadix"/>.
</exception>
<exception cref="T:System.FormatException">
The range of characters in <paramref name="s"/> specified by <paramref name="startIndex"/> and <paramref name="length"/>
contains a character that is not a valid digit in the base specified by <paramref name="radix"/>.
The exception message indicates that there are no digits to convert if the first character specified by
<paramref name="startIndex"/> is invalid; otherwise, the message indicates that the range of characters in
<paramref name="s"/> specified by <paramref name="startIndex"/> and <paramref name="length"/> contains invalid trailing characters.
<para/>
-or-
<para/>
The range of characters in <paramref name="s"/> specified by <paramref name="startIndex"/> and <paramref name="length"/>
contain only a the ASCII character \u002d ('-') or \u002B ('+') sign and/or hexadecimal prefix 0X or 0x with no digits.
<para/>
-or-
<para/>
<paramref name="length"/> is zero.
</exception>
<exception cref="T:System.OverflowException">
The range of characters in <paramref name="s"/> specified by <paramref name="startIndex"/> and <paramref name="length"/>
represents a number that is less than <see cref="F:System.Int32.MinValue"/> or greater than <see cref="F:System.Int32.MaxValue"/>.
</exception>
<seealso cref="M:J2N.Numerics.Int32.TryParse(System.Char[],System.Int32,System.Int32,System.Int32,System.Int32@)"/>
<seealso cref="M:J2N.Numerics.Int32.Parse(System.String,System.Int32)"/>
</member>
<member name="M:J2N.Numerics.Int32.Parse(System.Text.StringBuilder,System.Int32,System.Int32,System.Int32)">
<summary>
Parses the <see cref="T:System.Text.StringBuilder"/> argument as a signed <see cref="T:System.Int32"/> in the specified <paramref name="radix"/>, beginning at the
specified <paramref name="startIndex"/> with the specified number of characters in <paramref name="length"/>.
<para/>
IMPORTANT: This method has .NET semantics. That is, the <paramref name="length"/> parameter
is a length rather than an exclusive end index as would be the case in Java. To translate from
Java, use <c>endIndex - beginIndex</c> to obtain the <paramref name="length"/>.
<para/>
Usage Note: This method is similar to the <see cref="M:System.Convert.ToInt32(System.String,System.Int32)"/> method, however it allows conversion
of the value without allocating a substring. It also differs in that it allows the use of the ASCII character \u002d ('-')
or \u002B ('+') in any <paramref name="radix"/> and allows any <paramref name="radix"/> value from
<see cref="F:J2N.Character.MinRadix"/> to <see cref="F:J2N.Character.MaxRadix"/> inclusive.
<para/>
Supports any BMP (Basic Multilingual Plane) or SMP (Supplementary Mulitlingual Plane) digit as defined by Unicode 10.0.
</summary>
<param name="s">The <see cref="T:System.Text.StringBuilder"/> containing the <see cref="T:System.Int32"/> representation to be parsed.</param>
<param name="startIndex">The zero-based starting character position of a region in <paramref name="s"/>.</param>
<param name="length">The number of characters in the region to parse.</param>
<param name="radix">The radix (or base) to use when parsing <paramref name="s"/>. The value must be in the range
<see cref="F:J2N.Character.MinRadix"/> - <see cref="F:J2N.Character.MaxRadix"/> inclusive.</param>
<returns>The signed <see cref="T:System.Int32"/> represented by the subsequence in the specified <paramref name="radix"/>.</returns>
<remarks>
If <paramref name="radix"/> is 16, you can prefix the number specified by the <paramref name="s"/> parameter with "0x" or "0X".
<para/>
To specify a negative value for base (radix) 10 numeric representations, use the ASCII character \u002d ('-').
<para/>
For any other <paramref name="radix"/>, negative values may either be specified with ASCII character \u002d ('-')
(as in Java) or by specifying the two's complement representation (as in .NET), but not both.
In the latter case, the highest-order binary bit of an integer (bit 31) is interpreted as the sign bit.
As a result, it is possible to write code in which a non-base 10 number that is out of the range of the <see cref="T:System.Int32"/>
data type is converted to an <see cref="T:System.Int32"/> value without the method throwing an exception.
</remarks>
<exception cref="T:System.ArgumentNullException"><paramref name="s"/> is <c>null</c>.</exception>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="startIndex"/> or <paramref name="length"/> is less than zero.
<para/>
-or-
<para/>
<paramref name="startIndex"/> and <paramref name="length"/> refer to a location outside of <paramref name="s"/>.
<para/>
-or-
<para/>
<paramref name="radix"/> is less than <see cref="F:J2N.Character.MinRadix"/> or greater than <see cref="F:J2N.Character.MaxRadix"/>.
</exception>
<exception cref="T:System.FormatException">
The range of characters in <paramref name="s"/> specified by <paramref name="startIndex"/> and <paramref name="length"/>
contains a character that is not a valid digit in the base specified by <paramref name="radix"/>.
The exception message indicates that there are no digits to convert if the first character specified by
<paramref name="startIndex"/> is invalid; otherwise, the message indicates that the range of characters in
<paramref name="s"/> specified by <paramref name="startIndex"/> and <paramref name="length"/> contains invalid trailing characters.
<para/>
-or-
<para/>
The range of characters in <paramref name="s"/> specified by <paramref name="startIndex"/> and <paramref name="length"/>
contain only a the ASCII character \u002d ('-') or \u002B ('+') sign and/or hexadecimal prefix 0X or 0x with no digits.
<para/>
-or-
<para/>
<paramref name="length"/> is zero.
</exception>
<exception cref="T:System.OverflowException">
The range of characters in <paramref name="s"/> specified by <paramref name="startIndex"/> and <paramref name="length"/>
represents a number that is less than <see cref="F:System.Int32.MinValue"/> or greater than <see cref="F:System.Int32.MaxValue"/>.
</exception>
<seealso cref="M:J2N.Numerics.Int32.TryParse(System.Text.StringBuilder,System.Int32,System.Int32,System.Int32,System.Int32@)"/>
<seealso cref="M:J2N.Numerics.Int32.Parse(System.String,System.Int32)"/>
</member>
<member name="M:J2N.Numerics.Int32.Parse(J2N.Text.ICharSequence,System.Int32,System.Int32,System.Int32)">
<summary>
Parses the <see cref="T:J2N.Text.ICharSequence"/> argument as a signed <see cref="T:System.Int32"/> in the specified <paramref name="radix"/>, beginning at the
specified <paramref name="startIndex"/> with the specified number of characters in <paramref name="length"/>.
<para/>
IMPORTANT: This method has .NET semantics. That is, the <paramref name="length"/> parameter
is a length rather than an exclusive end index as would be the case in Java. To translate from
Java, use <c>endIndex - beginIndex</c> to obtain the <paramref name="length"/>.
<para/>
Usage Note: This method is similar to the <see cref="M:System.Convert.ToInt32(System.String,System.Int32)"/> method, however it allows conversion
of the value without allocating a substring. It also differs in that it allows the use of the ASCII character \u002d ('-')
or \u002B ('+') in any <paramref name="radix"/> and allows any <paramref name="radix"/> value from
<see cref="F:J2N.Character.MinRadix"/> to <see cref="F:J2N.Character.MaxRadix"/> inclusive.
<para/>
Supports any BMP (Basic Multilingual Plane) or SMP (Supplementary Mulitlingual Plane) digit as defined by Unicode 10.0.
</summary>
<param name="s">The <see cref="T:J2N.Text.ICharSequence"/> containing the <see cref="T:System.Int32"/> representation to be parsed.</param>
<param name="startIndex">The zero-based starting character position of a region in <paramref name="s"/>.</param>
<param name="length">The number of characters in the region to parse.</param>
<param name="radix">The radix (or base) to use when parsing <paramref name="s"/>. The value must be in the range
<see cref="F:J2N.Character.MinRadix"/> - <see cref="F:J2N.Character.MaxRadix"/> inclusive.</param>
<returns>The signed <see cref="T:System.Int32"/> represented by the subsequence in the specified <paramref name="radix"/>.</returns>
<remarks>
If <paramref name="radix"/> is 16, you can prefix the number specified by the <paramref name="s"/> parameter with "0x" or "0X".
<para/>
To specify a negative value for base (radix) 10 numeric representations, use the ASCII character \u002d ('-').
<para/>
For any other <paramref name="radix"/>, negative values may either be specified with ASCII character \u002d ('-')
(as in Java) or by specifying the two's complement representation (as in .NET), but not both.
In the latter case, the highest-order binary bit of an integer (bit 31) is interpreted as the sign bit.
As a result, it is possible to write code in which a non-base 10 number that is out of the range of the <see cref="T:System.Int32"/>
data type is converted to an <see cref="T:System.Int32"/> value without the method throwing an exception.
</remarks>
<exception cref="T:System.ArgumentNullException"><paramref name="s"/> is <c>null</c> or its <see cref="P:J2N.Text.ICharSequence.HasValue"/> property returns <c>false</c>.</exception>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="startIndex"/> or <paramref name="length"/> is less than zero.
<para/>
-or-
<para/>
<paramref name="startIndex"/> and <paramref name="length"/> refer to a location outside of <paramref name="s"/>.
<para/>
-or-
<para/>
<paramref name="radix"/> is less than <see cref="F:J2N.Character.MinRadix"/> or greater than <see cref="F:J2N.Character.MaxRadix"/>.
</exception>
<exception cref="T:System.FormatException">
The range of characters in <paramref name="s"/> specified by <paramref name="startIndex"/> and <paramref name="length"/>
contains a character that is not a valid digit in the base specified by <paramref name="radix"/>.
The exception message indicates that there are no digits to convert if the first character specified by
<paramref name="startIndex"/> is invalid; otherwise, the message indicates that the range of characters in
<paramref name="s"/> specified by <paramref name="startIndex"/> and <paramref name="length"/> contains invalid trailing characters.
<para/>
-or-
<para/>
The range of characters in <paramref name="s"/> specified by <paramref name="startIndex"/> and <paramref name="length"/>
contain only a the ASCII character \u002d ('-') or \u002B ('+') sign and/or hexadecimal prefix 0X or 0x with no digits.
<para/>
-or-
<para/>
<paramref name="length"/> is zero.
</exception>
<exception cref="T:System.OverflowException">
The range of characters in <paramref name="s"/> specified by <paramref name="startIndex"/> and <paramref name="length"/>
represents a number that is less than <see cref="F:System.Int32.MinValue"/> or greater than <see cref="F:System.Int32.MaxValue"/>.
</exception>
<seealso cref="M:J2N.Numerics.Int32.TryParse(J2N.Text.ICharSequence,System.Int32,System.Int32,System.Int32,System.Int32@)"/>
<seealso cref="M:J2N.Numerics.Int32.Parse(System.String,System.Int32)"/>
</member>
<member name="M:J2N.Numerics.Int32.TryParse(System.ReadOnlySpan{System.Char},System.Int32,System.Int32,System.Int32,System.Int32@)">
<summary>
Parses the <see cref="T:System.ReadOnlySpan`1"/> argument as a signed <see cref="T:System.Int32"/> in the specified <paramref name="radix"/>, beginning at the
specified <paramref name="startIndex"/> with the specified number of characters in <paramref name="length"/>.
<para/>
IMPORTANT: This method has .NET semantics. That is, the <paramref name="length"/> parameter
is a length rather than an exclusive end index as would be the case in Java. To translate from
Java, use <c>endIndex - beginIndex</c> to obtain the <paramref name="length"/>.
<para/>
Usage Note: This method is similar to the <see cref="M:System.Convert.ToInt32(System.String,System.Int32)"/> method, however it allows conversion
of the value without allocating a substring. It also differs in that it allows the use of the ASCII character \u002d ('-')
or \u002B ('+') in any <paramref name="radix"/> and allows any <paramref name="radix"/> value from
<see cref="F:J2N.Character.MinRadix"/> to <see cref="F:J2N.Character.MaxRadix"/> inclusive.
<para/>
Supports any BMP (Basic Multilingual Plane) or SMP (Supplementary Mulitlingual Plane) digit as defined by Unicode 10.0.
<para/>
Since <see cref="M:J2N.Numerics.Int32.Parse(System.ReadOnlySpan{System.Char},System.Int32,System.Int32,System.Int32)"/> throws many different exception types and in Java they are all normalized to
<c>NumberFormatException</c>, this method can be used to mimic the same behavior by throwing <see cref="T:System.FormatException"/>
when this method returns <c>false</c>.
</summary>
<param name="s">The <see cref="T:System.ReadOnlySpan`1"/> containing the <see cref="T:System.Int32"/> representation to be parsed.</param>
<param name="startIndex">The zero-based starting character position of a region in <paramref name="s"/>.</param>
<param name="length">The number of characters in the region to parse.</param>
<param name="radix">The radix (or base) to use when parsing <paramref name="s"/>. The value must be in the range
<see cref="F:J2N.Character.MinRadix"/> - <see cref="F:J2N.Character.MaxRadix"/> inclusive.</param>
<param name="result">The signed <see cref="T:System.Int32"/> represented by the subsequence in the specified <paramref name="radix"/>.</param>
<returns><c>true</c> if <paramref name="s"/> was converted successfully; otherwise, <c>false</c>.</returns>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="startIndex"/> or <paramref name="length"/> is less than zero.
<para/>
-or-
<para/>
<paramref name="startIndex"/> and <paramref name="length"/> refer to a location outside of <paramref name="s"/>.
<para/>
-or-
<para/>
<paramref name="radix"/> is less than <see cref="F:J2N.Character.MinRadix"/> or greater than <see cref="F:J2N.Character.MaxRadix"/>.
</exception>
<remarks>
If <paramref name="radix"/> is 16, you can prefix the number specified by the <paramref name="s"/> parameter with "0x" or "0X".
<para/>
To specify a negative value for base (radix) 10 numeric representations, use the ASCII character \u002d ('-').
<para/>
For any other <paramref name="radix"/>, negative values may either be specified with ASCII character \u002d ('-')
(as in Java) or by specifying the two's complement representation (as in .NET), but not both.
In the latter case, the highest-order binary bit of an integer (bit 31) is interpreted as the sign bit.
As a result, it is possible to write code in which a non-base 10 number that is out of the range of the <see cref="T:System.Int32"/>
data type is converted to an <see cref="T:System.Int32"/> value without the method throwing an exception.
</remarks>
<seealso cref="M:J2N.Numerics.Int32.Parse(System.ReadOnlySpan{System.Char},System.Int32,System.Int32,System.Int32)"/>
<seealso cref="M:J2N.Numerics.Int32.Parse(System.String,System.Int32)"/>
</member>
<member name="M:J2N.Numerics.Int32.TryParse(System.String,System.Int32,System.Int32,System.Int32,System.Int32@)">
<summary>
Parses the <see cref="T:System.String"/> argument as a signed <see cref="T:System.Int32"/> in the specified <paramref name="radix"/>, beginning at the
specified <paramref name="startIndex"/> with the specified number of characters in <paramref name="length"/>.
<para/>
IMPORTANT: This method has .NET semantics. That is, the <paramref name="length"/> parameter
is a length rather than an exclusive end index as would be the case in Java. To translate from
Java, use <c>endIndex - beginIndex</c> to obtain the <paramref name="length"/>.
<para/>
Usage Note: This method is similar to the <see cref="M:System.Convert.ToInt32(System.String,System.Int32)"/> method, however it allows conversion
of the value without allocating a substring. It also differs in that it allows the use of the ASCII character \u002d ('-')
or \u002B ('+') in any <paramref name="radix"/> and allows any <paramref name="radix"/> value from
<see cref="F:J2N.Character.MinRadix"/> to <see cref="F:J2N.Character.MaxRadix"/> inclusive.
<para/>
Supports any BMP (Basic Multilingual Plane) or SMP (Supplementary Mulitlingual Plane) digit as defined by Unicode 10.0.
<para/>
Since <see cref="M:J2N.Numerics.Int32.Parse(System.String,System.Int32,System.Int32,System.Int32)"/> throws many different exception types and in Java they are all normalized to
<c>NumberFormatException</c>, this method can be used to mimic the same behavior by throwing <see cref="T:System.FormatException"/>
when this method returns <c>false</c>.
</summary>
<param name="s">The <see cref="T:System.String"/> containing the <see cref="T:System.Int32"/> representation to be parsed.</param>
<param name="startIndex">The zero-based starting character position of a region in <paramref name="s"/>.</param>
<param name="length">The number of characters in the region to parse.</param>
<param name="radix">The radix (or base) to use when parsing <paramref name="s"/>. The value must be in the range
<see cref="F:J2N.Character.MinRadix"/> - <see cref="F:J2N.Character.MaxRadix"/> inclusive.</param>
<param name="result">The signed <see cref="T:System.Int32"/> represented by the subsequence in the specified <paramref name="radix"/>.</param>
<returns><c>true</c> if <paramref name="s"/> was converted successfully; otherwise, <c>false</c>.</returns>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="startIndex"/> or <paramref name="length"/> is less than zero.
<para/>
-or-
<para/>
<paramref name="startIndex"/> and <paramref name="length"/> refer to a location outside of <paramref name="s"/>.
<para/>
-or-
<para/>
<paramref name="radix"/> is less than <see cref="F:J2N.Character.MinRadix"/> or greater than <see cref="F:J2N.Character.MaxRadix"/>.
</exception>
<remarks>
If <paramref name="radix"/> is 16, you can prefix the number specified by the <paramref name="s"/> parameter with "0x" or "0X".
<para/>
To specify a negative value for base (radix) 10 numeric representations, use the ASCII character \u002d ('-').
<para/>
For any other <paramref name="radix"/>, negative values may either be specified with ASCII character \u002d ('-')
(as in Java) or by specifying the two's complement representation (as in .NET), but not both.
In the latter case, the highest-order binary bit of an integer (bit 31) is interpreted as the sign bit.
As a result, it is possible to write code in which a non-base 10 number that is out of the range of the <see cref="T:System.Int32"/>
data type is converted to an <see cref="T:System.Int32"/> value without the method throwing an exception.
</remarks>
<seealso cref="M:J2N.Numerics.Int32.Parse(System.String,System.Int32,System.Int32,System.Int32)"/>
<seealso cref="M:J2N.Numerics.Int32.Parse(System.String,System.Int32)"/>
</member>
<member name="M:J2N.Numerics.Int32.TryParse(System.Char[],System.Int32,System.Int32,System.Int32,System.Int32@)">
<summary>
Parses the <see cref="T:char[]"/> argument as a signed <see cref="T:System.Int32"/> in the specified <paramref name="radix"/>, beginning at the
specified <paramref name="startIndex"/> with the specified number of characters in <paramref name="length"/>.
<para/>
IMPORTANT: This method has .NET semantics. That is, the <paramref name="length"/> parameter
is a length rather than an exclusive end index as would be the case in Java. To translate from
Java, use <c>endIndex - beginIndex</c> to obtain the <paramref name="length"/>.
<para/>
Usage Note: This method is similar to the <see cref="M:System.Convert.ToInt32(System.String,System.Int32)"/> method, however it allows conversion
of the value without allocating a substring. It also differs in that it allows the use of the ASCII character \u002d ('-')
or \u002B ('+') in any <paramref name="radix"/> and allows any <paramref name="radix"/> value from
<see cref="F:J2N.Character.MinRadix"/> to <see cref="F:J2N.Character.MaxRadix"/> inclusive.
<para/>
Supports any BMP (Basic Multilingual Plane) or SMP (Supplementary Mulitlingual Plane) digit as defined by Unicode 10.0.
<para/>
Since <see cref="M:J2N.Numerics.Int32.Parse(System.Char[],System.Int32,System.Int32,System.Int32)"/> throws many different exception types and in Java they are all normalized to
<c>NumberFormatException</c>, this method can be used to mimic the same behavior by throwing <see cref="T:System.FormatException"/>
when this method returns <c>false</c>.
</summary>
<param name="s">The <see cref="T:char[]"/> containing the <see cref="T:System.Int32"/> representation to be parsed.</param>
<param name="startIndex">The zero-based starting character position of a region in <paramref name="s"/>.</param>
<param name="length">The number of characters in the region to parse.</param>
<param name="radix">The radix (or base) to use when parsing <paramref name="s"/>. The value must be in the range
<see cref="F:J2N.Character.MinRadix"/> - <see cref="F:J2N.Character.MaxRadix"/> inclusive.</param>
<param name="result">The signed <see cref="T:System.Int32"/> represented by the subsequence in the specified <paramref name="radix"/>.</param>
<returns><c>true</c> if <paramref name="s"/> was converted successfully; otherwise, <c>false</c>.</returns>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="startIndex"/> or <paramref name="length"/> is less than zero.
<para/>
-or-
<para/>
<paramref name="startIndex"/> and <paramref name="length"/> refer to a location outside of <paramref name="s"/>.
<para/>
-or-
<para/>
<paramref name="radix"/> is less than <see cref="F:J2N.Character.MinRadix"/> or greater than <see cref="F:J2N.Character.MaxRadix"/>.
</exception>
<remarks>
If <paramref name="radix"/> is 16, you can prefix the number specified by the <paramref name="s"/> parameter with "0x" or "0X".
<para/>
To specify a negative value for base (radix) 10 numeric representations, use the ASCII character \u002d ('-').
<para/>
For any other <paramref name="radix"/>, negative values may either be specified with ASCII character \u002d ('-')
(as in Java) or by specifying the two's complement representation (as in .NET), but not both.
In the latter case, the highest-order binary bit of an integer (bit 31) is interpreted as the sign bit.
As a result, it is possible to write code in which a non-base 10 number that is out of the range of the <see cref="T:System.Int32"/>
data type is converted to an <see cref="T:System.Int32"/> value without the method throwing an exception.
</remarks>
<seealso cref="M:J2N.Numerics.Int32.Parse(System.Char[],System.Int32,System.Int32,System.Int32)"/>
<seealso cref="M:J2N.Numerics.Int32.Parse(System.String,System.Int32)"/>
</member>
<member name="M:J2N.Numerics.Int32.TryParse(System.Text.StringBuilder,System.Int32,System.Int32,System.Int32,System.Int32@)">
<summary>
Parses the <see cref="T:System.Text.StringBuilder"/> argument as a signed <see cref="T:System.Int32"/> in the specified <paramref name="radix"/>, beginning at the
specified <paramref name="startIndex"/> with the specified number of characters in <paramref name="length"/>.
<para/>
IMPORTANT: This method has .NET semantics. That is, the <paramref name="length"/> parameter
is a length rather than an exclusive end index as would be the case in Java. To translate from
Java, use <c>endIndex - beginIndex</c> to obtain the <paramref name="length"/>.
<para/>
Usage Note: This method is similar to the <see cref="M:System.Convert.ToInt32(System.String,System.Int32)"/> method, however it allows conversion
of the value without allocating a substring. It also differs in that it allows the use of the ASCII character \u002d ('-')
or \u002B ('+') in any <paramref name="radix"/> and allows any <paramref name="radix"/> value from
<see cref="F:J2N.Character.MinRadix"/> to <see cref="F:J2N.Character.MaxRadix"/> inclusive.
<para/>
Supports any BMP (Basic Multilingual Plane) or SMP (Supplementary Mulitlingual Plane) digit as defined by Unicode 10.0.
<para/>
Since <see cref="M:J2N.Numerics.Int32.Parse(System.Text.StringBuilder,System.Int32,System.Int32,System.Int32)"/> throws many different exception types and in Java they are all normalized to
<c>NumberFormatException</c>, this method can be used to mimic the same behavior by throwing <see cref="T:System.FormatException"/>
when this method returns <c>false</c>.
</summary>
<param name="s">The <see cref="T:System.Text.StringBuilder"/> containing the <see cref="T:System.Int32"/> representation to be parsed.</param>
<param name="startIndex">The zero-based starting character position of a region in <paramref name="s"/>.</param>
<param name="length">The number of characters in the region to parse.</param>
<param name="radix">The radix (or base) to use when parsing <paramref name="s"/>. The value must be in the range
<see cref="F:J2N.Character.MinRadix"/> - <see cref="F:J2N.Character.MaxRadix"/> inclusive.</param>
<param name="result">The signed <see cref="T:System.Int32"/> represented by the subsequence in the specified <paramref name="radix"/>.</param>
<returns><c>true</c> if <paramref name="s"/> was converted successfully; otherwise, <c>false</c>.</returns>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="startIndex"/> or <paramref name="length"/> is less than zero.
<para/>
-or-
<para/>
<paramref name="startIndex"/> and <paramref name="length"/> refer to a location outside of <paramref name="s"/>.
<para/>
-or-
<para/>
<paramref name="radix"/> is less than <see cref="F:J2N.Character.MinRadix"/> or greater than <see cref="F:J2N.Character.MaxRadix"/>.
</exception>
<remarks>
If <paramref name="radix"/> is 16, you can prefix the number specified by the <paramref name="s"/> parameter with "0x" or "0X".
<para/>
To specify a negative value for base (radix) 10 numeric representations, use the ASCII character \u002d ('-').
<para/>
For any other <paramref name="radix"/>, negative values may either be specified with ASCII character \u002d ('-')
(as in Java) or by specifying the two's complement representation (as in .NET), but not both.
In the latter case, the highest-order binary bit of an integer (bit 31) is interpreted as the sign bit.
As a result, it is possible to write code in which a non-base 10 number that is out of the range of the <see cref="T:System.Int32"/>
data type is converted to an <see cref="T:System.Int32"/> value without the method throwing an exception.
</remarks>
<seealso cref="M:J2N.Numerics.Int32.Parse(System.Text.StringBuilder,System.Int32,System.Int32,System.Int32)"/>
<seealso cref="M:J2N.Numerics.Int32.Parse(System.String,System.Int32)"/>
</member>
<member name="M:J2N.Numerics.Int32.TryParse(J2N.Text.ICharSequence,System.Int32,System.Int32,System.Int32,System.Int32@)">
<summary>
Parses the <see cref="T:J2N.Text.ICharSequence"/> argument as a signed <see cref="T:System.Int32"/> in the specified <paramref name="radix"/>, beginning at the
specified <paramref name="startIndex"/> with the specified number of characters in <paramref name="length"/>.
<para/>
IMPORTANT: This method has .NET semantics. That is, the <paramref name="length"/> parameter
is a length rather than an exclusive end index as would be the case in Java. To translate from
Java, use <c>endIndex - beginIndex</c> to obtain the <paramref name="length"/>.
<para/>
Usage Note: This method is similar to the <see cref="M:System.Convert.ToInt32(System.String,System.Int32)"/> method, however it allows conversion
of the value without allocating a substring. It also differs in that it allows the use of the ASCII character \u002d ('-')
or \u002B ('+') in any <paramref name="radix"/> and allows any <paramref name="radix"/> value from
<see cref="F:J2N.Character.MinRadix"/> to <see cref="F:J2N.Character.MaxRadix"/> inclusive.
<para/>
Supports any BMP (Basic Multilingual Plane) or SMP (Supplementary Mulitlingual Plane) digit as defined by Unicode 10.0.
<para/>
Since <see cref="M:J2N.Numerics.Int32.Parse(J2N.Text.ICharSequence,System.Int32,System.Int32,System.Int32)"/> throws many different exception types and in Java they are all normalized to
<c>NumberFormatException</c>, this method can be used to mimic the same behavior by throwing <see cref="T:System.FormatException"/>
when this method returns <c>false</c>.
</summary>
<param name="s">The <see cref="T:J2N.Text.ICharSequence"/> containing the <see cref="T:System.Int32"/> representation to be parsed.</param>
<param name="startIndex">The zero-based starting character position of a region in <paramref name="s"/>.</param>
<param name="length">The number of characters in the region to parse.</param>
<param name="radix">The radix (or base) to use when parsing <paramref name="s"/>. The value must be in the range
<see cref="F:J2N.Character.MinRadix"/> - <see cref="F:J2N.Character.MaxRadix"/> inclusive.</param>
<param name="result">The signed <see cref="T:System.Int32"/> represented by the subsequence in the specified <paramref name="radix"/>.</param>
<returns><c>true</c> if <paramref name="s"/> was converted successfully; otherwise, <c>false</c>.</returns>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="startIndex"/> or <paramref name="length"/> is less than zero.
<para/>
-or-
<para/>
<paramref name="startIndex"/> and <paramref name="length"/> refer to a location outside of <paramref name="s"/>.
<para/>
-or-
<para/>
<paramref name="radix"/> is less than <see cref="F:J2N.Character.MinRadix"/> or greater than <see cref="F:J2N.Character.MaxRadix"/>.
</exception>
<remarks>
If <paramref name="radix"/> is 16, you can prefix the number specified by the <paramref name="s"/> parameter with "0x" or "0X".
<para/>
To specify a negative value for base (radix) 10 numeric representations, use the ASCII character \u002d ('-').
<para/>
For any other <paramref name="radix"/>, negative values may either be specified with ASCII character \u002d ('-')
(as in Java) or by specifying the two's complement representation (as in .NET), but not both.
In the latter case, the highest-order binary bit of an integer (bit 31) is interpreted as the sign bit.
As a result, it is possible to write code in which a non-base 10 number that is out of the range of the <see cref="T:System.Int32"/>
data type is converted to an <see cref="T:System.Int32"/> value without the method throwing an exception.
</remarks>
<seealso cref="M:J2N.Numerics.Int32.Parse(J2N.Text.ICharSequence,System.Int32,System.Int32,System.Int32)"/>
<seealso cref="M:J2N.Numerics.Int32.Parse(System.String,System.Int32)"/>
</member>
<member name="M:J2N.Numerics.Int32.Parse(System.ReadOnlySpan{System.Char},System.Int32)">
<summary>
Parses the <see cref="T:System.ReadOnlySpan`1"/> argument as a signed <see cref="T:System.Int32"/> in the specified <paramref name="radix"/>.
<para/>
Usage Note: This method is similar to the <see cref="M:System.Convert.ToInt64(System.String,System.Int32)"/> method. It differs in that
it allows the use of the ASCII character \u002d ('-') or \u002B ('+') in any <paramref name="radix"/>.
</summary>
<param name="s">The <see cref="T:System.ReadOnlySpan`1"/> containing the <see cref="T:System.Int32"/> representation to be parsed.</param>
<param name="radix">The radix (or base) to use when parsing <paramref name="s"/>. The value must be in the range
<see cref="F:J2N.Character.MinRadix"/> - <see cref="F:J2N.Character.MaxRadix"/> inclusive.</param>
<returns>A 32-bit signed integer that is equivalent to the number in <paramref name="s"/>, or 0 (zero) if
<paramref name="s"/> is <c>null</c>.</returns>
<remarks>
If <paramref name="radix"/> is 16, you can prefix the number specified by the <paramref name="s"/> parameter with "0x" or "0X".
<para/>
To specify a negative value for base (radix) 10 numeric representations, use the ASCII character \u002d ('-').
<para/>
For any other <paramref name="radix"/>, negative values may either be specified with ASCII character \u002d ('-')
(as in Java) or by specifying the two's complement representation (as in .NET), but not both.
In the latter case, the highest-order binary bit of a long integer (bit 31) is interpreted as the sign bit.
As a result, it is possible to write code in which a non-base 10 number that is out of the range of the <see cref="T:System.Int32"/>
data type is converted to an <see cref="T:System.Int32"/> value without the method throwing an exception.
</remarks>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="radix"/> is less than <see cref="F:J2N.Character.MinRadix"/> or greater than <see cref="F:J2N.Character.MaxRadix"/>.
</exception>
<exception cref="T:System.FormatException">
<paramref name="s"/> contains a character that is not a valid digit in the base specified by <paramref name="radix"/>.
The exception message indicates that there are no digits to convert if the first character in <paramref name="s"/> is invalid;
otherwise, the message indicates that <paramref name="s"/> contains invalid trailing characters.
<para/>
-or-
<para/>
<paramref name="s"/> contains only a the ASCII character \u002d ('-') or \u002B ('+') sign and/or hexadecimal
prefix 0X or 0x with no digits.
</exception>
<exception cref="T:System.OverflowException">
<paramref name="s"/> represents a number that is less than <see cref="F:System.Int32.MinValue"/> or greater than <see cref="F:System.Int32.MaxValue"/>.
</exception>
<seealso cref="M:J2N.Numerics.Int32.TryParse(System.ReadOnlySpan{System.Char},System.Int32,System.Int32@)"/>
<seealso cref="M:J2N.Numerics.Int32.GetInstance(System.String,System.Int32)"/>
</member>
<member name="M:J2N.Numerics.Int32.Parse(System.String,System.Int32)">
<summary>
Parses the <see cref="T:System.String"/> argument as a signed <see cref="T:System.Int32"/> in the specified <paramref name="radix"/>.
<para/>
Usage Note: This method is similar to the <see cref="M:System.Convert.ToInt64(System.String,System.Int32)"/> method. It differs in that
it allows the use of the ASCII character \u002d ('-') or \u002B ('+') in any <paramref name="radix"/>.
</summary>
<param name="s">The <see cref="T:System.String"/> containing the <see cref="T:System.Int32"/> representation to be parsed.</param>
<param name="radix">The radix (or base) to use when parsing <paramref name="s"/>. The value must be in the range
<see cref="F:J2N.Character.MinRadix"/> - <see cref="F:J2N.Character.MaxRadix"/> inclusive.</param>
<returns>A 32-bit signed integer that is equivalent to the number in <paramref name="s"/>, or 0 (zero) if
<paramref name="s"/> is <c>null</c>.</returns>
<remarks>
If <paramref name="radix"/> is 16, you can prefix the number specified by the <paramref name="s"/> parameter with "0x" or "0X".
<para/>
To specify a negative value for base (radix) 10 numeric representations, use the ASCII character \u002d ('-').
<para/>
For any other <paramref name="radix"/>, negative values may either be specified with ASCII character \u002d ('-')
(as in Java) or by specifying the two's complement representation (as in .NET), but not both.
In the latter case, the highest-order binary bit of a long integer (bit 31) is interpreted as the sign bit.
As a result, it is possible to write code in which a non-base 10 number that is out of the range of the <see cref="T:System.Int32"/>
data type is converted to an <see cref="T:System.Int32"/> value without the method throwing an exception.
</remarks>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="radix"/> is less than <see cref="F:J2N.Character.MinRadix"/> or greater than <see cref="F:J2N.Character.MaxRadix"/>.
</exception>
<exception cref="T:System.FormatException">
<paramref name="s"/> contains a character that is not a valid digit in the base specified by <paramref name="radix"/>.
The exception message indicates that there are no digits to convert if the first character in <paramref name="s"/> is invalid;
otherwise, the message indicates that <paramref name="s"/> contains invalid trailing characters.
<para/>
-or-
<para/>
<paramref name="s"/> contains only a the ASCII character \u002d ('-') or \u002B ('+') sign and/or hexadecimal
prefix 0X or 0x with no digits.
</exception>
<exception cref="T:System.OverflowException">
<paramref name="s"/> represents a number that is less than <see cref="F:System.Int32.MinValue"/> or greater than <see cref="F:System.Int32.MaxValue"/>.
</exception>
<seealso cref="M:J2N.Numerics.Int32.TryParse(System.String,System.Int32,System.Int32@)"/>
<seealso cref="M:J2N.Numerics.Int32.GetInstance(System.String,System.Int32)"/>
</member>
<member name="M:J2N.Numerics.Int32.TryParse(System.ReadOnlySpan{System.Char},System.Int32,System.Int32@)">
<summary>
Parses the <see cref="T:System.ReadOnlySpan`1"/> argument as a signed <see cref="T:System.Int32"/> in the specified <paramref name="radix"/>.
<para/>
Usage Note: This method is similar to the <see cref="M:System.Convert.ToInt64(System.String,System.Int32)"/> method. It differs in that it
allows the use of the ASCII character \u002d ('-') or \u002B ('+') in any <paramref name="radix"/> and allows any
<paramref name="radix"/> value from <see cref="F:J2N.Character.MinRadix"/> to <see cref="F:J2N.Character.MaxRadix"/> inclusive.
<para/>
Since <see cref="M:J2N.Numerics.Int32.Parse(System.ReadOnlySpan{System.Char},System.Int32)"/> throws many different exception types and in Java they are all normalized to
<c>NumberFormatException</c>, this method can be used to mimic the same behavior by throwing <see cref="T:System.FormatException"/>
when this method returns <c>false</c>.
</summary>
<param name="s">The <see cref="T:System.ReadOnlySpan`1"/> containing the <see cref="T:System.Int32"/> representation to be parsed.</param>
<param name="radix">The radix (or base) to use when parsing <paramref name="s"/>. The value must be in the range
<see cref="F:J2N.Character.MinRadix"/> - <see cref="F:J2N.Character.MaxRadix"/> inclusive.</param>
<param name="result">The signed <see cref="T:System.Int32"/> represented by the subsequence in the specified <paramref name="radix"/>.</param>
<returns><c>true</c> if <paramref name="s"/> was converted successfully; otherwise, <c>false</c>.</returns>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="radix"/> is less than <see cref="F:J2N.Character.MinRadix"/> or greater than <see cref="F:J2N.Character.MaxRadix"/>.
</exception>
<remarks>
If <paramref name="radix"/> is 16, you can prefix the number specified by the <paramref name="s"/> parameter with "0x" or "0X".
<para/>
To specify a negative value for base (radix) 10 numeric representations, use the ASCII character \u002d ('-').
<para/>
For any other <paramref name="radix"/>, negative values may either be specified with ASCII character \u002d ('-')
(as in Java) or by specifying the two's complement representation (as in .NET), but not both.
In the latter case, the highest-order binary bit of an integer (bit 31) is interpreted as the sign bit.
As a result, it is possible to write code in which a non-base 10 number that is out of the range of the <see cref="T:System.Int32"/>
data type is converted to an <see cref="T:System.Int32"/> value without the method throwing an exception.
</remarks>
<seealso cref="M:J2N.Numerics.Int32.Parse(System.ReadOnlySpan{System.Char},System.Int32,System.Int32,System.Int32)"/>
<seealso cref="M:J2N.Numerics.Int32.Parse(System.ReadOnlySpan{System.Char},System.Int32)"/>
</member>
<member name="M:J2N.Numerics.Int32.TryParse(System.String,System.Int32,System.Int32@)">
<summary>
Parses the <see cref="T:System.String"/> argument as a signed <see cref="T:System.Int32"/> in the specified <paramref name="radix"/>.
<para/>
Usage Note: This method is similar to the <see cref="M:System.Convert.ToInt64(System.String,System.Int32)"/> method. It differs in that it
allows the use of the ASCII character \u002d ('-') or \u002B ('+') in any <paramref name="radix"/> and allows any
<paramref name="radix"/> value from <see cref="F:J2N.Character.MinRadix"/> to <see cref="F:J2N.Character.MaxRadix"/> inclusive.
<para/>
Since <see cref="M:J2N.Numerics.Int32.Parse(System.String,System.Int32)"/> throws many different exception types and in Java they are all normalized to
<c>NumberFormatException</c>, this method can be used to mimic the same behavior by throwing <see cref="T:System.FormatException"/>
when this method returns <c>false</c>.
</summary>
<param name="s">The <see cref="T:System.String"/> containing the <see cref="T:System.Int32"/> representation to be parsed.</param>
<param name="radix">The radix (or base) to use when parsing <paramref name="s"/>. The value must be in the range
<see cref="F:J2N.Character.MinRadix"/> - <see cref="F:J2N.Character.MaxRadix"/> inclusive.</param>
<param name="result">The signed <see cref="T:System.Int32"/> represented by the subsequence in the specified <paramref name="radix"/>.</param>
<returns><c>true</c> if <paramref name="s"/> was converted successfully; otherwise, <c>false</c>.</returns>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="radix"/> is less than <see cref="F:J2N.Character.MinRadix"/> or greater than <see cref="F:J2N.Character.MaxRadix"/>.
</exception>
<remarks>
If <paramref name="radix"/> is 16, you can prefix the number specified by the <paramref name="s"/> parameter with "0x" or "0X".
<para/>
To specify a negative value for base (radix) 10 numeric representations, use the ASCII character \u002d ('-').
<para/>
For any other <paramref name="radix"/>, negative values may either be specified with ASCII character \u002d ('-')
(as in Java) or by specifying the two's complement representation (as in .NET), but not both.
In the latter case, the highest-order binary bit of an integer (bit 31) is interpreted as the sign bit.
As a result, it is possible to write code in which a non-base 10 number that is out of the range of the <see cref="T:System.Int32"/>
data type is converted to an <see cref="T:System.Int32"/> value without the method throwing an exception.
</remarks>
<seealso cref="M:J2N.Numerics.Int32.Parse(System.String,System.Int32,System.Int32,System.Int32)"/>
<seealso cref="M:J2N.Numerics.Int32.Parse(System.String,System.Int32)"/>
</member>
<member name="M:J2N.Numerics.Int32.Parse(System.String,System.IFormatProvider)">
<summary>
Converts the string representation of a number in a specified culture-specific format to its
32-bit signed integer equivalent.
</summary>
<param name="s">A string containing a number to convert.</param>
<param name="provider">An <see cref="T:System.IFormatProvider"/> that supplies culture-specific formatting information about <paramref name="s"/>.</param>
<returns>A 32-bit signed integer equivalent to the number specified in <paramref name="s"/>.</returns>
<exception cref="T:System.ArgumentNullException"><paramref name="s"/> is <c>null</c>.</exception>
<exception cref="T:System.FormatException"><paramref name="s"/> is not in a valid <see cref="F:J2N.Globalization.NumberStyle.Integer"/> format.</exception>
<exception cref="T:System.OverflowException">
<paramref name="s"/> represents a number less than <see cref="F:System.Int32.MinValue"/> or greater than <see cref="F:System.Int32.MaxValue"/>.
</exception>
<remarks>
The <paramref name="s"/> parameter contains a number of the form:
<para/>
[ws][sign]digits[ws]
<para/>
Elements in square brackets ([ and ]) are optional. The following table describes each element.
<para/>
<list type="table">
<listheader>
<term>Element</term>
<term>Description</term>
</listheader>
<item>
<term><i>ws</i></term>
<term>A series of white-space characters.</term>
</item>
<item>
<term><i>$</i></term>
<term>A culture-specific currency symbol. Its position in the string is defined by the <see cref="P:System.Globalization.NumberFormatInfo.CurrencyNegativePattern"/>
and <see cref="P:System.Globalization.NumberFormatInfo.CurrencyPositivePattern"/> properties of the <see cref="T:System.Globalization.NumberFormatInfo"/> object returned by the
<see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> method of the <paramref name="provider"/> parameter. The current culture's currency symbol can
appear in <paramref name="s"/> if style includes the <see cref="F:J2N.Globalization.NumberStyle.AllowCurrencySymbol"/> flag.</term>
</item>
<item>
<term><i>sign</i></term>
<term>A negative sign symbol or a positive sign symbol as defined by the <see cref="T:System.Globalization.NumberFormatInfo"/> object returned from the
<see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> <paramref name="provider"/>.</term>
</item>
<item>
<term><i>digits</i></term>
<term>A series of digits ranging from 0 to 9.</term>
</item>
</list>
<para/>
The <paramref name="s"/> parameter is interpreted using the <see cref="F:J2N.Globalization.NumberStyle.Integer"/> style. In addition to decimal digits, only
leading and trailing spaces together with a leading sign are allowed in <paramref name="s"/>. To explicitly define the style elements
together with the culture-specific formatting information that can be present in <paramref name="s"/>, use the
<see cref="M:J2N.Numerics.Int32.Parse(System.String,J2N.Globalization.NumberStyle,System.IFormatProvider)"/> method.
<para/>
The <paramref name="provider"/> parameter is an <see cref="T:System.IFormatProvider"/> implementation, such as a <see cref="T:System.Globalization.CultureInfo"/> object,
a <see cref="T:System.Globalization.NumberFormatInfo"/> object or a <see cref="T:J2N.Text.StringFormatter"/> object, whose <see cref="M:System.IFormatProvider.GetFormat(System.Type)"/>
method returns a <see cref="T:System.Globalization.NumberFormatInfo"/> object. The <see cref="T:System.Globalization.NumberFormatInfo"/> object provides culture-specific information about
the format of <paramref name="s"/>. When the <see cref="M:J2N.Numerics.Int32.Parse(System.String,System.IFormatProvider)"/> method is invoked, it calls the provider parameter's
<see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> method and passes it a <see cref="T:System.Type"/> object that represents the <see cref="T:System.Globalization.NumberFormatInfo"/> type.
The <see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> method then returns the <see cref="T:System.Globalization.NumberFormatInfo"/> object that provides information about the
format of the <paramref name="s"/> parameter. There are three ways to use the <paramref name="provider"/> parameter to supply custom formatting
information to the parse operation:
<list type="bullet">
<item><description>You can pass a <see cref="T:System.Globalization.CultureInfo"/> object that represents the culture that supplies formatting information. Its
<see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> method returns the <see cref="T:System.Globalization.NumberFormatInfo"/> object that provides numeric formatting
information for that culture.</description></item>
<item><description>You can pass the actual <see cref="T:System.Globalization.NumberFormatInfo"/> object that provides numeric formatting information. (Its
implementation of <see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> just returns itself.)</description></item>
<item><description>You can pass a custom object that implements <see cref="T:System.IFormatProvider"/>. Its <see cref="M:System.IFormatProvider.GetFormat(System.Type)"/>
method instantiates and returns the <see cref="T:System.Globalization.NumberFormatInfo"/> object that provides formatting information.</description></item>
</list>
If <paramref name="provider"/> is <c>null</c> or a <see cref="T:System.Globalization.NumberFormatInfo"/> object cannot be obtained, the <see cref="T:System.Globalization.NumberFormatInfo"/>
object for the current culture is used.
</remarks>
<seealso cref="M:J2N.Numerics.Int32.TryParse(System.String,J2N.Globalization.NumberStyle,System.IFormatProvider,System.Int32@)"/>
<seealso cref="M:J2N.Numerics.Int32.GetInstance(System.String,J2N.Globalization.NumberStyle,System.IFormatProvider)"/>
</member>
<member name="M:J2N.Numerics.Int32.TryParse(System.String,System.Int32@)">
<summary>
Converts the string representation of a number to its 32-bit signed integer equivalent.
A return value indicates whether the conversion succeeded.
<para/>
Usage Note: When porting from Java, note that this is a culture-sensitive method. Java uses the invariant
culture in the Integer class, so call <see cref="M:J2N.Numerics.Int32.TryParse(System.String,J2N.Globalization.NumberStyle,System.IFormatProvider,System.Int32@)"/>
and pass <see cref="F:J2N.Globalization.NumberStyle.AllowLeadingSign"/> and <see cref="P:System.Globalization.NumberFormatInfo.InvariantInfo"/> to exactly match the Java parsing behavior.
<para/>
Using that overload also allows you to normalize the exception behavior. The <see cref="M:J2N.Numerics.Int32.Parse(System.String,System.IFormatProvider)"/>
method may throw <see cref="T:System.ArgumentNullException"/>, <see cref="T:System.OverflowException"/>, or <see cref="T:System.FormatException"/>,
but Java only ever throws NumberFormatException in any of those cases. Using <see cref="M:J2N.Numerics.Int32.TryParse(System.String,J2N.Globalization.NumberStyle,System.IFormatProvider,System.Int32@)"/>
means a <see cref="T:System.FormatException"/> can be thrown in any of those error condtions when it returns <c>false</c>.
</summary>
<param name="s">A string containing a number to convert.</param>
<param name="result">When this method returns, contains the 32-bit signed integer value equivalent of
the number contained in <paramref name="s"/>, if the conversion succeeded, or zero if the conversion failed.
The conversion fails if the s parameter is <c>null</c> or <see cref="F:System.String.Empty"/>, is not of the correct format,
or represents a number less than <see cref="F:System.Int32.MinValue"/> or greater than <see cref="F:System.Int32.MaxValue"/>. This parameter
is passed uninitialized; any value originally supplied in <paramref name="result"/> will be overwritten.</param>
<returns><c>true</c> if <paramref name="s"/> was converted successfully; otherwise, <c>false</c>.</returns>
<remarks>
The <see cref="M:J2N.Numerics.Int32.TryParse(System.String,System.Int32@)"/> method is like the <see cref="M:J2N.Numerics.Int32.Parse(System.String,System.IFormatProvider)"/> method,
except the <see cref="M:J2N.Numerics.Int32.TryParse(System.String,System.Int32@)"/> method does not throw an exception if the
conversion fails. It eliminates the need to use exception handling to test for a <see cref="T:System.FormatException"/>
in the event that <paramref name="s"/> is invalid and cannot be successfully parsed.
<para/>
The <paramref name="s"/> parameter contains a number of the form:
<code>
[ws][sign]digits[ws]
</code>
Items in square brackets ([ and ]) are optional. The following table describes each element.
<list type="table">
<listheader>
<term>Element</term>
<term>Description</term>
</listheader>
<item>
<term><i>ws</i></term>
<term>Optional white space.</term>
</item>
<item>
<term><i>sign</i></term>
<term>An optional sign.</term>
</item>
<item>
<term><i>digits</i></term>
<term>A sequence of digits ranging from 0 to 9.</term>
</item>
</list>
<para/>
The <paramref name="s"/> parameter is interpreted using the <see cref="F:J2N.Globalization.NumberStyle.Integer"/> style.
In addition to the decimal digits, only leading and trailing spaces together with a leading sign are
allowed. To explicitly define the style elements together with the culture-specific formatting
information that can be present in <paramref name="s"/>, use the <see cref="M:J2N.Numerics.Int32.TryParse(System.String,J2N.Globalization.NumberStyle,System.IFormatProvider,System.Int32@)"/> method.
<para/>
The <paramref name="s"/> parameter is parsed using the formatting information in a <see cref="T:System.Globalization.NumberFormatInfo"/>
object initialized for the current system culture. For more information, see <see cref="P:System.Globalization.NumberFormatInfo.CurrentInfo"/>.
<para/>
This overload of the <see cref="M:J2N.Numerics.Int32.TryParse(System.String,System.Int32@)"/> method interprets all digits in the <paramref name="s"/> parameter
as decimal digits. To parse the string representation of a hexadecimal number, call the
<see cref="M:J2N.Numerics.Int32.TryParse(System.String,J2N.Globalization.NumberStyle,System.IFormatProvider,System.Int32@)"/> overload.
</remarks>
<seealso cref="M:J2N.Numerics.Int32.Parse(System.String,System.IFormatProvider)"/>
<seealso cref="M:J2N.Numerics.Int32.Parse(System.String,System.Int32)"/>
<seealso cref="M:J2N.Numerics.Number.ToString"/>
</member>
<member name="M:J2N.Numerics.Int32.TryParse(System.ReadOnlySpan{System.Char},System.Int32@)">
<summary>
Converts the span representation of a number in a specified style and culture-specific format to its 32-bit signed
integer equivalent. A return value indicates whether the conversion succeeded.
<para/>
Usage Note: When porting from Java, note that this is a culture-sensitive method. Java uses the invariant
culture in the Integer class, so call <see cref="M:J2N.Numerics.Int32.TryParse(System.ReadOnlySpan{System.Char},J2N.Globalization.NumberStyle,System.IFormatProvider,System.Int32@)"/>
and pass <see cref="F:J2N.Globalization.NumberStyle.AllowLeadingSign"/> and <see cref="P:System.Globalization.NumberFormatInfo.InvariantInfo"/> to exactly match the Java parsing behavior.
<para/>
Using that overload also allows you to normalize the exception behavior. The <see cref="M:J2N.Numerics.Int32.Parse(System.String,System.IFormatProvider)"/>
method may throw <see cref="T:System.ArgumentNullException"/>, <see cref="T:System.OverflowException"/>, or <see cref="T:System.FormatException"/>,
but Java only ever throws NumberFormatException in any of those cases. Using <see cref="M:J2N.Numerics.Int32.TryParse(System.ReadOnlySpan{System.Char},J2N.Globalization.NumberStyle,System.IFormatProvider,System.Int32@)"/>
means a <see cref="T:System.FormatException"/> can be thrown in any of those error condtions when it returns <c>false</c>.
</summary>
<param name="s">A span containing the characters that represent the number to convert.</param>
<param name="result">When this method returns, contains the 32-bit signed integer value equivalent of
the number contained in <paramref name="s"/>, if the conversion succeeded, or zero if the conversion failed.
The conversion fails if the s parameter is <c>null</c> or <see cref="F:System.String.Empty"/>, is not of the correct format,
or represents a number less than <see cref="F:System.Int32.MinValue"/> or greater than <see cref="F:System.Int32.MaxValue"/>. This parameter
is passed uninitialized; any value originally supplied in <paramref name="result"/> will be overwritten.</param>
<returns><c>true</c> if <paramref name="s"/> was converted successfully; otherwise, <c>false</c>.</returns>
<remarks>
The <see cref="M:J2N.Numerics.Int32.TryParse(System.ReadOnlySpan{System.Char},System.Int32@)"/> method is like the <see cref="M:J2N.Numerics.Int32.Parse(System.ReadOnlySpan{System.Char},J2N.Globalization.NumberStyle,System.IFormatProvider)"/> method,
except the <see cref="M:J2N.Numerics.Int32.TryParse(System.ReadOnlySpan{System.Char},System.Int32@)"/> method does not throw an exception if the
conversion fails. It eliminates the need to use exception handling to test for a <see cref="T:System.FormatException"/>
in the event that <paramref name="s"/> is invalid and cannot be successfully parsed.
<para/>
The <paramref name="s"/> parameter contains a number of the form:
<code>
[ws][sign]digits[ws]
</code>
Items in square brackets ([ and ]) are optional. The following table describes each element.
<list type="table">
<listheader>
<term>Element</term>
<term>Description</term>
</listheader>
<item>
<term><i>ws</i></term>
<term>Optional white space.</term>
</item>
<item>
<term><i>sign</i></term>
<term>An optional sign.</term>
</item>
<item>
<term><i>digits</i></term>
<term>A sequence of digits ranging from 0 to 9.</term>
</item>
</list>
<para/>
The <paramref name="s"/> parameter is interpreted using the <see cref="F:J2N.Globalization.NumberStyle.Integer"/> style.
In addition to the decimal digits, only leading and trailing spaces together with a leading sign are
allowed. To explicitly define the style elements together with the culture-specific formatting
information that can be present in <paramref name="s"/>, use the <see cref="M:J2N.Numerics.Int32.TryParse(System.ReadOnlySpan{System.Char},J2N.Globalization.NumberStyle,System.IFormatProvider,System.Int32@)"/> method.
<para/>
The <paramref name="s"/> parameter is parsed using the formatting information in a <see cref="T:System.Globalization.NumberFormatInfo"/>
object initialized for the current system culture. For more information, see <see cref="P:System.Globalization.NumberFormatInfo.CurrentInfo"/>.
<para/>
This overload of the <see cref="M:J2N.Numerics.Int32.TryParse(System.ReadOnlySpan{System.Char},System.Int32@)"/> method interprets all digits in the <paramref name="s"/> parameter
as decimal digits. To parse the string representation of a hexadecimal number, call the
<see cref="M:J2N.Numerics.Int32.TryParse(System.ReadOnlySpan{System.Char},J2N.Globalization.NumberStyle,System.IFormatProvider,System.Int32@)"/> overload.
</remarks>
<seealso cref="M:J2N.Numerics.Int32.Parse(System.ReadOnlySpan{System.Char},J2N.Globalization.NumberStyle,System.IFormatProvider)"/>
<seealso cref="M:J2N.Numerics.Int32.TryParse(System.String,System.Int32@)"/>
<seealso cref="M:J2N.Numerics.Number.ToString"/>
</member>
<member name="M:J2N.Numerics.Int32.Parse(System.String,J2N.Globalization.NumberStyle,System.IFormatProvider)">
<summary>
Converts the string representation of a number in a specified style and culture-specific format to its
32-bit signed integer equivalent.
</summary>
<param name="s">A string containing a number to convert.</param>
<param name="style">A bitwise combination of enumeration values that indicates the style elements that can be
present in <paramref name="s"/>. A typical value to specify is <see cref="F:J2N.Globalization.NumberStyle.Integer"/>.</param>
<param name="provider">An <see cref="T:System.IFormatProvider"/> that supplies culture-specific formatting information about <paramref name="s"/>.</param>
<returns>A 32-bit signed integer equivalent to the number specified in <paramref name="s"/>.</returns>
<exception cref="T:System.ArgumentNullException"><paramref name="s"/> is <c>null</c>.</exception>
<exception cref="T:System.ArgumentException">
<paramref name="style"/> is not a <see cref="T:J2N.Globalization.NumberStyle"/> value.
<para/>
-or-
<para/>
<paramref name="style"/> is not a combination of <see cref="F:J2N.Globalization.NumberStyle.AllowHexSpecifier"/> and <see cref="F:J2N.Globalization.NumberStyle.HexNumber"/> values.
</exception>
<exception cref="T:System.FormatException"><paramref name="s"/> is not in a format compliant with <paramref name="style"/>.</exception>
<exception cref="T:System.OverflowException">
<paramref name="s"/> represents a number less than <see cref="F:System.Int32.MinValue"/> or greater than <see cref="F:System.Int32.MaxValue"/>.
<para/>
-or-
<para/>
<paramref name="s"/> includes non-zero fractional digits.
</exception>
<remarks>
The <paramref name="style"/> parameter defines the style elements (such as white space or the positive sign) that are allowed in the
<paramref name="s"/> parameter for the parse operation to succeed. It must be a combination of bit flags from the <see cref="T:J2N.Globalization.NumberStyle"/>
enumeration. Depending on the value of <paramref name="style"/>, the <paramref name="s"/> parameter may include the following elements:
<para/>
[ws][$][sign][digits,]digits[.fractional-digits][e[sign]exponential-digits][type][ws]
<para/>
Or, if the <paramref name="style"/> parameter includes <see cref="F:J2N.Globalization.NumberStyle.AllowHexSpecifier"/>:
<para/>
[ws][0x]hexdigits[hextype][ws]
<para/>
Elements framed in square brackets ([ and ]) are optional. The following table describes each element.
<para/>
<list type="table">
<listheader>
<term>Element</term>
<term>Description</term>
</listheader>
<item>
<term><i>ws</i></term>
<term>A series of white-space characters. White space can appear at the beginning of <paramref name="s"/> if style includes the
<see cref="F:J2N.Globalization.NumberStyle.AllowLeadingWhite"/> flag, and it can appear at the end of <paramref name="s"/> if style includes the
<see cref="F:J2N.Globalization.NumberStyle.AllowTrailingWhite"/> flag.</term>
</item>
<item>
<term><i>$</i></term>
<term>A culture-specific currency symbol. Its position in the string is defined by the <see cref="P:System.Globalization.NumberFormatInfo.CurrencyNegativePattern"/>
and <see cref="P:System.Globalization.NumberFormatInfo.CurrencyPositivePattern"/> properties of the <see cref="T:System.Globalization.NumberFormatInfo"/> object returned by the
<see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> method of the <paramref name="provider"/> parameter. The current culture's currency symbol can
appear in <paramref name="s"/> if style includes the <see cref="F:J2N.Globalization.NumberStyle.AllowCurrencySymbol"/> flag.</term>
</item>
<item>
<term><i>sign</i></term>
<term>A negative sign symbol (-) or a positive sign symbol (+). The sign can appear at the beginning of <paramref name="s"/> if
<paramref name="style"/> includes the <see cref="F:J2N.Globalization.NumberStyle.AllowLeadingSign"/> flag, and it can appear at the end of <paramref name="s"/>
if <paramref name="style"/> includes the <see cref="F:J2N.Globalization.NumberStyle.AllowTrailingSign"/> flag. Parentheses can be used in <paramref name="s"/>
to indicate a negative value if <paramref name="style"/> includes the <see cref="F:J2N.Globalization.NumberStyle.AllowParentheses"/> flag.</term>
</item>
<item>
<term><i>digits</i></term>
<term>A series of digits ranging from 0 to 9.</term>
</item>
<item>
<term><i>.</i></term>
<term>A culture-specific decimal point symbol. The decimal point symbol of the culture specified by <paramref name="provider"/>
can appear in <paramref name="s"/> if <paramref name="style"/> includes the <see cref="F:J2N.Globalization.NumberStyle.AllowDecimalPoint"/> flag.</term>
</item>
<item>
<term><i>fractional-digits</i>
</term>
<term>A series of digits ranging from 0 to 9 that specify the fractional part of the number. Fractional digits can appear in
<paramref name="s"/> if <paramref name="style"/> includes the <see cref="F:J2N.Globalization.NumberStyle.AllowDecimalPoint"/> flag.</term>
</item>
<item>
<term><i>e</i></term>
<term>The 'e' or 'E' character, which indicates that the value is represented in exponential notation. The <paramref name="s"/>
parameter can represent a number in exponential notation if <paramref name="style"/> includes the <see cref="F:J2N.Globalization.NumberStyle.AllowExponent"/> flag.</term>
</item>
<item>
<term><i>exponential-digits</i></term>
<term>A sequence of decimal digits from 0 through 9 that specify an exponent.</term>
</item>
<item>
<term><i>0x</i>/></term>
<term>The '0x' or '0X' characters, which indicate a hexadecimal number is to immediately follow.</term>
</item>
<item>
<term><i>hexdigits</i></term>
<term>A sequence of hexadecimal digits from 0 through f, or 0 through F. Hexadecimal digits can appear in <paramref name="s"/>
if <paramref name="style"/> includes the <see cref="F:J2N.Globalization.NumberStyle.AllowHexSpecifier"/> flag.</term>
</item>
<item>
<term><i>type</i></term>
<term>The 'UL', 'Ul', 'uL', 'ul', 'LU', 'Lu', 'lU', or 'lu', which is the
<a href="https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/language-specification/lexical-structure#6453-integer-literals">integral type suffix</a>
or 'f', 'F', 'd', 'D', 'm' or 'M' character, which is the
<a href="https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/language-specification/lexical-structure#6454-real-literals">real type suffix</a>
of the number as specified in the C# language specification. The type suffix can appear in <paramref name="s"/> if <paramref name="style"/>
includes the <see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/> flag.</term>
</item>
<item>
<term><i>hextype</i></term>
<term>The 'UL', 'Ul', 'uL', 'ul', 'LU', 'Lu', 'lU', or 'lu', which is the
<a href="https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/language-specification/lexical-structure#6453-integer-literals">integral type suffix</a>
of the number as specified in the C# language specification. The type suffix can appear in <paramref name="s"/> if <paramref name="style"/>
includes the <see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/> flag. Real type suffixes are not supported.</term>
</item>
</list>
<para/>
NOTE: Any terminating NUL (U+0000) characters in <paramref name="s"/> are ignored by the parsing operation, regardless of
the value of the <paramref name="style"/> argument.
<para/>
A string with decimal digits only (which corresponds to the <see cref="F:J2N.Globalization.NumberStyle.None"/> flag) always parses successfully.
Most of the remaining <see cref="T:J2N.Globalization.NumberStyle"/> members control elements that may be but are not required to be present in
this input string. The following table indicates how individual <see cref="T:J2N.Globalization.NumberStyle"/> members affect the elements that may
be present in <paramref name="s"/>.
<list type="table">
<listheader>
<term>Non-composite NumberStyle values</term>
<term>Elements permitted in <paramref name="s"/> in addition to digits</term>
</listheader>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.None"/></term>
<term>Decimal digits only.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowDecimalPoint"/></term>
<term>The decimal point (.) and <i>fractional-digits</i> elements. However, <i>fractional-digits</i> must consist
of only one or more 0 digits or the method returns <c>false</c>.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowExponent"/></term>
<term>The <paramref name="s"/> parameter can also use exponential notation. If <paramref name="s"/> represents a
number in exponential notation, it must represent an integer within the range of the <see cref="T:System.Int32"/> data type
without a non-zero, fractional component.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowLeadingWhite"/></term>
<term>The <i>ws</i> element at the beginning of <paramref name="s"/>.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowTrailingWhite"/></term>
<term>The <i>ws</i> element at the end of <paramref name="s"/>.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowLeadingSign"/></term>
<term>A sign can appear before <i>digits</i>.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowTrailingSign"/></term>
<term>A sign can appear after <i>digits</i>.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowParentheses"/></term>
<term>The <i>sign</i> element in the form of parentheses enclosing the numeric value.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowThousands"/></term>
<term>The thousands separator (,) element.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowCurrencySymbol"/></term>
<term>The <i>$</i> element.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/></term>
<term>The literal <i>type</i> suffix used in the literal identifier syntax of C# (suffixed with one of
'D', 'd', 'F', 'f', 'M', 'm', 'L', 'l', 'U', 'u', 'UL', 'ul', 'LU', or 'lu').</term>
</item>
</list>
<para/>
The <see cref="T:J2N.Globalization.NumberStyle"/> enum can be converted to the .NET <see cref="T:System.Globalization.NumberStyles"/> enum by using the
<see cref="M:J2N.Globalization.NumberStyleExtensions.ToNumberStyles(J2N.Globalization.NumberStyle)"/> extension method.
Similarly, <see cref="T:System.Globalization.NumberStyles"/> enum can be converted to the J2N <see cref="T:J2N.Globalization.NumberStyle"/> enum by using
the <see cref="M:J2N.Globalization.NumberStyleExtensions.ToNumberStyle(System.Globalization.NumberStyles)"/> extension method.
<para/>
If the <see cref="F:J2N.Globalization.NumberStyle.AllowHexSpecifier"/> flag is used, <paramref name="s"/> must be a hexadecimal value with or without a <c>0x</c> prefix.
For example, "F3" and "0xF3" both parse successfully. The only other flags that can be present in <paramref name="style"/> are
<see cref="F:J2N.Globalization.NumberStyle.AllowLeadingWhite"/>, <see cref="F:J2N.Globalization.NumberStyle.AllowTrailingWhite"/> and <see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/>.
(The <see cref="T:J2N.Globalization.NumberStyle"/> enumeration has a composite number style, <see cref="F:J2N.Globalization.NumberStyle.HexNumber"/>, that includes both white space
flags.)
The <see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/> only allows 'L', 'l', 'U', 'u', 'UL', 'ul', 'LU', or 'lu' for hexadecimal numbers.
<para/>
The <paramref name="provider"/> parameter is an <see cref="T:System.IFormatProvider"/> implementation, such as a <see cref="T:System.Globalization.CultureInfo"/> object,
a <see cref="T:System.Globalization.NumberFormatInfo"/> object or a <see cref="T:J2N.Text.StringFormatter"/> object, whose <see cref="M:System.IFormatProvider.GetFormat(System.Type)"/>
method returns a <see cref="T:System.Globalization.NumberFormatInfo"/> object. The <see cref="T:System.Globalization.NumberFormatInfo"/> object provides culture-specific information about
the format of <paramref name="s"/>. When the <see cref="M:J2N.Numerics.Int32.Parse(System.String,System.IFormatProvider)"/> method is invoked, it calls the provider parameter's
<see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> method and passes it a <see cref="T:System.Type"/> object that represents the <see cref="T:System.Globalization.NumberFormatInfo"/> type.
The <see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> method then returns the <see cref="T:System.Globalization.NumberFormatInfo"/> object that provides information about the
format of the <paramref name="s"/> parameter. There are three ways to use the <paramref name="provider"/> parameter to supply custom formatting
information to the parse operation:
<list type="bullet">
<item><description>You can pass a <see cref="T:System.Globalization.CultureInfo"/> object that represents the culture that supplies formatting information. Its
<see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> method returns the <see cref="T:System.Globalization.NumberFormatInfo"/> object that provides numeric formatting
information for that culture.</description></item>
<item><description>You can pass the actual <see cref="T:System.Globalization.NumberFormatInfo"/> object that provides numeric formatting information. (Its
implementation of <see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> just returns itself.)</description></item>
<item><description>You can pass a custom object that implements <see cref="T:System.IFormatProvider"/>. Its <see cref="M:System.IFormatProvider.GetFormat(System.Type)"/>
method instantiates and returns the <see cref="T:System.Globalization.NumberFormatInfo"/> object that provides formatting information.</description></item>
</list>
If <paramref name="provider"/> is <c>null</c> or a <see cref="T:System.Globalization.NumberFormatInfo"/> object cannot be obtained, the <see cref="T:System.Globalization.NumberFormatInfo"/>
object for the current culture is used.
</remarks>
<seealso cref="M:J2N.Numerics.Int32.TryParse(System.String,J2N.Globalization.NumberStyle,System.IFormatProvider,System.Int32@)"/>
<seealso cref="M:J2N.Numerics.Int32.GetInstance(System.String,J2N.Globalization.NumberStyle,System.IFormatProvider)"/>
</member>
<member name="M:J2N.Numerics.Int32.Parse(System.ReadOnlySpan{System.Char},J2N.Globalization.NumberStyle,System.IFormatProvider)">
<summary>
Converts the string representation of a number in a specified style and culture-specific format to its
32-bit signed integer equivalent.
</summary>
<param name="s">A string containing a number to convert.</param>
<param name="style">A bitwise combination of enumeration values that indicates the style elements that can be
present in <paramref name="s"/>. A typical value to specify is <see cref="F:J2N.Globalization.NumberStyle.Integer"/>.</param>
<param name="provider">An <see cref="T:System.IFormatProvider"/> that supplies culture-specific formatting information about <paramref name="s"/>.</param>
<returns>A 32-bit signed integer equivalent to the number specified in <paramref name="s"/>.</returns>
<exception cref="T:System.ArgumentException">
<paramref name="style"/> is not a <see cref="T:J2N.Globalization.NumberStyle"/> value.
<para/>
-or-
<para/>
<paramref name="style"/> is not a combination of <see cref="F:J2N.Globalization.NumberStyle.AllowHexSpecifier"/> and <see cref="F:J2N.Globalization.NumberStyle.HexNumber"/> values.
</exception>
<exception cref="T:System.FormatException"><paramref name="s"/> is not in a format compliant with <paramref name="style"/>.</exception>
<exception cref="T:System.OverflowException">
<paramref name="s"/> represents a number less than <see cref="F:System.Int32.MinValue"/> or greater than <see cref="F:System.Int32.MaxValue"/>.
<para/>
-or-
<para/>
<paramref name="s"/> includes non-zero fractional digits.
</exception>
<remarks>
The <paramref name="style"/> parameter defines the style elements (such as white space or the positive sign) that are allowed in the
<paramref name="s"/> parameter for the parse operation to succeed. It must be a combination of bit flags from the <see cref="T:J2N.Globalization.NumberStyle"/>
enumeration. Depending on the value of <paramref name="style"/>, the <paramref name="s"/> parameter may include the following elements:
<para/>
[ws][$][sign][digits,]digits[.fractional-digits][e[sign]exponential-digits][type][ws]
<para/>
Or, if the <paramref name="style"/> parameter includes <see cref="F:J2N.Globalization.NumberStyle.AllowHexSpecifier"/>:
<para/>
[ws][0x]hexdigits[hextype][ws]
<para/>
Elements framed in square brackets ([ and ]) are optional. The following table describes each element.
<para/>
<list type="table">
<listheader>
<term>Element</term>
<term>Description</term>
</listheader>
<item>
<term><i>ws</i></term>
<term>A series of white-space characters. White space can appear at the beginning of <paramref name="s"/> if style includes the
<see cref="F:J2N.Globalization.NumberStyle.AllowLeadingWhite"/> flag, and it can appear at the end of <paramref name="s"/> if style includes the
<see cref="F:J2N.Globalization.NumberStyle.AllowTrailingWhite"/> flag.</term>
</item>
<item>
<term><i>$</i></term>
<term>A culture-specific currency symbol. Its position in the string is defined by the <see cref="P:System.Globalization.NumberFormatInfo.CurrencyNegativePattern"/>
and <see cref="P:System.Globalization.NumberFormatInfo.CurrencyPositivePattern"/> properties of the <see cref="T:System.Globalization.NumberFormatInfo"/> object returned by the
<see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> method of the <paramref name="provider"/> parameter. The current culture's currency symbol can
appear in <paramref name="s"/> if style includes the <see cref="F:J2N.Globalization.NumberStyle.AllowCurrencySymbol"/> flag.</term>
</item>
<item>
<term><i>sign</i></term>
<term>A negative sign symbol (-) or a positive sign symbol (+). The sign can appear at the beginning of <paramref name="s"/> if
<paramref name="style"/> includes the <see cref="F:J2N.Globalization.NumberStyle.AllowLeadingSign"/> flag, and it can appear at the end of <paramref name="s"/>
if <paramref name="style"/> includes the <see cref="F:J2N.Globalization.NumberStyle.AllowTrailingSign"/> flag. Parentheses can be used in <paramref name="s"/>
to indicate a negative value if <paramref name="style"/> includes the <see cref="F:J2N.Globalization.NumberStyle.AllowParentheses"/> flag.</term>
</item>
<item>
<term><i>digits</i></term>
<term>A series of digits ranging from 0 to 9.</term>
</item>
<item>
<term><i>.</i></term>
<term>A culture-specific decimal point symbol. The decimal point symbol of the culture specified by <paramref name="provider"/>
can appear in <paramref name="s"/> if <paramref name="style"/> includes the <see cref="F:J2N.Globalization.NumberStyle.AllowDecimalPoint"/> flag.</term>
</item>
<item>
<term><i>fractional-digits</i>
</term>
<term>A series of digits ranging from 0 to 9 that specify the fractional part of the number. Fractional digits can appear in
<paramref name="s"/> if <paramref name="style"/> includes the <see cref="F:J2N.Globalization.NumberStyle.AllowDecimalPoint"/> flag.</term>
</item>
<item>
<term><i>e</i></term>
<term>The 'e' or 'E' character, which indicates that the value is represented in exponential notation. The <paramref name="s"/>
parameter can represent a number in exponential notation if <paramref name="style"/> includes the <see cref="F:J2N.Globalization.NumberStyle.AllowExponent"/> flag.</term>
</item>
<item>
<term><i>exponential-digits</i></term>
<term>A sequence of decimal digits from 0 through 9 that specify an exponent.</term>
</item>
<item>
<term><i>0x</i>/></term>
<term>The '0x' or '0X' characters, which indicate a hexadecimal number is to immediately follow.</term>
</item>
<item>
<term><i>hexdigits</i></term>
<term>A sequence of hexadecimal digits from 0 through f, or 0 through F. Hexadecimal digits can appear in <paramref name="s"/>
if <paramref name="style"/> includes the <see cref="F:J2N.Globalization.NumberStyle.AllowHexSpecifier"/> flag.</term>
</item>
<item>
<term><i>type</i></term>
<term>The 'UL', 'Ul', 'uL', 'ul', 'LU', 'Lu', 'lU', or 'lu', which is the
<a href="https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/language-specification/lexical-structure#6453-integer-literals">integral type suffix</a>
or 'f', 'F', 'd', 'D', 'm' or 'M' character, which is the
<a href="https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/language-specification/lexical-structure#6454-real-literals">real type suffix</a>
of the number as specified in the C# language specification. The type suffix can appear in <paramref name="s"/> if <paramref name="style"/>
includes the <see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/> flag.</term>
</item>
<item>
<term><i>hextype</i></term>
<term>The 'UL', 'Ul', 'uL', 'ul', 'LU', 'Lu', 'lU', or 'lu', which is the
<a href="https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/language-specification/lexical-structure#6453-integer-literals">integral type suffix</a>
of the number as specified in the C# language specification. The type suffix can appear in <paramref name="s"/> if <paramref name="style"/>
includes the <see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/> flag. Real type suffixes are not supported.</term>
</item>
</list>
<para/>
NOTE: Any terminating NUL (U+0000) characters in <paramref name="s"/> are ignored by the parsing operation, regardless of
the value of the <paramref name="style"/> argument.
<para/>
A string with decimal digits only (which corresponds to the <see cref="F:J2N.Globalization.NumberStyle.None"/> flag) always parses successfully.
Most of the remaining <see cref="T:J2N.Globalization.NumberStyle"/> members control elements that may be but are not required to be present in
this input string. The following table indicates how individual <see cref="T:J2N.Globalization.NumberStyle"/> members affect the elements that may
be present in <paramref name="s"/>.
<list type="table">
<listheader>
<term>Non-composite NumberStyle values</term>
<term>Elements permitted in <paramref name="s"/> in addition to digits</term>
</listheader>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.None"/></term>
<term>Decimal digits only.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowDecimalPoint"/></term>
<term>The decimal point (.) and <i>fractional-digits</i> elements. However, <i>fractional-digits</i> must consist
of only one or more 0 digits or the method returns <c>false</c>.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowExponent"/></term>
<term>The <paramref name="s"/> parameter can also use exponential notation. If <paramref name="s"/> represents a
number in exponential notation, it must represent an integer within the range of the <see cref="T:System.Int32"/> data type
without a non-zero, fractional component.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowLeadingWhite"/></term>
<term>The <i>ws</i> element at the beginning of <paramref name="s"/>.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowTrailingWhite"/></term>
<term>The <i>ws</i> element at the end of <paramref name="s"/>.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowLeadingSign"/></term>
<term>A sign can appear before <i>digits</i>.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowTrailingSign"/></term>
<term>A sign can appear after <i>digits</i>.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowParentheses"/></term>
<term>The <i>sign</i> element in the form of parentheses enclosing the numeric value.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowThousands"/></term>
<term>The thousands separator (,) element.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowCurrencySymbol"/></term>
<term>The <i>$</i> element.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/></term>
<term>The literal <i>type</i> suffix used in the literal identifier syntax of C# (suffixed with one of
'D', 'd', 'F', 'f', 'M', 'm', 'L', 'l', 'U', 'u', 'UL', 'ul', 'LU', or 'lu').</term>
</item>
</list>
<para/>
The <see cref="T:J2N.Globalization.NumberStyle"/> enum can be converted to the .NET <see cref="T:System.Globalization.NumberStyles"/> enum by using the
<see cref="M:J2N.Globalization.NumberStyleExtensions.ToNumberStyles(J2N.Globalization.NumberStyle)"/> extension method.
Similarly, <see cref="T:System.Globalization.NumberStyles"/> enum can be converted to the J2N <see cref="T:J2N.Globalization.NumberStyle"/> enum by using
the <see cref="M:J2N.Globalization.NumberStyleExtensions.ToNumberStyle(System.Globalization.NumberStyles)"/> extension method.
<para/>
If the <see cref="F:J2N.Globalization.NumberStyle.AllowHexSpecifier"/> flag is used, <paramref name="s"/> must be a hexadecimal value with or without a <c>0x</c> prefix.
For example, "F3" and "0xF3" both parse successfully. The only other flags that can be present in <paramref name="style"/> are
<see cref="F:J2N.Globalization.NumberStyle.AllowLeadingWhite"/>, <see cref="F:J2N.Globalization.NumberStyle.AllowTrailingWhite"/> and <see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/>.
(The <see cref="T:J2N.Globalization.NumberStyle"/> enumeration has a composite number style, <see cref="F:J2N.Globalization.NumberStyle.HexNumber"/>, that includes both white space
flags.)
The <see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/> only allows 'L', 'l', 'U', 'u', 'UL', 'ul', 'LU', or 'lu' for hexadecimal numbers.
<para/>
The <paramref name="provider"/> parameter is an <see cref="T:System.IFormatProvider"/> implementation, such as a <see cref="T:System.Globalization.CultureInfo"/> object,
a <see cref="T:System.Globalization.NumberFormatInfo"/> object or a <see cref="T:J2N.Text.StringFormatter"/> object, whose <see cref="M:System.IFormatProvider.GetFormat(System.Type)"/>
method returns a <see cref="T:System.Globalization.NumberFormatInfo"/> object. The <see cref="T:System.Globalization.NumberFormatInfo"/> object provides culture-specific information about
the format of <paramref name="s"/>. When the <see cref="M:J2N.Numerics.Int32.Parse(System.String,System.IFormatProvider)"/> method is invoked, it calls the provider parameter's
<see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> method and passes it a <see cref="T:System.Type"/> object that represents the <see cref="T:System.Globalization.NumberFormatInfo"/> type.
The <see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> method then returns the <see cref="T:System.Globalization.NumberFormatInfo"/> object that provides information about the
format of the <paramref name="s"/> parameter. There are three ways to use the <paramref name="provider"/> parameter to supply custom formatting
information to the parse operation:
<list type="bullet">
<item><description>You can pass a <see cref="T:System.Globalization.CultureInfo"/> object that represents the culture that supplies formatting information. Its
<see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> method returns the <see cref="T:System.Globalization.NumberFormatInfo"/> object that provides numeric formatting
information for that culture.</description></item>
<item><description>You can pass the actual <see cref="T:System.Globalization.NumberFormatInfo"/> object that provides numeric formatting information. (Its
implementation of <see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> just returns itself.)</description></item>
<item><description>You can pass a custom object that implements <see cref="T:System.IFormatProvider"/>. Its <see cref="M:System.IFormatProvider.GetFormat(System.Type)"/>
method instantiates and returns the <see cref="T:System.Globalization.NumberFormatInfo"/> object that provides formatting information.</description></item>
</list>
If <paramref name="provider"/> is <c>null</c> or a <see cref="T:System.Globalization.NumberFormatInfo"/> object cannot be obtained, the <see cref="T:System.Globalization.NumberFormatInfo"/>
object for the current culture is used.
</remarks>
<seealso cref="M:J2N.Numerics.Int32.TryParse(System.ReadOnlySpan{System.Char},J2N.Globalization.NumberStyle,System.IFormatProvider,System.Int32@)"/>
<seealso cref="M:J2N.Numerics.Int32.GetInstance(System.String,J2N.Globalization.NumberStyle,System.IFormatProvider)"/>
</member>
<member name="M:J2N.Numerics.Int32.TryParse(System.String,J2N.Globalization.NumberStyle,System.IFormatProvider,System.Int32@)">
<summary>
Converts the string representation of a number in a specified style and culture-specific format to its
32-bit signed integer equivalent. A return value indicates whether the conversion succeeded.
<para/>
Usage Note: To exactly match Java, use <see cref="F:J2N.Globalization.NumberStyle.AllowLeadingSign"/> for <paramref name="style"/> and
<see cref="P:System.Globalization.NumberFormatInfo.InvariantInfo"/> for <paramref name="provider"/>. We recommend factoring out
exceptions when parsing, but if the Java code depends on exceptions, throw <see cref="T:System.FormatException"/>
when this method returns <c>false</c>.
</summary>
<param name="s">A string containing a number to convert. The string is interpreted using the style specified by <paramref name="style"/>.</param>
<param name="style">A bitwise combination of enumeration values that indicates the style elements that can be present in <paramref name="s"/>.
A typical value to specify is <see cref="F:J2N.Globalization.NumberStyle.Integer"/>.</param>
<param name="provider">An object that supplies culture-specific formatting information about <paramref name="s"/>.</param>
<param name="result">When this method returns, contains the 32-bit signed integer value equivalent of
the number contained in <paramref name="s"/>, if the conversion succeeded, or zero if the conversion failed.
The conversion fails if the s parameter is <c>null</c> or <see cref="F:System.String.Empty"/>, is not of the correct format,
or represents a number less than <see cref="F:System.Int32.MinValue"/> or greater than <see cref="F:System.Int32.MaxValue"/>. This parameter
is passed uninitialized; any value originally supplied in <paramref name="result"/> will be overwritten.</param>
<returns><c>true</c> if <paramref name="s"/> was converted successfully; otherwise, <c>false</c>.</returns>
<exception cref="T:System.ArgumentException">
<paramref name="style"/> is not a <see cref="T:J2N.Globalization.NumberStyle"/> value.
<para/>
-or-
<para/>
<paramref name="style"/> is not a combination of <see cref="F:J2N.Globalization.NumberStyle.AllowHexSpecifier"/> and <see cref="F:J2N.Globalization.NumberStyle.HexNumber"/> values.
</exception>
<remarks>
The <see cref="M:J2N.Numerics.Int32.TryParse(System.String,J2N.Globalization.NumberStyle,System.IFormatProvider,System.Int32@)"/> method is like the <see cref="M:J2N.Numerics.Int32.Parse(System.String,J2N.Globalization.NumberStyle,System.IFormatProvider)"/> method,
except the <see cref="M:J2N.Numerics.Int32.TryParse(System.String,J2N.Globalization.NumberStyle,System.IFormatProvider,System.Int32@)"/> method does not throw an exception if the
conversion fails. It eliminates the need to use exception handling to test for a <see cref="T:System.FormatException"/>
in the event that <paramref name="s"/> is invalid and cannot be successfully parsed.
<para/>
The <paramref name="style"/> parameter defines the style elements (such as white space or a positive or negative sign)
that are allowed in the <paramref name="s"/> parameter for the parse operation to succeed. It must be a combination of
bit flags from the <see cref="T:J2N.Globalization.NumberStyle"/> enumeration. Depending on the value of <paramref name="style"/>, the <paramref name="s"/>
parameter may include the following elements:
<code>
[ws][$][sign][digits,]digits[.fractional-digits][e[sign]exponential-digits][type][ws]
</code>
Or, if the <paramref name="style"/> parameter includes <see cref="F:J2N.Globalization.NumberStyle.AllowHexSpecifier"/>:
<code>
[ws][0x]hexdigits[hextype][ws]
</code>
Items in square brackets ([ and ]) are optional. The following table describes each element.
<list type="table">
<listheader>
<term>Element</term>
<term>Description</term>
</listheader>
<item>
<term><i>ws</i></term>
<term>Optional white space.</term>
</item>
<item>
<term><i>$</i></term>
<term>A culture-specific currency symbol. Its position in the string is defined by the <see cref="P:System.Globalization.NumberFormatInfo.CurrencyPositivePattern"/>
property of the <see cref="T:System.Globalization.NumberFormatInfo"/> object returned by the <see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> method of the
<paramref name="provider"/> parameter. The currency symbol can appear in <paramref name="s"/> if style includes the
<see cref="F:J2N.Globalization.NumberStyle.AllowCurrencySymbol"/> flag.</term>
</item>
<item>
<term><i>sign</i></term>
<term>An optional sign.</term>
</item>
<item>
<term><i>digits</i></term>
<term>A sequence of digits ranging from 0 to 9.</term>
</item>
<item>
<term><i>,</i></term>
<term>A culture-specific thousands separator. The thousands separator of the culture specified by <paramref name="provider"/>
can appear in <paramref name="s"/> if <paramref name="style"/> includes the <see cref="F:J2N.Globalization.NumberStyle.AllowThousands"/> flag.</term>
</item>
<item>
<term><i>.</i></term>
<term>A culture-specific decimal point symbol. The decimal point symbol of the culture specified by <paramref name="provider"/>
can appear in <paramref name="s"/> if <paramref name="style"/> includes the <see cref="F:J2N.Globalization.NumberStyle.AllowDecimalPoint"/> flag.</term>
</item>
<item>
<term><i>fractional-digits</i></term>
<term>One or more occurrences of the digit 0. Fractional digits can appear in <paramref name="s"/> only if style includes
the <see cref="F:J2N.Globalization.NumberStyle.AllowDecimalPoint"/> flag.</term>
</item>
<item>
<term><i>e</i></term>
<term>The 'e' or 'E' character, which indicates that the value is represented in exponential notation. The <paramref name="s"/>
parameter can represent a number in exponential notation if style includes the <see cref="F:J2N.Globalization.NumberStyle.AllowExponent"/> flag.</term>
</item>
<item>
<term><i>exponential-digits</i></term>
<term>A sequence of decimal digits from 0 through 9 that specify an exponent.</term>
</item>
<item>
<term><i>0x</i>/></term>
<term>The '0x' or '0X' characters, which indicate a hexadecimal number is to immediately follow.</term>
</item>
<item>
<term><i>hexdigits</i></term>
<term>A sequence of hexadecimal digits from 0 through f, or 0 through F.</term>
</item>
<item>
<term><i>type</i></term>
<term>The 'UL', 'Ul', 'uL', 'ul', 'LU', 'Lu', 'lU', or 'lu', which is the
<a href="https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/language-specification/lexical-structure#6453-integer-literals">integral type suffix</a>
or 'f', 'F', 'd', 'D', 'm' or 'M' character, which is the
<a href="https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/language-specification/lexical-structure#6454-real-literals">real type suffix</a>
of the number as specified in the C# language specification. The type suffix can appear in <paramref name="s"/> if <paramref name="style"/>
includes the <see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/> flag.</term>
</item>
<item>
<term><i>hextype</i></term>
<term>The 'UL', 'Ul', 'uL', 'ul', 'LU', 'Lu', 'lU', or 'lu', which is the
<a href="https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/language-specification/lexical-structure#6453-integer-literals">integral type suffix</a>
of the number as specified in the C# language specification. The type suffix can appear in <paramref name="s"/> if <paramref name="style"/>
includes the <see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/> flag. Real type suffixes are not supported.</term>
</item>
</list>
<para/>
NOTE: Any terminating NUL (U+0000) characters in <paramref name="s"/> are ignored by the parsing operation, regardless of
the value of the <paramref name="style"/> argument.
<para/>
A string with decimal digits only (which corresponds to the <see cref="F:J2N.Globalization.NumberStyle.None"/> flag) always parses successfully.
Most of the remaining <see cref="T:J2N.Globalization.NumberStyle"/> members control elements that may be but are not required to be present in
this input string. The following table indicates how individual <see cref="T:J2N.Globalization.NumberStyle"/> members affect the elements that may
be present in <paramref name="s"/>.
<list type="table">
<listheader>
<term>Non-composite NumberStyle values</term>
<term>Elements permitted in <paramref name="s"/> in addition to digits</term>
</listheader>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.None"/></term>
<term>Decimal digits only.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowDecimalPoint"/></term>
<term>The decimal point (.) and <i>fractional-digits</i> elements. However, <i>fractional-digits</i> must consist
of only one or more 0 digits or the method returns <c>false</c>.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowExponent"/></term>
<term>The <paramref name="s"/> parameter can also use exponential notation. If <paramref name="s"/> represents a
number in exponential notation, it must represent an integer within the range of the <see cref="T:System.Int32"/> data type
without a non-zero, fractional component.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowLeadingWhite"/></term>
<term>The <i>ws</i> element at the beginning of <paramref name="s"/>.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowTrailingWhite"/></term>
<term>The <i>ws</i> element at the end of <paramref name="s"/>.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowLeadingSign"/></term>
<term>A sign can appear before <i>digits</i>.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowTrailingSign"/></term>
<term>A sign can appear after <i>digits</i>.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowParentheses"/></term>
<term>The <i>sign</i> element in the form of parentheses enclosing the numeric value.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowThousands"/></term>
<term>The thousands separator (,) element.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowCurrencySymbol"/></term>
<term>The <i>$</i> element.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/></term>
<term>The literal <i>type</i> suffix used in the literal identifier syntax of C# (suffixed with one of
'D', 'd', 'F', 'f', 'M', 'm', 'L', 'l', 'U', 'u', 'UL', 'ul', 'LU', or 'lu').</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.Currency"/></term>
<term>All elements. The <paramref name="s"/> parameter cannot represent a hexadecimal
number or a number in exponential notation.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.Float"/></term>
<term>The <i>ws</i> element at the beginning or end of <paramref name="s"/>, sign at
the beginning of <paramref name="s"/>, and the decimal point (.) symbol. The <paramref name="s"/>
parameter can also use exponential notation.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.Number"/></term>
<term>The <i>ws</i>, <i>sign</i>, thousands separator (,), and decimal point (.) elements.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.Any"/></term>
<term>All styles, except <paramref name="s"/> cannot represent a hexadecimal number.</term>
</item>
</list>
<para/>
The <see cref="T:J2N.Globalization.NumberStyle"/> enum can be converted to the .NET <see cref="T:System.Globalization.NumberStyles"/> enum by using the
<see cref="M:J2N.Globalization.NumberStyleExtensions.ToNumberStyles(J2N.Globalization.NumberStyle)"/> extension method.
Similarly, <see cref="T:System.Globalization.NumberStyles"/> enum can be converted to the J2N <see cref="T:J2N.Globalization.NumberStyle"/> enum by using
the <see cref="M:J2N.Globalization.NumberStyleExtensions.ToNumberStyle(System.Globalization.NumberStyles)"/> extension method.
<para/>
If the <see cref="F:J2N.Globalization.NumberStyle.AllowHexSpecifier"/> flag is used, <paramref name="s"/> must be a hexadecimal value with or without a <c>0x</c> prefix.
For example, "F3" and "0xF3" both parse successfully. The only other flags that can be present in <paramref name="style"/> are
<see cref="F:J2N.Globalization.NumberStyle.AllowLeadingWhite"/>, <see cref="F:J2N.Globalization.NumberStyle.AllowTrailingWhite"/> and <see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/>.
(The <see cref="T:J2N.Globalization.NumberStyle"/> enumeration has a composite number style, <see cref="F:J2N.Globalization.NumberStyle.HexNumber"/>, that includes both white space
flags.)
The <see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/> only allows 'L', 'l', 'U', 'u', 'UL', 'ul', 'LU', or 'lu' for hexadecimal numbers.
<para/>
The <paramref name="provider"/> parameter is an <see cref="T:System.IFormatProvider"/> implementation, such as a <see cref="T:System.Globalization.CultureInfo"/> object,
a <see cref="T:System.Globalization.NumberFormatInfo"/> object or a <see cref="T:J2N.Text.StringFormatter"/> object, whose <see cref="M:System.IFormatProvider.GetFormat(System.Type)"/>
method returns a <see cref="T:System.Globalization.NumberFormatInfo"/> object. The <see cref="T:System.Globalization.NumberFormatInfo"/> object provides culture-specific information about
the format of <paramref name="s"/>. If <paramref name="provider"/> is <c>null</c>, the <see cref="T:System.Globalization.NumberFormatInfo"/> object for the current
culture is used.
</remarks>
<seealso cref="M:J2N.Numerics.Int32.Parse(System.String,J2N.Globalization.NumberStyle,System.IFormatProvider)"/>
<seealso cref="M:J2N.Numerics.Int32.TryParse(System.String,System.Int32@)"/>
<seealso cref="M:J2N.Numerics.Number.ToString"/>
<seealso cref="T:J2N.Globalization.NumberStyle"/>
</member>
<member name="M:J2N.Numerics.Int32.TryParse(System.ReadOnlySpan{System.Char},J2N.Globalization.NumberStyle,System.IFormatProvider,System.Int32@)">
<summary>
Converts the span representation of a number in a specified style and culture-specific format to its 32-bit signed integer equivalent.
A return value indicates whether the conversion succeeded.
<para/>
Usage Note: To exactly match Java, use <see cref="F:J2N.Globalization.NumberStyle.AllowLeadingSign"/> for <paramref name="style"/> and
<see cref="P:System.Globalization.NumberFormatInfo.InvariantInfo"/> for <paramref name="provider"/>. We recommend factoring out
exceptions when parsing, but if the Java code depends on exceptions, throw <see cref="T:System.FormatException"/>
when this method returns <c>false</c>.
</summary>
<param name="s">A span containing the characters that represent the number to convert. The span is interpreted using
the style specified by <paramref name="style"/>.</param>
<param name="style">A bitwise combination of enumeration values that indicates the style elements that can be present in <paramref name="s"/>.
A typical value to specify is <see cref="F:J2N.Globalization.NumberStyle.Integer"/>.</param>
<param name="provider">An object that supplies culture-specific formatting information about <paramref name="s"/>.</param>
<param name="result">When this method returns, contains the 32-bit signed integer value equivalent of
the number contained in <paramref name="s"/>, if the conversion succeeded, or zero if the conversion failed.
The conversion fails if the s parameter is <c>null</c> or <see cref="F:System.String.Empty"/>, is not of the correct format,
or represents a number less than <see cref="F:System.Int32.MinValue"/> or greater than <see cref="F:System.Int32.MaxValue"/>. This parameter
is passed uninitialized; any value originally supplied in <paramref name="result"/> will be overwritten.</param>
<returns><c>true</c> if <paramref name="s"/> was converted successfully; otherwise, <c>false</c>.</returns>
<exception cref="T:System.ArgumentException">
<paramref name="style"/> is not a <see cref="T:J2N.Globalization.NumberStyle"/> value.
<para/>
-or-
<para/>
<paramref name="style"/> is not a combination of <see cref="F:J2N.Globalization.NumberStyle.AllowHexSpecifier"/> and <see cref="F:J2N.Globalization.NumberStyle.HexNumber"/> values.
</exception>
<remarks>
The <see cref="M:J2N.Numerics.Int32.TryParse(System.ReadOnlySpan{System.Char},J2N.Globalization.NumberStyle,System.IFormatProvider,System.Int32@)"/> method is like the <see cref="M:J2N.Numerics.Int32.Parse(System.ReadOnlySpan{System.Char},J2N.Globalization.NumberStyle,System.IFormatProvider)"/> method,
except the <see cref="M:J2N.Numerics.Int32.TryParse(System.ReadOnlySpan{System.Char},J2N.Globalization.NumberStyle,System.IFormatProvider,System.Int32@)"/> method does not throw an exception if the
conversion fails. It eliminates the need to use exception handling to test for a <see cref="T:System.FormatException"/>
in the event that <paramref name="s"/> is invalid and cannot be successfully parsed.
<para/>
The <paramref name="style"/> parameter defines the style elements (such as white space or a positive or negative sign)
that are allowed in the <paramref name="s"/> parameter for the parse operation to succeed. It must be a combination of
bit flags from the <see cref="T:J2N.Globalization.NumberStyle"/> enumeration. Depending on the value of <paramref name="style"/>, the <paramref name="s"/>
parameter may include the following elements:
<code>
[ws][$][sign][digits,]digits[.fractional-digits][e[sign]exponential-digits][type][ws]
</code>
Or, if the <paramref name="style"/> parameter includes <see cref="F:J2N.Globalization.NumberStyle.AllowHexSpecifier"/>:
<code>
[ws][0x]hexdigits[hextype][ws]
</code>
Items in square brackets ([ and ]) are optional. The following table describes each element.
<list type="table">
<listheader>
<term>Element</term>
<term>Description</term>
</listheader>
<item>
<term><i>ws</i></term>
<term>Optional white space.</term>
</item>
<item>
<term><i>$</i></term>
<term>A culture-specific currency symbol. Its position in the string is defined by the <see cref="P:System.Globalization.NumberFormatInfo.CurrencyPositivePattern"/>
property of the <see cref="T:System.Globalization.NumberFormatInfo"/> object returned by the <see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> method of the
<paramref name="provider"/> parameter. The currency symbol can appear in <paramref name="s"/> if style includes the
<see cref="F:J2N.Globalization.NumberStyle.AllowCurrencySymbol"/> flag.</term>
</item>
<item>
<term><i>sign</i></term>
<term>An optional sign.</term>
</item>
<item>
<term><i>digits</i></term>
<term>A sequence of digits ranging from 0 to 9.</term>
</item>
<item>
<term><i>,</i></term>
<term>A culture-specific thousands separator. The thousands separator of the culture specified by <paramref name="provider"/>
can appear in <paramref name="s"/> if <paramref name="style"/> includes the <see cref="F:J2N.Globalization.NumberStyle.AllowThousands"/> flag.</term>
</item>
<item>
<term><i>.</i></term>
<term>A culture-specific decimal point symbol. The decimal point symbol of the culture specified by <paramref name="provider"/>
can appear in <paramref name="s"/> if <paramref name="style"/> includes the <see cref="F:J2N.Globalization.NumberStyle.AllowDecimalPoint"/> flag.</term>
</item>
<item>
<term><i>fractional-digits</i></term>
<term>One or more occurrences of the digit 0. Fractional digits can appear in <paramref name="s"/> only if style includes
the <see cref="F:J2N.Globalization.NumberStyle.AllowDecimalPoint"/> flag.</term>
</item>
<item>
<term><i>The 'e' or 'E' character, which indicates that the value is represented in exponential notation. The <paramref name="s"/>
parameter can represent a number in exponential notation if style includes the <see cref="F:J2N.Globalization.NumberStyle.AllowExponent"/> flag.</i></term>
<term></term>
</item>
<item>
<term><i>exponential-digits</i></term>
<term>A sequence of decimal digits from 0 through 9 that specify an exponent.</term>
</item>
<item>
<term><i>0x</i>/></term>
<term>The '0x' or '0X' characters, which indicate a hexadecimal number is to immediately follow.</term>
</item>
<item>
<term><i>hexdigits</i></term>
<term>A sequence of hexadecimal digits from 0 through f, or 0 through F.</term>
</item>
<item>
<term><i>type</i></term>
<term>The 'UL', 'Ul', 'uL', 'ul', 'LU', 'Lu', 'lU', or 'lu', which is the
<a href="https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/language-specification/lexical-structure#6453-integer-literals">integral type suffix</a>
or 'f', 'F', 'd', 'D', 'm' or 'M' character, which is the
<a href="https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/language-specification/lexical-structure#6454-real-literals">real type suffix</a>
of the number as specified in the C# language specification. The type suffix can appear in <paramref name="s"/> if <paramref name="style"/>
includes the <see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/> flag.</term>
</item>
<item>
<term><i>hextype</i></term>
<term>The 'UL', 'Ul', 'uL', 'ul', 'LU', 'Lu', 'lU', or 'lu', which is the
<a href="https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/language-specification/lexical-structure#6453-integer-literals">integral type suffix</a>
of the number as specified in the C# language specification. The type suffix can appear in <paramref name="s"/> if <paramref name="style"/>
includes the <see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/> flag. Real type suffixes are not supported.</term>
</item>
</list>
<para/>
NOTE: Any terminating NUL (U+0000) characters in <paramref name="s"/> are ignored by the parsing operation, regardless of
the value of the <paramref name="style"/> argument.
<para/>
A string with decimal digits only (which corresponds to the <see cref="F:J2N.Globalization.NumberStyle.None"/> flag) always parses successfully.
Most of the remaining <see cref="T:J2N.Globalization.NumberStyle"/> members control elements that may be but are not required to be present in
this input string. The following table indicates how individual <see cref="T:J2N.Globalization.NumberStyle"/> members affect the elements that may
be present in <paramref name="s"/>.
<list type="table">
<listheader>
<term>Non-composite NumberStyle values</term>
<term>Elements permitted in <paramref name="s"/> in addition to digits</term>
</listheader>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.None"/></term>
<term>Decimal digits only.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowDecimalPoint"/></term>
<term>The decimal point (.) and <i>fractional-digits</i> elements. However, <i>fractional-digits</i> must consist
of only one or more 0 digits or the method returns <c>false</c>.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowExponent"/></term>
<term>The <paramref name="s"/> parameter can also use exponential notation. If <paramref name="s"/> represents a
number in exponential notation, it must represent an integer within the range of the <see cref="T:System.Int32"/> data type
without a non-zero, fractional component.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowLeadingWhite"/></term>
<term>The <i>ws</i> element at the beginning of <paramref name="s"/>.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowTrailingWhite"/></term>
<term>The <i>ws</i> element at the end of <paramref name="s"/>.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowLeadingSign"/></term>
<term>A sign can appear before <i>digits</i>.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowTrailingSign"/></term>
<term>A sign can appear after <i>digits</i>.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowParentheses"/></term>
<term>The <i>sign</i> element in the form of parentheses enclosing the numeric value.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowThousands"/></term>
<term>The thousands separator (,) element.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowCurrencySymbol"/></term>
<term>The <i>$</i> element.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/></term>
<term>The literal <i>type</i> suffix used in the literal identifier syntax of C# (suffixed with one of
'D', 'd', 'F', 'f', 'M', 'm', 'L', 'l', 'U', 'u', 'UL', 'ul', 'LU', or 'lu').</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.Currency"/></term>
<term>All elements. The <paramref name="s"/> parameter cannot represent a hexadecimal
number or a number in exponential notation.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.Float"/></term>
<term>The <i>ws</i> element at the beginning or end of <paramref name="s"/>, sign at
the beginning of <paramref name="s"/>, and the decimal point (.) symbol. The <paramref name="s"/>
parameter can also use exponential notation.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.Number"/></term>
<term>The <i>ws</i>, <i>sign</i>, thousands separator (,), and decimal point (.) elements.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.Any"/></term>
<term>All styles, except <paramref name="s"/> cannot represent a hexadecimal number.</term>
</item>
</list>
<para/>
The <see cref="T:J2N.Globalization.NumberStyle"/> enum can be converted to the .NET <see cref="T:System.Globalization.NumberStyles"/> enum by using the
<see cref="M:J2N.Globalization.NumberStyleExtensions.ToNumberStyles(J2N.Globalization.NumberStyle)"/> extension method.
Similarly, <see cref="T:System.Globalization.NumberStyles"/> enum can be converted to the J2N <see cref="T:J2N.Globalization.NumberStyle"/> enum by using
the <see cref="M:J2N.Globalization.NumberStyleExtensions.ToNumberStyle(System.Globalization.NumberStyles)"/> extension method.
<para/>
If the <see cref="F:J2N.Globalization.NumberStyle.AllowHexSpecifier"/> flag is used, <paramref name="s"/> must be a hexadecimal value with or without a <c>0x</c> prefix.
For example, "F3" and "0xF3" both parse successfully. The only other flags that can be present in <paramref name="style"/> are
<see cref="F:J2N.Globalization.NumberStyle.AllowLeadingWhite"/>, <see cref="F:J2N.Globalization.NumberStyle.AllowTrailingWhite"/> and <see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/>.
(The <see cref="T:J2N.Globalization.NumberStyle"/> enumeration has a composite number style, <see cref="F:J2N.Globalization.NumberStyle.HexNumber"/>, that includes both white space
flags.)
The <see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/> only allows 'L', 'l', 'U', 'u', 'UL', 'ul', 'LU', or 'lu' for hexadecimal numbers.
<para/>
The <paramref name="provider"/> parameter is an <see cref="T:System.IFormatProvider"/> implementation, such as a <see cref="T:System.Globalization.CultureInfo"/> object,
a <see cref="T:System.Globalization.NumberFormatInfo"/> object or a <see cref="T:J2N.Text.StringFormatter"/> object, whose <see cref="M:System.IFormatProvider.GetFormat(System.Type)"/>
method returns a <see cref="T:System.Globalization.NumberFormatInfo"/> object. The <see cref="T:System.Globalization.NumberFormatInfo"/> object provides culture-specific information about
the format of <paramref name="s"/>. If <paramref name="provider"/> is <c>null</c>, the <see cref="T:System.Globalization.NumberFormatInfo"/> object for the current
culture is used.
</remarks>
<seealso cref="M:J2N.Numerics.Int32.Parse(System.ReadOnlySpan{System.Char},J2N.Globalization.NumberStyle,System.IFormatProvider)"/>
<seealso cref="M:J2N.Numerics.Int32.TryParse(System.ReadOnlySpan{System.Char},System.Int32@)"/>
<seealso cref="M:J2N.Numerics.Number.ToString"/>
<seealso cref="T:J2N.Globalization.NumberStyle"/>
</member>
<member name="M:J2N.Numerics.Int32.ToBinaryString">
<summary>
Converts the current instance into its binary string representation. The
returned string is a concatenation of '0' and '1' characters.
</summary>
<returns>The binary string representation of this instance.</returns>
</member>
<member name="M:J2N.Numerics.Int32.ToHexString">
<summary>
Converts the current instance into its hexadecimal string
representation (in lowercase). The returned string is a
concatenation of characters from '0' to '9' and 'a' to 'f'.
</summary>
<returns>The hexadecimal string representation of this instance.</returns>
</member>
<member name="M:J2N.Numerics.Int32.ToOctalString">
<summary>
Converts the current instance into its octal string representation. The
returned string is a concatenation of characters from '0' to '7'.
</summary>
<returns>The octal string representation of this instance.</returns>
</member>
<member name="M:J2N.Numerics.Int32.ToString">
<summary>
Converts the value of the current <see cref="T:J2N.Numerics.Int32"/> object to its equivalent string representation.
</summary>
<returns>The string representation of the value of this object, which consists of a sequence of digits
that range from 0 to 9 with no leading zeroes.</returns>
<remarks>
The <see cref="M:J2N.Numerics.Int32.ToString"/> method formats the current instance in the default ("J", or Java)
format of the current culture. If you want to specify a different format, precision, or culture, use the
other overloads of the <see cref="M:J2N.Numerics.Int32.ToString(System.String,System.IFormatProvider)"/> method, as follows:
<list type="table">
<listheader>
<term>To use format</term>
<term>For culture</term>
<term>Use the overload</term>
</listheader>
<item>
<term>Default ("J") format</term>
<term>A specific culture</term>
<term><see cref="M:J2N.Numerics.Int32.ToString(System.Int32,System.IFormatProvider)"/> or <see cref="M:J2N.Numerics.Int32.ToString(System.IFormatProvider)"/></term>
</item>
<item>
<term>A specific format or precision</term>
<term>Default (current) culture</term>
<term><see cref="M:J2N.Numerics.Int32.ToString(System.Int32,System.String)"/> or <see cref="M:J2N.Numerics.Int32.ToString(System.String)"/></term>
</item>
<item>
<term>A specific format or precision</term>
<term>A specific culture</term>
<term><see cref="M:J2N.Numerics.Int32.ToString(System.Int32,System.String,System.IFormatProvider)"/> or <see cref="M:J2N.Numerics.Int32.ToString(System.String,System.IFormatProvider)"/></term>
</item>
</list>
<para/>
.NET provides extensive formatting support, which is described in greater detail in the following formatting topics:
<list type="bullet">
<item><description>For more information about numeric format specifiers, see
<a href="https://docs.microsoft.com/en-us/dotnet/standard/base-types/standard-numeric-format-strings">Standard Numeric Format Strings</a>
and <a href="https://docs.microsoft.com/en-us/dotnet/standard/base-types/custom-numeric-format-strings">Custom Numeric Format Strings</a>.
</description></item>
<item><description>For more information about formatting, see
<a href="https://docs.microsoft.com/en-us/dotnet/standard/base-types/formatting-types">Formatting Types</a>.</description></item>
</list>
</remarks>
<seealso cref="M:J2N.Numerics.Int32.Parse(System.String,System.IFormatProvider)"/>
</member>
<member name="M:J2N.Numerics.Int32.ToString(System.String)">
<summary>
Converts the value of the current <see cref="T:J2N.Numerics.Int32"/> object to its equivalent string representation
using the specified format.
</summary>
<param name="format">A numeric format string.</param>
<returns>The string representation of the current <see cref="T:J2N.Numerics.Int32"/> object, formatted as specified by
the <paramref name="format"/> parameter.</returns>
<exception cref="T:System.FormatException">
<paramref name="format"/> includes an unsupported specifier. Supported format specifiers are listed in the Remarks section.
</exception>
<remarks>
The <see cref="M:J2N.Numerics.Int32.ToString(System.String)"/> method formats the current instance in
a specified format by using the conventions of the current culture. If you want to specify a different format or culture,
use the other overloads of the <see cref="M:J2N.Numerics.Int32.ToString(System.String,System.IFormatProvider)"/> method, as follows:
<list type="table">
<listheader>
<term>To use format</term>
<term>For culture</term>
<term>Use the overload</term>
</listheader>
<item>
<term>Default ("J") format</term>
<term>Default (current) culture</term>
<term><see cref="M:J2N.Numerics.Int32.ToString(System.Int32)"/> or <see cref="M:J2N.Numerics.Int32.ToString"/></term>
</item>
<item>
<term>Default ("J") format</term>
<term>A specific culture</term>
<term><see cref="M:J2N.Numerics.Int32.ToString(System.Int32,System.IFormatProvider)"/> or <see cref="M:J2N.Numerics.Int32.ToString(System.IFormatProvider)"/></term>
</item>
<item>
<term>A specific format or precision</term>
<term>A specific culture</term>
<term><see cref="M:J2N.Numerics.Int32.ToString(System.Int32,System.String,System.IFormatProvider)"/> or <see cref="M:J2N.Numerics.Int32.ToString(System.String,System.IFormatProvider)"/></term>
</item>
</list>
<para/>
The format parameter can be either a standard or a custom numeric format string. All standard numeric format strings other
than "R" (or "r") are supported, as are all custom numeric format characters. If format is <c>null</c> or an empty string (""),
the return value is formatted with the Java numeric format specifier ("J").
<para/>
The return value of this function is formatted using the <see cref="T:System.Globalization.NumberFormatInfo"/> object for the thread current culture.
For information about the thread current culture, see <see cref="P:System.Threading.Thread.CurrentCulture"/>. To provide formatting information
for cultures other than the current culture, call the <see cref="M:J2N.Numerics.Int32.ToString(System.String,System.IFormatProvider)"/> method.
<para/>
.NET provides extensive formatting support, which is described in greater detail in the following formatting topics:
<list type="bullet">
<item><description>For more information about numeric format specifiers, see
<a href="https://docs.microsoft.com/en-us/dotnet/standard/base-types/standard-numeric-format-strings">Standard Numeric Format Strings</a>
and <a href="https://docs.microsoft.com/en-us/dotnet/standard/base-types/custom-numeric-format-strings">Custom Numeric Format Strings</a>.
</description></item>
<item><description>For more information about formatting, see
<a href="https://docs.microsoft.com/en-us/dotnet/standard/base-types/formatting-types">Formatting Types</a>.</description></item>
</list>
</remarks>
<seealso cref="M:J2N.Numerics.Int32.Parse(System.String,System.IFormatProvider)"/>
</member>
<member name="M:J2N.Numerics.Int32.ToString(System.IFormatProvider)">
<summary>
Converts the numeric value of the current <see cref="T:J2N.Numerics.Int32"/> object to its equivalent string representation using the
specified culture-specific formatting information.
</summary>
<param name="provider">An object that supplies culture-specific formatting information.</param>
<returns>The string representation of the value of this object in the format specified by the <paramref name="provider"/> parameter.</returns>
<remarks>
The <see cref="M:J2N.Numerics.Int32.ToString(System.IFormatProvider)"/> method formats the current instance in
the default ("J") format of a specified culture. If you want to specify a different format or culture, use the
other overloads of the <see cref="M:J2N.Numerics.Int32.ToString(System.String,System.IFormatProvider)"/> method, as follows:
<list type="table">
<listheader>
<term>To use format</term>
<term>For culture</term>
<term>Use the overload</term>
</listheader>
<item>
<term>Default ("J") format</term>
<term>Default (current) culture</term>
<term><see cref="M:J2N.Numerics.Int32.ToString(System.Int32)"/> or <see cref="M:J2N.Numerics.Int32.ToString"/></term>
</item>
<item>
<term>A specific format or precision</term>
<term>Default (current) culture</term>
<term><see cref="M:J2N.Numerics.Int32.ToString(System.Int32,System.String)"/> or <see cref="M:J2N.Numerics.Int32.ToString(System.String)"/></term>
</item>
<item>
<term>A specific format or precision</term>
<term>A specific culture</term>
<term><see cref="M:J2N.Numerics.Int32.ToString(System.Int32,System.String,System.IFormatProvider)"/> or <see cref="M:J2N.Numerics.Int32.ToString(System.String,System.IFormatProvider)"/></term>
</item>
</list>
<para/>
The return value is formatted with the Java numeric format specifier ("J").
<para/>
The <paramref name="provider"/> parameter is an object that implements the <see cref="T:System.IFormatProvider"/> interface. Its <see cref="M:System.IFormatProvider.GetFormat(System.Type)"/>
method returns a <see cref="T:System.Globalization.NumberFormatInfo"/> object that provides culture-specific information about the format of the string that is
returned by this method. The object that implements <see cref="T:System.IFormatProvider"/> can be any of the following:
<list type="bullet">
<item><description>A <see cref="T:System.Globalization.CultureInfo"/> object that represents the culture whose formatting rules are to be used.</description></item>
<item><description>A <see cref="T:System.Globalization.NumberFormatInfo"/> object that contains specific numeric formatting information for this value.</description></item>
<item><description>A custom object that implements <see cref="T:System.IFormatProvider"/>.</description></item>
</list>
<para/>
If provider is <c>null</c> or a <see cref="T:System.Globalization.NumberFormatInfo"/> object cannot be obtained from provider, the return value is formatted
using the <see cref="T:System.Globalization.NumberFormatInfo"/> object for the thread current culture. For information about the thread current culture, see
<see cref="P:System.Threading.Thread.CurrentCulture"/>.
<para/>
.NET provides extensive formatting support, which is described in greater detail in the following formatting topics:
<list type="bullet">
<item><description>For more information about numeric format specifiers, see
<a href="https://docs.microsoft.com/en-us/dotnet/standard/base-types/standard-numeric-format-strings">Standard Numeric Format Strings</a>
and <a href="https://docs.microsoft.com/en-us/dotnet/standard/base-types/custom-numeric-format-strings">Custom Numeric Format Strings</a>.
</description></item>
<item><description>For more information about formatting, see
<a href="https://docs.microsoft.com/en-us/dotnet/standard/base-types/formatting-types">Formatting Types</a>.</description></item>
</list>
</remarks>
<seealso cref="M:J2N.Numerics.Int32.Parse(System.String,System.IFormatProvider)"/>
</member>
<member name="M:J2N.Numerics.Int32.ToString(System.String,System.IFormatProvider)">
<summary>
Converts the value of the current <see cref="T:J2N.Numerics.Int32"/> object to its equivalent string representation using the specified format
and culture-specific formatting information.
</summary>
<param name="format">A standard or custom numeric format string.</param>
<param name="provider">An object that supplies culture-specific formatting information.</param>
<returns>The string representation of the current <see cref="T:J2N.Numerics.Int32"/> object, formatted as specified by the <paramref name="format"/>
and <paramref name="provider"/> parameters.</returns>
<exception cref="T:System.FormatException"><paramref name="format"/> includes an unsupported specifier. Supported format specifiers are listed
in the Remarks section.</exception>
<remarks>
The <see cref="M:J2N.Numerics.Int32.ToString(System.String,System.IFormatProvider)"/> method formats the current instance in
a specified format of a specified culture. If you want to specify a different format or culture, use the
other overloads of the <see cref="M:J2N.Numerics.Int32.ToString(System.String,System.IFormatProvider)"/> method, as follows:
<list type="table">
<listheader>
<term>To use format</term>
<term>For culture</term>
<term>Use the overload</term>
</listheader>
<item>
<term>Default ("J") format</term>
<term>Default (current) culture</term>
<term><see cref="M:J2N.Numerics.Int32.ToString(System.Int32)"/> or <see cref="M:J2N.Numerics.Int32.ToString"/></term>
</item>
<item>
<term>Default ("J") format</term>
<term>A specific culture</term>
<term><see cref="M:J2N.Numerics.Int32.ToString(System.Int32,System.IFormatProvider)"/> or <see cref="M:J2N.Numerics.Int32.ToString(System.IFormatProvider)"/></term>
</item>
<item>
<term>A specific format or precision</term>
<term>Default (current) culture</term>
<term><see cref="M:J2N.Numerics.Int32.ToString(System.Int32,System.String)"/> or <see cref="M:J2N.Numerics.Int32.ToString(System.String)"/></term>
</item>
</list>
<para/>
The <see cref="M:J2N.Numerics.Int32.ToString(System.String,System.IFormatProvider)"/> method formats a <see cref="T:J2N.Numerics.Int32"/> value in a specified format
of a specified culture. To format a number by using the default ("J") format of the current culture, call the
<see cref="M:J2N.Numerics.Int32.ToString"/> method. To format a number by using a specified format of the current culture, call the
<see cref="M:J2N.Numerics.Int32.ToString(System.String)"/> method.
<para/>
The <paramref name="format"/> parameter can be either a standard or a custom numeric format string. All standard
numeric format strings other than "R" (or "r") are supported, as are all custom numeric format characters. If
<paramref name="format"/> is <c>null</c> or an empty string (""), the return value of this method is formatted
with the Java numeric format specifier ("J").
<para/>
The <paramref name="provider"/> parameter is an object that implements the <see cref="T:System.IFormatProvider"/> interface. Its <see cref="M:System.IFormatProvider.GetFormat(System.Type)"/>
method returns a <see cref="T:System.Globalization.NumberFormatInfo"/> object that provides culture-specific information about the format of the string that is
returned by this method. The object that implements <see cref="T:System.IFormatProvider"/> can be any of the following:
<list type="bullet">
<item><description>A <see cref="T:System.Globalization.CultureInfo"/> object that represents the culture whose formatting rules are to be used.</description></item>
<item><description>A <see cref="T:System.Globalization.NumberFormatInfo"/> object that contains specific numeric formatting information for this value.</description></item>
<item><description>A custom object that implements <see cref="T:System.IFormatProvider"/>.</description></item>
</list>
<para/>
If provider is <c>null</c> or a <see cref="T:System.Globalization.NumberFormatInfo"/> object cannot be obtained from provider, the return value is formatted
using the <see cref="T:System.Globalization.NumberFormatInfo"/> object for the thread current culture. For information about the thread current culture, see
<see cref="P:System.Threading.Thread.CurrentCulture"/>.
<para/>
.NET provides extensive formatting support, which is described in greater detail in the following formatting topics:
<list type="bullet">
<item><description>For more information about numeric format specifiers, see
<a href="https://docs.microsoft.com/en-us/dotnet/standard/base-types/standard-numeric-format-strings">Standard Numeric Format Strings</a>
and <a href="https://docs.microsoft.com/en-us/dotnet/standard/base-types/custom-numeric-format-strings">Custom Numeric Format Strings</a>.
</description></item>
<item><description>For more information about formatting, see
<a href="https://docs.microsoft.com/en-us/dotnet/standard/base-types/formatting-types">Formatting Types</a>.</description></item>
</list>
</remarks>
<seealso cref="M:J2N.Numerics.Int32.Parse(System.String,System.IFormatProvider)"/>
</member>
<member name="M:J2N.Numerics.Int32.ToString(System.Int32)">
<summary>
Converts the specified <paramref name="value"/> to its equivalent string representation.
</summary>
<param name="value">The <see cref="T:System.Int32"/> to convert.</param>
<returns>The string representation of the <paramref name="value"/> parameter, which consists of a sequence of digits
that range from 0 to 9 with no leading zeroes.</returns>
<remarks>
The <see cref="M:J2N.Numerics.Int32.ToString"/> method formats the current instance in the default ("J", or Java)
format of the current culture. If you want to specify a different format, precision, or culture, use the
other overloads of the <see cref="M:J2N.Numerics.Int32.ToString(System.Int32,System.String,System.IFormatProvider)"/> method, as follows:
<list type="table">
<listheader>
<term>To use format</term>
<term>For culture</term>
<term>Use the overload</term>
</listheader>
<item>
<term>Default ("J") format</term>
<term>A specific culture</term>
<term><see cref="M:J2N.Numerics.Int32.ToString(System.Int32,System.IFormatProvider)"/> or <see cref="M:J2N.Numerics.Int32.ToString(System.IFormatProvider)"/></term>
</item>
<item>
<term>A specific format or precision</term>
<term>Default (current) culture</term>
<term><see cref="M:J2N.Numerics.Int32.ToString(System.Int32,System.String)"/> or <see cref="M:J2N.Numerics.Int32.ToString(System.String)"/></term>
</item>
<item>
<term>A specific format or precision</term>
<term>A specific culture</term>
<term><see cref="M:J2N.Numerics.Int32.ToString(System.Int32,System.String,System.IFormatProvider)"/> or <see cref="M:J2N.Numerics.Int32.ToString(System.String,System.IFormatProvider)"/></term>
</item>
</list>
<para/>
.NET provides extensive formatting support, which is described in greater detail in the following formatting topics:
<list type="bullet">
<item><description>For more information about numeric format specifiers, see
<a href="https://docs.microsoft.com/en-us/dotnet/standard/base-types/standard-numeric-format-strings">Standard Numeric Format Strings</a>
and <a href="https://docs.microsoft.com/en-us/dotnet/standard/base-types/custom-numeric-format-strings">Custom Numeric Format Strings</a>.
</description></item>
<item><description>For more information about formatting, see
<a href="https://docs.microsoft.com/en-us/dotnet/standard/base-types/formatting-types">Formatting Types</a>.</description></item>
</list>
</remarks>
<seealso cref="M:J2N.Numerics.Int32.Parse(System.String,System.IFormatProvider)"/>
</member>
<member name="M:J2N.Numerics.Int32.ToString(System.Int32,System.String)">
<summary>
Converts the specified <paramref name="value"/> to its equivalent string representation
using the specified format.
</summary>
<param name="value">The <see cref="T:System.Int32"/> to convert.</param>
<param name="format">A numeric format string.</param>
<returns>The string representation of the <paramref name="value"/> parameter, formatted as specified by
the <paramref name="format"/> parameter.</returns>
<exception cref="T:System.FormatException">
<paramref name="format"/> includes an unsupported specifier. Supported format specifiers are listed in the Remarks section.
</exception>
<remarks>
The <see cref="M:J2N.Numerics.Int32.ToString(System.Int32,System.String)"/> method formats the current instance in
a specified format by using the conventions of the current culture. If you want to specify a different format or culture,
use the other overloads of the <see cref="M:J2N.Numerics.Int32.ToString(System.Int32,System.String,System.IFormatProvider)"/> method, as follows:
<list type="table">
<listheader>
<term>To use format</term>
<term>For culture</term>
<term>Use the overload</term>
</listheader>
<item>
<term>Default ("J") format</term>
<term>Default (current) culture</term>
<term><see cref="M:J2N.Numerics.Int32.ToString(System.Int32)"/> or <see cref="M:J2N.Numerics.Int32.ToString"/></term>
</item>
<item>
<term>Default ("J") format</term>
<term>A specific culture</term>
<term><see cref="M:J2N.Numerics.Int32.ToString(System.Int32,System.IFormatProvider)"/> or <see cref="M:J2N.Numerics.Int32.ToString(System.IFormatProvider)"/></term>
</item>
<item>
<term>A specific format or precision</term>
<term>A specific culture</term>
<term><see cref="M:J2N.Numerics.Int32.ToString(System.Int32,System.String,System.IFormatProvider)"/> or <see cref="M:J2N.Numerics.Int32.ToString(System.String,System.IFormatProvider)"/></term>
</item>
</list>
<para/>
The format parameter can be either a standard or a custom numeric format string. All standard numeric format strings other
than "R" (or "r") are supported, as are all custom numeric format characters. If format is <c>null</c> or an empty string (""),
the return value is formatted with the Java numeric format specifier ("J").
<para/>
The return value of this function is formatted using the <see cref="T:System.Globalization.NumberFormatInfo"/> object for the thread current culture.
For information about the thread current culture, see <see cref="P:System.Threading.Thread.CurrentCulture"/>. To provide formatting information
for cultures other than the current culture, call the <see cref="M:J2N.Numerics.Int32.ToString(System.Int32,System.String,System.IFormatProvider)"/> method.
<para/>
.NET provides extensive formatting support, which is described in greater detail in the following formatting topics:
<list type="bullet">
<item><description>For more information about numeric format specifiers, see
<a href="https://docs.microsoft.com/en-us/dotnet/standard/base-types/standard-numeric-format-strings">Standard Numeric Format Strings</a>
and <a href="https://docs.microsoft.com/en-us/dotnet/standard/base-types/custom-numeric-format-strings">Custom Numeric Format Strings</a>.
</description></item>
<item><description>For more information about formatting, see
<a href="https://docs.microsoft.com/en-us/dotnet/standard/base-types/formatting-types">Formatting Types</a>.</description></item>
</list>
</remarks>
<seealso cref="M:J2N.Numerics.Int32.Parse(System.String,System.IFormatProvider)"/>
</member>
<member name="M:J2N.Numerics.Int32.ToString(System.Int32,System.IFormatProvider)">
<summary>
Converts the specified <paramref name="value"/> to its equivalent string representation using the
specified culture-specific formatting information.
</summary>
<param name="value">The <see cref="T:System.Int32"/> to convert.</param>
<param name="provider">An object that supplies culture-specific formatting information.</param>
<returns>The string representation of the specified <paramref name="value"/> in the format specified
by the <paramref name="provider"/> parameter.</returns>
<remarks>
The <see cref="M:J2N.Numerics.Int32.ToString(System.Int32,System.IFormatProvider)"/> method formats the current instance in
the default ("J") format of a specified culture. If you want to specify a different format or culture, use the
other overloads of the <see cref="M:J2N.Numerics.Int32.ToString(System.Int32,System.String,System.IFormatProvider)"/> method, as follows:
<list type="table">
<listheader>
<term>To use format</term>
<term>For culture</term>
<term>Use the overload</term>
</listheader>
<item>
<term>Default ("J") format</term>
<term>Default (current) culture</term>
<term><see cref="M:J2N.Numerics.Int32.ToString(System.Int32)"/> or <see cref="M:J2N.Numerics.Int32.ToString"/></term>
</item>
<item>
<term>A specific format or precision</term>
<term>Default (current) culture</term>
<term><see cref="M:J2N.Numerics.Int32.ToString(System.Int32,System.String)"/> or <see cref="M:J2N.Numerics.Int32.ToString(System.String)"/></term>
</item>
<item>
<term>A specific format or precision</term>
<term>A specific culture</term>
<term><see cref="M:J2N.Numerics.Int32.ToString(System.Int32,System.String,System.IFormatProvider)"/> or <see cref="M:J2N.Numerics.Int32.ToString(System.String,System.IFormatProvider)"/></term>
</item>
</list>
<para/>
The return value is formatted with the Java numeric format specifier ("J").
<para/>
The <paramref name="provider"/> parameter is an object that implements the <see cref="T:System.IFormatProvider"/> interface. Its <see cref="M:System.IFormatProvider.GetFormat(System.Type)"/>
method returns a <see cref="T:System.Globalization.NumberFormatInfo"/> object that provides culture-specific information about the format of the string that is
returned by this method. The object that implements <see cref="T:System.IFormatProvider"/> can be any of the following:
<list type="bullet">
<item><description>A <see cref="T:System.Globalization.CultureInfo"/> object that represents the culture whose formatting rules are to be used.</description></item>
<item><description>A <see cref="T:System.Globalization.NumberFormatInfo"/> object that contains specific numeric formatting information for this value.</description></item>
<item><description>A custom object that implements <see cref="T:System.IFormatProvider"/>.</description></item>
</list>
<para/>
If provider is <c>null</c> or a <see cref="T:System.Globalization.NumberFormatInfo"/> object cannot be obtained from provider, the return value is formatted
using the <see cref="T:System.Globalization.NumberFormatInfo"/> object for the thread current culture. For information about the thread current culture, see
<see cref="P:System.Threading.Thread.CurrentCulture"/>.
<para/>
.NET provides extensive formatting support, which is described in greater detail in the following formatting topics:
<list type="bullet">
<item><description>For more information about numeric format specifiers, see
<a href="https://docs.microsoft.com/en-us/dotnet/standard/base-types/standard-numeric-format-strings">Standard Numeric Format Strings</a>
and <a href="https://docs.microsoft.com/en-us/dotnet/standard/base-types/custom-numeric-format-strings">Custom Numeric Format Strings</a>.
</description></item>
<item><description>For more information about formatting, see
<a href="https://docs.microsoft.com/en-us/dotnet/standard/base-types/formatting-types">Formatting Types</a>.</description></item>
</list>
</remarks>
<seealso cref="M:J2N.Numerics.Int32.Parse(System.String,System.IFormatProvider)"/>
</member>
<member name="M:J2N.Numerics.Int32.ToString(System.Int32,System.String,System.IFormatProvider)">
<summary>
Converts the specified <paramref name="value"/> to its equivalent string representation using the specified format
and culture-specific formatting information.
</summary>
<param name="value">The <see cref="T:System.Int32"/> to convert.</param>
<param name="format">A standard or custom numeric format string.</param>
<param name="provider">An object that supplies culture-specific formatting information.</param>
<returns>The string representation of the specified <paramref name="value"/> parameter, formatted as specified by the <paramref name="format"/>
and <paramref name="provider"/> parameters.</returns>
<exception cref="T:System.FormatException"><paramref name="format"/> includes an unsupported specifier. Supported format specifiers are listed
in the Remarks section.</exception>
<remarks>
The <see cref="M:J2N.Numerics.Int32.ToString(System.Int32,System.String,System.IFormatProvider)"/> method formats the current instance in
a specified format of a specified culture. If you want to specify a different format or culture, use the
other overloads of the <see cref="M:J2N.Numerics.Int32.ToString(System.Int32,System.String,System.IFormatProvider)"/> method, as follows:
<list type="table">
<listheader>
<term>To use format</term>
<term>For culture</term>
<term>Use the overload</term>
</listheader>
<item>
<term>Default ("J") format</term>
<term>Default (current) culture</term>
<term><see cref="M:J2N.Numerics.Int32.ToString(System.Int32)"/> or <see cref="M:J2N.Numerics.Int32.ToString"/></term>
</item>
<item>
<term>Default ("J") format</term>
<term>A specific culture</term>
<term><see cref="M:J2N.Numerics.Int32.ToString(System.Int32,System.IFormatProvider)"/> or <see cref="M:J2N.Numerics.Int32.ToString(System.IFormatProvider)"/></term>
</item>
<item>
<term>A specific format or precision</term>
<term>Default (current) culture</term>
<term><see cref="M:J2N.Numerics.Int32.ToString(System.Int32,System.String)"/> or <see cref="M:J2N.Numerics.Int32.ToString(System.String)"/></term>
</item>
</list>
<para/>
The <see cref="M:J2N.Numerics.Int32.ToString(System.Int32,System.String,System.IFormatProvider)"/> method formats a <see cref="T:System.Int32"/> value in a specified format
of a specified culture. To format a number by using the default ("J") format of the current culture, call the
<see cref="M:J2N.Numerics.Int32.ToString(System.Int32)"/> method. To format a number by using a specified format of the current culture, call the
<see cref="M:J2N.Numerics.Int32.ToString(System.Int32,System.String)"/> method.
<para/>
The <paramref name="format"/> parameter can be either a standard or a custom numeric format string. All standard
numeric format strings other than "R" (or "r") are supported, as are all custom numeric format characters. If
<paramref name="format"/> is <c>null</c> or an empty string (""), the return value of this method is formatted
with the Java numeric format specifier ("J").
<para/>
The <paramref name="provider"/> parameter is an object that implements the <see cref="T:System.IFormatProvider"/> interface. Its <see cref="M:System.IFormatProvider.GetFormat(System.Type)"/>
method returns a <see cref="T:System.Globalization.NumberFormatInfo"/> object that provides culture-specific information about the format of the string that is
returned by this method. The object that implements <see cref="T:System.IFormatProvider"/> can be any of the following:
<list type="bullet">
<item><description>A <see cref="T:System.Globalization.CultureInfo"/> object that represents the culture whose formatting rules are to be used.</description></item>
<item><description>A <see cref="T:System.Globalization.NumberFormatInfo"/> object that contains specific numeric formatting information for this value.</description></item>
<item><description>A custom object that implements <see cref="T:System.IFormatProvider"/>.</description></item>
</list>
<para/>
If provider is <c>null</c> or a <see cref="T:System.Globalization.NumberFormatInfo"/> object cannot be obtained from provider, the return value is formatted
using the <see cref="T:System.Globalization.NumberFormatInfo"/> object for the thread current culture. For information about the thread current culture, see
<see cref="P:System.Threading.Thread.CurrentCulture"/>.
<para/>
.NET provides extensive formatting support, which is described in greater detail in the following formatting topics:
<list type="bullet">
<item><description>For more information about numeric format specifiers, see
<a href="https://docs.microsoft.com/en-us/dotnet/standard/base-types/standard-numeric-format-strings">Standard Numeric Format Strings</a>
and <a href="https://docs.microsoft.com/en-us/dotnet/standard/base-types/custom-numeric-format-strings">Custom Numeric Format Strings</a>.
</description></item>
<item><description>For more information about formatting, see
<a href="https://docs.microsoft.com/en-us/dotnet/standard/base-types/formatting-types">Formatting Types</a>.</description></item>
</list>
</remarks>
<seealso cref="M:J2N.Numerics.Int32.Parse(System.String,System.IFormatProvider)"/>
</member>
<member name="M:J2N.Numerics.Int32.TryFormat(System.Span{System.Char},System.Int32@,System.ReadOnlySpan{System.Char},System.IFormatProvider)">
<summary>
Tries to format the value of the current integer number instance into the provided span of characters.
</summary>
<param name="destination">The span in which to write this instance's value formatted as a span of characters.</param>
<param name="charsWritten">When this method returns, contains the number of characters that were written in
<paramref name="destination"/>.</param>
<param name="format">A span containing the characters that represent a standard or custom format string that
defines the acceptable format for <paramref name="destination"/>.</param>
<param name="provider">An optional object that supplies culture-specific formatting information for
<paramref name="destination"/>.</param>
<returns><c>true</c> if the formatting was successful; otherwise, <c>false</c>.</returns>
</member>
<member name="M:J2N.Numerics.Int32.TryFormat(System.Int32,System.Span{System.Char},System.Int32@,System.ReadOnlySpan{System.Char},System.IFormatProvider)">
<summary>
Tries to format the value of the <paramref name="value"/> into the provided span of characters.
</summary>
<param name="value">The integer number to format.</param>
<param name="destination">The span in which to write this instance's value formatted as a span of characters.</param>
<param name="charsWritten">When this method returns, contains the number of characters that were written in
<paramref name="destination"/>.</param>
<param name="format">A span containing the characters that represent a standard or custom format string that
defines the acceptable format for <paramref name="destination"/>.</param>
<param name="provider">An optional object that supplies culture-specific formatting information for
<paramref name="destination"/>.</param>
<returns><c>true</c> if the formatting was successful; otherwise, <c>false</c>.</returns>
</member>
<member name="M:J2N.Numerics.Int32.HighestOneBit(System.Int32)">
<summary>
Returns an <see cref="T:System.Int32"/> value with at most a single one-bit, in the
position of the highest-order ("leftmost") one-bit in the specified
<paramref name="value"/>. Returns zero if the specified value has no
one-bits in its two's complement binary representation, that is, if it
is equal to zero.
</summary>
<param name="value">The <see cref="T:System.Int32"/> to examine.</param>
<returns>An <see cref="T:System.Int32"/> value with a single one-bit, in the position
of the highest-order one-bit in the specified <paramref name="value"/>, or zero if
the specified <paramref name="value"/> is itself equal to zero.</returns>
</member>
<member name="M:J2N.Numerics.Int32.LowestOneBit(System.Int32)">
<summary>
Returns an <see cref="T:System.Int32"/> value with at most a single one-bit, in the
position of the lowest-order ("rightmost") one-bit in the specified
<paramref name="value"/>. Returns zero if the specified value has no
one-bits in its two's complement binary representation, that is, if it
is equal to zero.
</summary>
<param name="value">The <see cref="T:System.Int32"/> to examine.</param>
<returns>An <see cref="T:System.Int32"/> value with a single one-bit, in the position
of the lowest-order one-bit in the specified <paramref name="value"/>, or zero if
the specified <paramref name="value"/> is itself equal to zero.</returns>
</member>
<member name="M:J2N.Numerics.Int32.LeadingZeroCount(System.Int32)">
<summary>
Returns the number of zero bits preceding the highest-order
("leftmost") one-bit in the two's complement binary representation
of the specified <paramref name="value"/>. Returns 32 if the
specified value has no one-bits in its two's complement representation,
in other words if it is equal to zero.
<para/>
Note that this method is closely related to the logarithm base 2.
For all positive <see cref="T:System.Int32"/> values x:
<list type="bullet">
<item><description>floor(log<sub>2</sub>(x)) = <c>31 - Int32.LeadingZeroCount(x)</c></description></item>
<item><description>ceil(log<sub>2</sub>(x)) = <c>32 - Int32.LeadingZeroCount(x - 1)</c></description></item>
</list>
<para/>
Usage Note: This is the same operation as Integer.numberOfLeadingZeros() in the JDK.
</summary>
<param name="value">The <see cref="T:System.Int32"/> to examine.</param>
<returns>The number of zero bits preceding the highest-order
("leftmost") one-bit in the two's complement binary representation
of the specified <paramref name="value"/>, or 32 if the value
is equal to zero.</returns>
</member>
<member name="M:J2N.Numerics.Int32.TrailingZeroCount(System.Int32)">
<summary>
Returns the number of zero bits following the lowest-order ("rightmost")
one-bit in the two's complement binary representation of the specified
<paramref name="value"/>. Returns 32 if the specified value has no
one-bits in its two's complement representation, in other words if it is
equal to zero.
<para/>
Usage Note: This is the same operation as Integer.numberOfTrailingZeros() in the JDK.
</summary>
<param name="value">The <see cref="T:System.Int32"/> to examine.</param>
<returns>The number of zero bits following the lowest-order ("rightmost")
one-bit in the two's complement binary representation of the
specified <paramref name="value"/>, or 32 if the value is equal
to zero.</returns>
</member>
<member name="M:J2N.Numerics.Int32.PopCount(System.Int32)">
<summary>
Returns the population count (number of set bits) of an <see cref="T:System.Int32"/> mask.
<para/>
Usage Note: This is the same operation as Integer.bitCount() in the JDK.
</summary>
<param name="value">The <see cref="T:System.Int32"/> to examine.</param>
<returns>The number of one-bits in the two's complement binary
representation of the specified <paramref name="value"/>.</returns>
</member>
<member name="M:J2N.Numerics.Int32.RotateLeft(System.Int32,System.Int32)">
<summary>
Returns the value obtained by rotating the two's complement binary
representation of the specified <paramref name="value"/> left by the
specified number of bits. (Bits shifted out of the left hand, or
high-order, side reenter on the right, or low-order.)
<para/>
Note that left rotation with a negative distance is equivalent to
right rotation: <c>Int32.RotateLeft(val, -distance) == Int32.RotateRight(val, distance)</c>.
Note also that rotation by any multiple of 32 is a
no-op, so all but the last five bits of the rotation distance can be
ignored, even if the distance is negative:
<c>Int32.RotateLeft(val, distance) == Int32.RotateLeft(val, distance &amp; 0x1F)</c>.
</summary>
<param name="value">The <see cref="T:System.Int32"/> value to rotate left.</param>
<param name="distance">The number of bits to rotate.</param>
<returns>The value obtained by rotating the two's complement binary
representation of the specified <paramref name="value"/> left by the
specified number of bits.</returns>
</member>
<member name="M:J2N.Numerics.Int32.RotateRight(System.Int32,System.Int32)">
<summary>
Returns the value obtained by rotating the two's complement binary
representation of the specified <paramref name="value"/> right by the
specified number of bits. (Bits shifted out of the right hand, or
low-order, side reenter on the left, or high-order.)
<para/>
Note that right rotation with a negative distance is equivalent to
left rotation: <c>Int32.RotateRight(val, -distance) == Int32.RotateLeft(val, distance)</c>.
Note also that rotation by any multiple of 32 is a
no-op, so all but the last five bits of the rotation distance can be
ignored, even if the distance is negative:
<c>Int32.RotateRight(val, distance) == Int32.RotateLeft(val, distance &amp; 0x1F)</c>.
</summary>
<param name="value">The <see cref="T:System.Int32"/> value to rotate right.</param>
<param name="distance">The number of bits to rotate.</param>
<returns>The value obtained by rotating the two's complement binary
representation of the specified <paramref name="value"/> right by the
specified number of bits.</returns>
</member>
<member name="M:J2N.Numerics.Int32.ReverseBytes(System.Int32)">
<summary>
Returns the value obtained by reversing the order of the bytes in the
two's complement representation of the specified <paramref name="value"/>.
</summary>
<param name="value">The <see cref="T:System.Int32"/> value for which to reverse the byte order.</param>
<returns>The value obtained by reversing the bytes in the specified
<paramref name="value"/>.</returns>
</member>
<member name="M:J2N.Numerics.Int32.Reverse(System.Int32)">
<summary>
Returns the value obtained by reversing the order of the bits in the
two's complement binary representation of the specified <paramref name="value"/>.
</summary>
<param name="value">The <see cref="T:System.Int32"/> value for which to reverse the bit order.</param>
<returns>The value obtained by reversing order of the bits in the
specified <paramref name="value"/>.</returns>
</member>
<member name="M:J2N.Numerics.Int32.Signum(System.Int32)">
<summary>
Returns the signum function of the specified <see cref="T:System.Int32"/> value. (The
return value is <c>-1</c> if the specified value is negative; <c>0</c> if the
specified value is zero; and <c>1</c> if the specified value is positive.)
<para/>
This can be useful for testing the results of two <see cref="M:System.IComparable`1.CompareTo(`0)"/>
methods against each other, since only the sign is guaranteed to be the same between implementations.
</summary>
<param name="value">The value whose signum has to be computed.</param>
<returns>The signum function of the specified <see cref="T:System.Int32"/> value.</returns>
</member>
<member name="M:J2N.Numerics.Int32.GetInstance(System.String,System.IFormatProvider)">
<summary>
Converts the string representation of a number in a specified culture-specific format to its
<see cref="T:J2N.Numerics.Int32"/> equivalent.
</summary>
<param name="s">A string containing a number to convert.</param>
<param name="provider">An <see cref="T:System.IFormatProvider"/> that supplies culture-specific formatting information about <paramref name="s"/>.</param>
<returns>An immutable <see cref="T:J2N.Numerics.Int32"/> instance equivalent to the number specified in <paramref name="s"/>.</returns>
<exception cref="T:System.ArgumentNullException"><paramref name="s"/> is <c>null</c>.</exception>
<exception cref="T:System.FormatException"><paramref name="s"/> is not in a valid <see cref="F:J2N.Globalization.NumberStyle.Integer"/> format.</exception>
<exception cref="T:System.OverflowException">
<paramref name="s"/> represents a number less than <see cref="F:System.Int32.MinValue"/> or greater than <see cref="F:System.Int32.MaxValue"/>.
</exception>
<remarks>
The <paramref name="s"/> parameter contains a number of the form:
<para/>
[ws][sign]digits[ws]
<para/>
Elements in square brackets ([ and ]) are optional. The following table describes each element.
<para/>
<list type="table">
<listheader>
<term>Element</term>
<term>Description</term>
</listheader>
<item>
<term><i>ws</i></term>
<term>A series of white-space characters.</term>
</item>
<item>
<term><i>$</i></term>
<term>A culture-specific currency symbol. Its position in the string is defined by the <see cref="P:System.Globalization.NumberFormatInfo.CurrencyNegativePattern"/>
and <see cref="P:System.Globalization.NumberFormatInfo.CurrencyPositivePattern"/> properties of the <see cref="T:System.Globalization.NumberFormatInfo"/> object returned by the
<see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> method of the <paramref name="provider"/> parameter. The current culture's currency symbol can
appear in <paramref name="s"/> if style includes the <see cref="F:J2N.Globalization.NumberStyle.AllowCurrencySymbol"/> flag.</term>
</item>
<item>
<term><i>sign</i></term>
<term>A negative sign symbol or a positive sign symbol as defined by the <see cref="T:System.Globalization.NumberFormatInfo"/> object returned from the
<see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> <paramref name="provider"/>.</term>
</item>
<item>
<term><i>digits</i></term>
<term>A series of digits ranging from 0 to 9.</term>
</item>
</list>
<para/>
The <paramref name="s"/> parameter is interpreted using the <see cref="F:J2N.Globalization.NumberStyle.Integer"/> style. In addition to decimal digits, only
leading and trailing spaces together with a leading sign are allowed in <paramref name="s"/>. To explicitly define the style elements
together with the culture-specific formatting information that can be present in <paramref name="s"/>, use the
<see cref="M:J2N.Numerics.Int32.GetInstance(System.String,J2N.Globalization.NumberStyle,System.IFormatProvider)"/> method.
<para/>
The <paramref name="provider"/> parameter is an <see cref="T:System.IFormatProvider"/> implementation, such as a <see cref="T:System.Globalization.CultureInfo"/> object,
a <see cref="T:System.Globalization.NumberFormatInfo"/> object or a <see cref="T:J2N.Text.StringFormatter"/> object, whose <see cref="M:System.IFormatProvider.GetFormat(System.Type)"/>
method returns a <see cref="T:System.Globalization.NumberFormatInfo"/> object. The <see cref="T:System.Globalization.NumberFormatInfo"/> object provides culture-specific information about
the format of <paramref name="s"/>. When the <see cref="M:J2N.Numerics.Int32.GetInstance(System.String,System.IFormatProvider)"/> method is invoked, it calls the provider parameter's
<see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> method and passes it a <see cref="T:System.Type"/> object that represents the <see cref="T:System.Globalization.NumberFormatInfo"/> type.
The <see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> method then returns the <see cref="T:System.Globalization.NumberFormatInfo"/> object that provides information about the
format of the <paramref name="s"/> parameter. There are three ways to use the <paramref name="provider"/> parameter to supply custom formatting
information to the parse operation:
<list type="bullet">
<item><description>You can pass a <see cref="T:System.Globalization.CultureInfo"/> object that represents the culture that supplies formatting information. Its
<see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> method returns the <see cref="T:System.Globalization.NumberFormatInfo"/> object that provides numeric formatting
information for that culture.</description></item>
<item><description>You can pass the actual <see cref="T:System.Globalization.NumberFormatInfo"/> object that provides numeric formatting information. (Its
implementation of <see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> just returns itself.)</description></item>
<item><description>You can pass a custom object that implements <see cref="T:System.IFormatProvider"/>. Its <see cref="M:System.IFormatProvider.GetFormat(System.Type)"/>
method instantiates and returns the <see cref="T:System.Globalization.NumberFormatInfo"/> object that provides formatting information.</description></item>
</list>
If <paramref name="provider"/> is <c>null</c> or a <see cref="T:System.Globalization.NumberFormatInfo"/> object cannot be obtained, the <see cref="T:System.Globalization.NumberFormatInfo"/>
object for the current culture is used.
</remarks>
<seealso cref="M:J2N.Numerics.Int32.TryParse(System.String,J2N.Globalization.NumberStyle,System.IFormatProvider,System.Int32@)"/>
<seealso cref="M:J2N.Numerics.Int32.Parse(System.String,J2N.Globalization.NumberStyle,System.IFormatProvider)"/>
</member>
<member name="M:J2N.Numerics.Int32.GetInstance(System.String,J2N.Globalization.NumberStyle,System.IFormatProvider)">
<summary>
Converts the string representation of a number in a specified style and culture-specific format to its
<see cref="T:J2N.Numerics.Int32"/> equivalent.
</summary>
<param name="s">A string containing a number to convert.</param>
<param name="style">A bitwise combination of enumeration values that indicates the style elements that can be
present in <paramref name="s"/>. A typical value to specify is <see cref="F:J2N.Globalization.NumberStyle.Integer"/>.</param>
<param name="provider">An <see cref="T:System.IFormatProvider"/> that supplies culture-specific formatting information about <paramref name="s"/>.</param>
<returns>An immutable <see cref="T:J2N.Numerics.Int32"/> instance equivalent to the number specified in <paramref name="s"/>.</returns>
<exception cref="T:System.ArgumentNullException"><paramref name="s"/> is <c>null</c>.</exception>
<exception cref="T:System.ArgumentException">
<paramref name="style"/> is not a <see cref="T:J2N.Globalization.NumberStyle"/> value.
<para/>
-or-
<para/>
<paramref name="style"/> is not a combination of <see cref="F:J2N.Globalization.NumberStyle.AllowHexSpecifier"/> and <see cref="F:J2N.Globalization.NumberStyle.HexNumber"/> values.
</exception>
<exception cref="T:System.FormatException"><paramref name="s"/> is not in a format compliant with <paramref name="style"/>.</exception>
<exception cref="T:System.OverflowException">
<paramref name="s"/> represents a number less than <see cref="F:System.Int32.MinValue"/> or greater than <see cref="F:System.Int32.MaxValue"/>.
<para/>
-or-
<para/>
<paramref name="s"/> includes non-zero fractional digits.
</exception>
<remarks>
The <paramref name="style"/> parameter defines the style elements (such as white space or the positive sign) that are allowed in the
<paramref name="s"/> parameter for the parse operation to succeed. It must be a combination of bit flags from the <see cref="T:J2N.Globalization.NumberStyle"/>
enumeration. Depending on the value of <paramref name="style"/>, the <paramref name="s"/> parameter may include the following elements:
<para/>
[ws][$][sign][digits,]digits[.fractional-digits][e[sign]exponential-digits][ws]
<para/>
Or, if the <paramref name="style"/> parameter includes <see cref="F:J2N.Globalization.NumberStyle.AllowHexSpecifier"/>:
<para/>
[ws]hexdigits[ws]
<para/>
Elements framed in square brackets ([ and ]) are optional. The following table describes each element.
<para/>
<list type="table">
<listheader>
<term>Element</term>
<term>Description</term>
</listheader>
<item>
<term><i>ws</i></term>
<term>A series of white-space characters. White space can appear at the beginning of <paramref name="s"/> if style includes the
<see cref="F:J2N.Globalization.NumberStyle.AllowLeadingWhite"/> flag, and it can appear at the end of <paramref name="s"/> if style includes the
<see cref="F:J2N.Globalization.NumberStyle.AllowTrailingWhite"/> flag.</term>
</item>
<item>
<term><i>$</i></term>
<term>A culture-specific currency symbol. Its position in the string is defined by the <see cref="P:System.Globalization.NumberFormatInfo.CurrencyNegativePattern"/>
and <see cref="P:System.Globalization.NumberFormatInfo.CurrencyPositivePattern"/> properties of the <see cref="T:System.Globalization.NumberFormatInfo"/> object returned by the
<see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> method of the <paramref name="provider"/> parameter. The current culture's currency symbol can
appear in <paramref name="s"/> if style includes the <see cref="F:J2N.Globalization.NumberStyle.AllowCurrencySymbol"/> flag.</term>
</item>
<item>
<term><i>sign</i></term>
<term>A negative sign symbol (-) or a positive sign symbol (+). The sign can appear at the beginning of <paramref name="s"/> if
<paramref name="style"/> includes the <see cref="F:J2N.Globalization.NumberStyle.AllowLeadingSign"/> flag, and it can appear at the end of <paramref name="s"/>
if <paramref name="style"/> includes the <see cref="F:J2N.Globalization.NumberStyle.AllowTrailingSign"/> flag. Parentheses can be used in <paramref name="s"/>
to indicate a negative value if <paramref name="style"/> includes the <see cref="F:J2N.Globalization.NumberStyle.AllowParentheses"/> flag.</term>
</item>
<item>
<term><i>digits</i></term>
<term>A series of digits ranging from 0 to 9.</term>
</item>
<item>
<term><i>.</i></term>
<term>A culture-specific decimal point symbol. The decimal point symbol of the culture specified by <paramref name="provider"/>
can appear in <paramref name="s"/> if <paramref name="style"/> includes the <see cref="F:J2N.Globalization.NumberStyle.AllowDecimalPoint"/> flag.</term>
</item>
<item>
<term><i>fractional-digits</i>
</term>
<term>A series of digits ranging from 0 to 9 that specify the fractional part of the number. Fractional digits can appear in
<paramref name="s"/> if <paramref name="style"/> includes the <see cref="F:J2N.Globalization.NumberStyle.AllowDecimalPoint"/> flag.</term>
</item>
<item>
<term><i>e</i></term>
<term>The 'e' or 'E' character, which indicates that the value is represented in exponential notation. The <paramref name="s"/>
parameter can represent a number in exponential notation if <paramref name="style"/> includes the <see cref="F:J2N.Globalization.NumberStyle.AllowExponent"/> flag.</term>
</item>
<item>
<term><i>exponential-digits</i></term>
<term>A sequence of decimal digits from 0 through 9 that specify an exponent.</term>
</item>
<item>
<term><i>hexdigits</i></term>
<term>A sequence of hexadecimal digits from 0 through f, or 0 through F. Hexadecimal digits can appear in <paramref name="s"/>
if <paramref name="style"/> includes the <see cref="F:J2N.Globalization.NumberStyle.AllowHexSpecifier"/> flag.</term>
</item>
</list>
<para/>
NOTE: Any terminating NUL (U+0000) characters in <paramref name="s"/> are ignored by the parsing operation, regardless of
the value of the <paramref name="style"/> argument.
<para/>
A string with decimal digits only (which corresponds to the <see cref="F:J2N.Globalization.NumberStyle.None"/> flag) always parses successfully.
Most of the remaining <see cref="T:J2N.Globalization.NumberStyle"/> members control elements that may be but are not required to be present in
this input string. The following table indicates how individual <see cref="T:J2N.Globalization.NumberStyle"/> members affect the elements that may
be present in <paramref name="s"/>.
<list type="table">
<listheader>
<term>Non-composite NumberStyle values</term>
<term>Elements permitted in <paramref name="s"/> in addition to digits</term>
</listheader>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.None"/></term>
<term>Decimal digits only.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowDecimalPoint"/></term>
<term>The decimal point (.) and <i>fractional-digits</i> elements. However, <i>fractional-digits</i> must consist
of only one or more 0 digits or the method returns <c>false</c>.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowExponent"/></term>
<term>The <paramref name="s"/> parameter can also use exponential notation. If <paramref name="s"/> represents a
number in exponential notation, it must represent an integer within the range of the <see cref="T:System.Int32"/> data type
without a non-zero, fractional component.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowLeadingWhite"/></term>
<term>The <i>ws</i> element at the beginning of <paramref name="s"/>.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowTrailingWhite"/></term>
<term>The <i>ws</i> element at the end of <paramref name="s"/>.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowLeadingSign"/></term>
<term>A sign can appear before <i>digits</i>.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowTrailingSign"/></term>
<term>A sign can appear after <i>digits</i>.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowParentheses"/></term>
<term>The <i>sign</i> element in the form of parentheses enclosing the numeric value.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowThousands"/></term>
<term>The thousands separator (,) element.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowCurrencySymbol"/></term>
<term>The <i>$</i> element.</term>
</item>
</list>
<para/>
The <see cref="T:J2N.Globalization.NumberStyle"/> enum can be converted to the .NET <see cref="T:System.Globalization.NumberStyles"/> enum by using the
<see cref="M:J2N.Globalization.NumberStyleExtensions.ToNumberStyles(J2N.Globalization.NumberStyle)"/> extension method.
Similarly, <see cref="T:System.Globalization.NumberStyles"/> enum can be converted to the J2N <see cref="T:J2N.Globalization.NumberStyle"/> enum by using
the <see cref="M:J2N.Globalization.NumberStyleExtensions.ToNumberStyle(System.Globalization.NumberStyles)"/> extension method.
<para/>
If the <see cref="F:J2N.Globalization.NumberStyle.AllowHexSpecifier"/> flag is used, <paramref name="s"/> must be a hexadecimal value without a prefix.
For example, "F3" parses successfully, but "0xF3" does not. The only other flags that can be present in <paramref name="style"/> are
<see cref="F:J2N.Globalization.NumberStyle.AllowLeadingWhite"/> and <see cref="F:J2N.Globalization.NumberStyle.AllowTrailingWhite"/>. (The <see cref="T:J2N.Globalization.NumberStyle"/> enumeration
has a composite number style, <see cref="F:J2N.Globalization.NumberStyle.HexNumber"/>, that includes both white space flags.)
<para/>
The <paramref name="provider"/> parameter is an <see cref="T:System.IFormatProvider"/> implementation, such as a <see cref="T:System.Globalization.CultureInfo"/> object,
a <see cref="T:System.Globalization.NumberFormatInfo"/> object or a <see cref="T:J2N.Text.StringFormatter"/> object, whose <see cref="M:System.IFormatProvider.GetFormat(System.Type)"/>
method returns a <see cref="T:System.Globalization.NumberFormatInfo"/> object. The <see cref="T:System.Globalization.NumberFormatInfo"/> object provides culture-specific information about
the format of <paramref name="s"/>. When the <see cref="M:J2N.Numerics.Int32.GetInstance(System.String,System.IFormatProvider)"/> method is invoked, it calls the provider parameter's
<see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> method and passes it a <see cref="T:System.Type"/> object that represents the <see cref="T:System.Globalization.NumberFormatInfo"/> type.
The <see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> method then returns the <see cref="T:System.Globalization.NumberFormatInfo"/> object that provides information about the
format of the <paramref name="s"/> parameter. There are three ways to use the <paramref name="provider"/> parameter to supply custom formatting
information to the parse operation:
<list type="bullet">
<item><description>You can pass a <see cref="T:System.Globalization.CultureInfo"/> object that represents the culture that supplies formatting information. Its
<see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> method returns the <see cref="T:System.Globalization.NumberFormatInfo"/> object that provides numeric formatting
information for that culture.</description></item>
<item><description>You can pass the actual <see cref="T:System.Globalization.NumberFormatInfo"/> object that provides numeric formatting information. (Its
implementation of <see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> just returns itself.)</description></item>
<item><description>You can pass a custom object that implements <see cref="T:System.IFormatProvider"/>. Its <see cref="M:System.IFormatProvider.GetFormat(System.Type)"/>
method instantiates and returns the <see cref="T:System.Globalization.NumberFormatInfo"/> object that provides formatting information.</description></item>
</list>
If <paramref name="provider"/> is <c>null</c> or a <see cref="T:System.Globalization.NumberFormatInfo"/> object cannot be obtained, the <see cref="T:System.Globalization.NumberFormatInfo"/>
object for the current culture is used.
</remarks>
<seealso cref="M:J2N.Numerics.Int32.TryParse(System.String,J2N.Globalization.NumberStyle,System.IFormatProvider,System.Int32@)"/>
<seealso cref="M:J2N.Numerics.Int32.Parse(System.String,J2N.Globalization.NumberStyle,System.IFormatProvider)"/>
</member>
<member name="M:J2N.Numerics.Int32.GetInstance(System.String,System.Int32)">
<summary>
Parses the <see cref="T:System.String"/> argument as a signed <see cref="T:J2N.Numerics.Int32"/> instance in the specified <paramref name="radix"/>.
<para/>
Usage Note: This method is similar to the <see cref="M:System.Convert.ToInt64(System.String,System.Int32)"/> method. It differs in that
it allows the use of the ASCII character \u002d ('-') or \u002B ('+') in any <paramref name="radix"/>.
<para/>
This is the same operation as Integer.valueOf(string) in the JDK when specifying a <paramref name="radix"/> of 10, or
Integer.valueOf(string, int) for any valid <paramref name="radix"/>.
</summary>
<param name="s">The <see cref="T:System.String"/> containing the <see cref="T:System.Int32"/> representation to be parsed.</param>
<param name="radix">The radix (or base) to use when parsing <paramref name="s"/>. The value must be in the range
<see cref="F:J2N.Character.MinRadix"/> - <see cref="F:J2N.Character.MaxRadix"/> inclusive.</param>
<returns>An immutable <see cref="T:J2N.Numerics.Int32"/> instance that is equivalent to the number in <paramref name="s"/>, or 0 (zero) if
<paramref name="s"/> is <c>null</c>.</returns>
<remarks>
If <paramref name="radix"/> is 16, you can prefix the number specified by the <paramref name="s"/> parameter with "0x" or "0X".
<para/>
To specify a negative value for base (radix) 10 numeric representations, use the ASCII character \u002d ('-').
<para/>
For any other <paramref name="radix"/>, negative values may either be specified with ASCII character \u002d ('-')
(as in Java) or by specifying the two's complement representation (as in .NET), but not both.
In the latter case, the highest-order binary bit of a long integer (bit 31) is interpreted as the sign bit.
As a result, it is possible to write code in which a non-base 10 number that is out of the range of the <see cref="T:System.Int32"/>
data type is converted to an <see cref="T:System.Int32"/> value without the method throwing an exception.
</remarks>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="radix"/> is less than <see cref="F:J2N.Character.MinRadix"/> or greater than <see cref="F:J2N.Character.MaxRadix"/>.
</exception>
<exception cref="T:System.FormatException">
<paramref name="s"/> contains a character that is not a valid digit in the base specified by <paramref name="radix"/>.
The exception message indicates that there are no digits to convert if the first character in <paramref name="s"/> is invalid;
otherwise, the message indicates that <paramref name="s"/> contains invalid trailing characters.
<para/>
-or-
<para/>
<paramref name="s"/> contains only a the ASCII character \u002d ('-') or \u002B ('+') sign and/or hexadecimal
prefix 0X or 0x with no digits.
</exception>
<exception cref="T:System.OverflowException">
<paramref name="s"/> represents a number that is less than <see cref="F:System.Int32.MinValue"/> or greater than <see cref="F:System.Int32.MaxValue"/>.
</exception>
<seealso cref="M:J2N.Numerics.Int32.TryParse(System.String,System.Int32,System.Int32@)"/>
<seealso cref="M:J2N.Numerics.Int32.Parse(System.String,System.Int32)"/>
</member>
<member name="M:J2N.Numerics.Int32.GetInstance(System.Int32)">
<summary>
Returns an immutable <see cref="T:J2N.Numerics.Int32"/> instance for the specified <paramref name="value"/>.
<para/>
Usage Note: This is the same operation as Integer.valueOf() in the JDK.
</summary>
<param name="value">The <see cref="T:System.Int32"/> value the returned instance represents.</param>
<returns>An immutable <see cref="T:J2N.Numerics.Int32"/> instance containing the <paramref name="value"/>,
which may be retrieved from a cache.</returns>
</member>
<member name="F:J2N.Numerics.Int32.ValueOfCache.Cache">
<summary>
A cache of instances used by <see cref="M:J2N.Numerics.Int32.GetInstance(System.Int32)"/> and auto-boxing.
</summary>
</member>
<member name="M:J2N.Numerics.Int32.op_Implicit(J2N.Numerics.Int32)~System.Int32">
<inheritdoc/>
</member>
<member name="M:J2N.Numerics.Int32.op_Implicit(System.Int32)~J2N.Numerics.Int32">
<inheritdoc/>
</member>
<member name="M:J2N.Numerics.Int32.ToByte">
<inheritdoc/>
</member>
<member name="M:J2N.Numerics.Int32.ToDouble">
<inheritdoc/>
</member>
<member name="M:J2N.Numerics.Int32.ToInt16">
<inheritdoc/>
</member>
<member name="M:J2N.Numerics.Int32.ToInt32">
<inheritdoc/>
</member>
<member name="M:J2N.Numerics.Int32.ToInt64">
<inheritdoc/>
</member>
<member name="M:J2N.Numerics.Int32.ToSByte">
<inheritdoc/>
</member>
<member name="M:J2N.Numerics.Int32.ToSingle">
<inheritdoc/>
</member>
<member name="M:J2N.Numerics.Int32.GetTypeCode">
<summary>
Returns the <see cref="T:System.TypeCode"/> for value type <see cref="T:System.Int32"/>.
</summary>
<returns>The enumerated constant, <see cref="F:System.TypeCode.Int32"/>.</returns>
</member>
<member name="T:J2N.Numerics.Int64">
<summary>
An immutable reference type that wraps the primitive <see cref="T:System.Int64"/> type.
<para/>
In addition, this class provides methods for converting a <see cref="T:System.Int64"/> to a <see cref="T:System.String"/> and
a <see cref="T:System.String"/> to a <see cref="T:System.Int64"/> that are compatible with Java.
<para/>
Instances of this class can be produced implicitly by setting a <see cref="T:System.Int64"/> value to a variable declared
as <see cref="T:J2N.Numerics.Int64"/>
<code>
long value = 4;
Int64 instance = value;
</code>
Or explicitly by calling one of the <see cref="M:J2N.Numerics.Int64.GetInstance(System.Int64)"/>, <see cref="M:J2N.Numerics.Int64.Decode(System.String)"/>,
or <see cref="M:J2N.Numerics.Int64.TryDecode(System.String,J2N.Numerics.Int64@)"/> methods.
<para/>
The <see cref="T:System.Int64"/> value of an <see cref="T:J2N.Numerics.Int64"/> can also be retrieved in several ways. For implicit
conversion, simply assign a <see cref="T:System.Int64"/> variable an instance of <see cref="T:J2N.Numerics.Int64"/>.
<code>
Int64 instance = Int64.GetInstance(4);
long value = instance;
</code>
To explicitly get the value, call <see cref="M:J2N.Numerics.Int64.ToInt64"/> or use the <see cref="T:System.Convert"/> class.
<code>
long converted1 = instance.ToInt64();
long converted2 = Convert.ToInt64(instance, NumberFormatInfo.InvariantInfo);
</code>
<para/>
In most cases, the number types in .NET will suffice. The main reason for creating an object to wrap numeric types is to
provide a way to make strongly-typed instances that can co-exist in collections and arrays with reference types.
For example, when creating a table object that has columns with a mix of number and string data types.
When porting code from Java, there are sometimes cases where the design didn't factor in the use of value types,
so these classes can be used rather than reworking the design.
For more information about numbers classes, see
<a href="https://docs.oracle.com/javase/tutorial/java/data/numberclasses.html">The Numbers Classes</a>.
</summary>
<seealso cref="T:J2N.Numerics.Number"/>
<seealso cref="T:System.IConvertible"/>
<seealso cref="T:System.IFormattable"/>
<seealso cref="T:System.IComparable"/>
</member>
<member name="F:J2N.Numerics.Int64.value">
<summary>
The value which the receiver represents.
</summary>
</member>
<member name="F:J2N.Numerics.Int64.Size">
<summary>
Constant for the number of bits needed to represent a <see cref="T:System.Int64"/> in
two's complement form.
</summary>
</member>
<member name="M:J2N.Numerics.Int64.#ctor(System.Int64)">
<summary>
Initializes a new instance of the <see cref="T:J2N.Numerics.Int64"/> class.
</summary>
<param name="value">The primitive <see cref="T:System.Int64"/> value to store in the new instance.</param>
</member>
<member name="M:J2N.Numerics.Int64.CompareTo(J2N.Numerics.Int64)">
<summary>
Compares this instance to a specified <see cref="T:J2N.Numerics.Int64"/> and returns an indication of their relative values.
</summary>
<param name="value">An <see cref="T:J2N.Numerics.Int64"/> to compare, or <c>null</c>.</param>
<returns>
A signed integer that indicates the relative order of this instance and <paramref name="value"/>.
<list type="table">
<listheader>
<term>Return Value</term>
<term>Description </term>
</listheader>
<item>
<term>Less than zero</term>
<term>This instance is less than <paramref name="value"/>.</term>
</item>
<item>
<term>Zero</term>
<term>This instance is equal to <paramref name="value"/>.</term>
</item>
<item>
<term>Greater than zero</term>
<term>This instance is greater than <paramref name="value"/>, or <paramref name="value"/> is <c>null</c>.</term>
</item>
</list>
</returns>
<remarks>
This method implements the <see cref="T:System.IComparable`1"/> interface and performs slightly better than the <see cref="M:J2N.Numerics.Int64.CompareTo(System.Object)"/>
method because it does not have to convert the <paramref name="value"/> parameter to an object.
</remarks>
</member>
<member name="M:J2N.Numerics.Int64.CompareTo(System.Object)">
<summary>
Compares this instance to a specified object and returns an indication of their relative values.
</summary>
<param name="value">An object to compare, or <c>null</c>.</param>
<returns>
A signed integer that indicates the relative order of this instance and <paramref name="value"/>.
<list type="table">
<listheader>
<term>Return Value</term>
<term>Description </term>
</listheader>
<item>
<term>Less than zero</term>
<term>This instance is less than <paramref name="value"/>.</term>
</item>
<item>
<term>Zero</term>
<term>This instance is equal to <paramref name="value"/>.</term>
</item>
<item>
<term>Greater than zero</term>
<term>This instance is greater than <paramref name="value"/>, or <paramref name="value"/> is <c>null</c>.</term>
</item>
</list>
</returns>
<exception cref="T:System.ArgumentException"><paramref name="value"/> is not a <see cref="T:J2N.Numerics.Int64"/>.</exception>
<remarks>
<paramref name="value"/> must be <c>null</c> or an instance of <see cref="T:J2N.Numerics.Int64"/>; otherwise, an exception is thrown.
<para/>
Any instance of <see cref="T:J2N.Numerics.Int64"/>, regardless of its value, is considered greater than <c>null</c>.
<para/>
This method is implemented to support the <see cref="T:System.IComparable"/> interface.
</remarks>
</member>
<member name="M:J2N.Numerics.Int64.Decode(System.String)">
<summary>
Decodes a <see cref="T:System.String"/> into an <see cref="T:J2N.Numerics.Int64"/>. Accepts decimal, hexadecimal, and octal numbers given by the following grammar:
<list type="bullet">
<item>
<term><i>DecodableString:</i></term>
<list type="bullet">
<item><term><i>Sign</i> (<sub>opt</sub>) <i>DecimalNumeral</i></term></item>
<item><term><i>Sign</i> (<sub>opt</sub>) <c>0x</c> <i>HexDigits</i></term></item>
<item><term><i>Sign</i> (<sub>opt</sub>) <c>0X</c> <i>HexDigits</i></term></item>
<item><term><i>Sign</i> (<sub>opt</sub>) <c>#</c> <i>HexDigits</i></term></item>
<item><term><i>Sign</i> (<sub>opt</sub>) <c>0</c> <i>OctalDigits</i></term></item>
</list>
</item>
<item>
<term><i>Sign:</i></term>
<list type="bullet">
<item><term><c>-</c></term></item>
<item><term><c>+</c></term></item>
</list>
</item>
</list>
<para/>
<i>DecimalNumeral</i>, <i>HexDigits</i>, and <i>OctalDigits</i> are as defined in section
<a href="https://docs.oracle.com/javase/specs/jls/se16/html/jls-3.html#jls-3.10.1">3.10.1</a> of
The Java Language Specification, except that underscores are not accepted between digits.
<para/>
The sequence of characters following an optional sign and/or radix specifier (<c>"0x"</c>, <c>"0X"</c>, <c>"#"</c>, or leading zero) is
parsed as by the <see cref="M:J2N.Numerics.Int64.Parse(System.String,System.Int32)"/> method with the indicated radix (10, 16, or 8).
The sequence of characters must represent a positive value or an <see cref="T:System.OverflowException"/> is thrown.
The result is negated if the first character of the specified <see cref="T:System.String"/> is
the ASCII character \u002d ('-'). No whitespace characters are permitted in the <see cref="T:System.String"/>.
</summary>
<param name="s">A <see cref="T:System.String"/> that contains the number to convert.</param>
<returns>A 64-bit signed integer that is equivalent to the number in <paramref name="s"/>.</returns>
<exception cref="T:System.ArgumentNullException"><paramref name="s"/> is <c>null</c>.</exception>
<exception cref="T:System.FormatException">
<paramref name="s"/> contains a character that is not a valid digit in the base specified by its format.
The exception message indicates that there are no digits to convert if the first character in <paramref name="s"/> is invalid;
otherwise, the message indicates that <paramref name="s"/> contains invalid trailing characters.
<para/>
-or-
<para/>
<paramref name="s"/> contains only a the ASCII character \u002d ('-') or \u002B ('+') sign and/or hexadecimal
prefix (0X, 0x, or #) or octal prefix (0) with no digits.
</exception>
<exception cref="T:System.OverflowException">
<paramref name="s"/> represents a number that is less than <see cref="F:System.Int64.MinValue"/> or greater than <see cref="F:System.Int64.MaxValue"/>.
<para/>
-or-
<para/>
<paramref name="s"/> represents a two's complement negative number. Only positive values are allowed without a negative sign.
</exception>
</member>
<member name="M:J2N.Numerics.Int64.TryDecode(System.String,J2N.Numerics.Int64@)">
<summary>
Decodes a <see cref="T:System.String"/> into an <see cref="T:J2N.Numerics.Int64"/>. Accepts decimal, hexadecimal, and octal numbers given by the following grammar:
<list type="bullet">
<item>
<term><i>DecodableString:</i></term>
<list type="bullet">
<item><term><i>Sign</i> (<sub>opt</sub>) <i>DecimalNumeral</i></term></item>
<item><term><i>Sign</i> (<sub>opt</sub>) <c>0x</c> <i>HexDigits</i></term></item>
<item><term><i>Sign</i> (<sub>opt</sub>) <c>0X</c> <i>HexDigits</i></term></item>
<item><term><i>Sign</i> (<sub>opt</sub>) <c>#</c> <i>HexDigits</i></term></item>
<item><term><i>Sign</i> (<sub>opt</sub>) <c>0</c> <i>OctalDigits</i></term></item>
</list>
</item>
<item>
<term><i>Sign:</i></term>
<list type="bullet">
<item><term><c>-</c></term></item>
<item><term><c>+</c></term></item>
</list>
</item>
</list>
<para/>
<i>DecimalNumeral</i>, <i>HexDigits</i>, and <i>OctalDigits</i> are as defined in section
<a href="https://docs.oracle.com/javase/specs/jls/se16/html/jls-3.html#jls-3.10.1">3.10.1</a> of
The Java Language Specification, except that underscores are not accepted between digits.
<para/>
The sequence of characters following an optional sign and/or radix specifier (<c>"0x"</c>, <c>"0X"</c>, <c>"#"</c>, or leading zero) is
parsed as by the <see cref="M:J2N.Numerics.Int64.Parse(System.String,System.Int32)"/> method with the indicated radix (10, 16, or 8).
The sequence of characters must represent a positive value.
The result is negated if the first character of the specified <see cref="T:System.String"/> is
the ASCII character \u002d ('-'). No whitespace characters are permitted in the <see cref="T:System.String"/>.
</summary>
<param name="s">A <see cref="T:System.String"/> that contains the number to convert.</param>
<param name="result">When this method returns, contains the 64-bit signed integer value equivalent to the number contained in <paramref name="s"/>,
if the conversion succeeded, or zero if the conversion failed. The conversion fails if the <paramref name="s"/> parameter is <c>null</c> or
<see cref="F:System.String.Empty"/>, is not of the correct format, or represents a number less than <see cref="F:System.Int64.MinValue"/> or greater than
<see cref="F:System.Int64.MaxValue"/>. This parameter is passed uninitialized; any value originally supplied in result will be overwritten.</param>
<returns><c>true</c> if <paramref name="s"/> was converted successfully; otherwise, <c>false</c>.</returns>
</member>
<member name="M:J2N.Numerics.Int64.Equals(J2N.Numerics.Int64)">
<summary>
Returns a value indicating whether this instance is equal to a specified <see cref="T:J2N.Numerics.Int64"/> value.
</summary>
<param name="obj">A <see cref="T:J2N.Numerics.Int64"/> value to compare to this instance.</param>
<returns><c>true</c> if <paramref name="obj"/> has the same value as this instance; otherwise, <c>false</c>.</returns>
<remarks>This method implements the <see cref="T:System.IEquatable`1"/> interface, and performs slightly better than
<see cref="M:J2N.Numerics.Int64.Equals(System.Object)"/> because it does not have to convert the <paramref name="obj"/> parameter to an object.</remarks>
</member>
<member name="M:J2N.Numerics.Int64.Equals(System.Object)">
<summary>
Returns a value indicating whether this instance is equal to a specified object.
</summary>
<param name="obj">An object to compare with this instance.</param>
<returns><c>true</c> if <paramref name="obj"/> is an instance of <see cref="T:J2N.Numerics.Int64"/> and equals the value of
this instance; otherwise, <c>false</c>.</returns>
</member>
<member name="M:J2N.Numerics.Int64.GetHashCode">
<summary>
Returns the hash code for this instance.
</summary>
<returns>A 32-bit signed integer hash code.</returns>
</member>
<member name="M:J2N.Numerics.Int64.Parse(System.ReadOnlySpan{System.Char},System.Int32,System.Int32,System.Int32)">
<summary>
Parses the <see cref="T:System.ReadOnlySpan`1"/> argument as a signed <see cref="T:System.Int64"/> in the specified <paramref name="radix"/>, beginning at the
specified <paramref name="startIndex"/> with the specified number of characters in <paramref name="length"/>.
<para/>
IMPORTANT: This method has .NET semantics. That is, the <paramref name="length"/> parameter
is a length rather than an exclusive end index as would be the case in Java. To translate from
Java, use <c>endIndex - beginIndex</c> to obtain the <paramref name="length"/>.
<para/>
Usage Note: This method is similar to the <see cref="M:System.Convert.ToInt64(System.String,System.Int32)"/> method, however it allows conversion
of the value without allocating a substring. It also differs in that it allows the use of the ASCII character \u002d ('-')
or \u002B ('+') in any <paramref name="radix"/>.
<para/>
Supports any BMP (Basic Multilingual Plane) or SMP (Supplementary Mulitlingual Plane) digit as defined by Unicode 10.0.
</summary>
<param name="s">The <see cref="T:System.ReadOnlySpan`1"/> containing the <see cref="T:System.Int64"/> representation to be parsed.</param>
<param name="startIndex">The zero-based starting character position of a region in <paramref name="s"/>.</param>
<param name="length">The number of characters in the region to parse.</param>
<param name="radix">The radix (or base) to use when parsing <paramref name="s"/>. The value must be in the range
<see cref="F:J2N.Character.MinRadix"/> - <see cref="F:J2N.Character.MaxRadix"/> inclusive.</param>
<returns>The signed <see cref="T:System.Int64"/> represented by the subsequence in the specified <paramref name="radix"/>.</returns>
<remarks>
If <paramref name="radix"/> is 16, you can prefix the number specified by the <paramref name="s"/> parameter with "0x" or "0X".
<para/>
To specify a negative value for base (radix) 10 numeric representations, use the ASCII character \u002d ('-').
<para/>
For any other <paramref name="radix"/>, negative values may either be specified with ASCII character \u002d ('-')
(as in Java) or by specifying the two's complement representation (as in .NET), but not both.
In the latter case, the highest-order binary bit of a long integer (bit 63) is interpreted as the sign bit.
As a result, it is possible to write code in which a non-base 10 number that is out of the range of the <see cref="T:System.Int64"/>
data type is converted to an <see cref="T:System.Int64"/> value without the method throwing an exception.
</remarks>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="startIndex"/> or <paramref name="length"/> is less than zero.
<para/>
-or-
<para/>
<paramref name="startIndex"/> and <paramref name="length"/> refer to a location outside of <paramref name="s"/>.
<para/>
-or-
<para/>
<paramref name="radix"/> is less than <see cref="F:J2N.Character.MinRadix"/> or greater than <see cref="F:J2N.Character.MaxRadix"/>.
</exception>
<exception cref="T:System.FormatException">
The range of characters in <paramref name="s"/> specified by <paramref name="startIndex"/> and <paramref name="length"/>
contains a character that is not a valid digit in the base specified by <paramref name="radix"/>.
The exception message indicates that there are no digits to convert if the first character specified by
<paramref name="startIndex"/> is invalid; otherwise, the message indicates that the range of characters in
<paramref name="s"/> specified by <paramref name="startIndex"/> and <paramref name="length"/> contains invalid trailing characters.
<para/>
-or-
<para/>
The range of characters in <paramref name="s"/> specified by <paramref name="startIndex"/> and <paramref name="length"/>
contain only a the ASCII character \u002d ('-') or \u002B ('+') sign and/or hexadecimal prefix 0X or 0x with no digits.
<para/>
-or-
<para/>
<paramref name="length"/> is zero.
</exception>
<exception cref="T:System.OverflowException">
The range of characters in <paramref name="s"/> specified by <paramref name="startIndex"/> and <paramref name="length"/>
represents a number that is less than <see cref="F:System.Int64.MinValue"/> or greater than <see cref="F:System.Int64.MaxValue"/>.
</exception>
<seealso cref="M:J2N.Numerics.Int64.TryParse(System.ReadOnlySpan{System.Char},System.Int32,System.Int32,System.Int32,System.Int64@)"/>
<seealso cref="M:J2N.Numerics.Int64.Parse(System.String,System.Int32)"/>
</member>
<member name="M:J2N.Numerics.Int64.Parse(System.String,System.Int32,System.Int32,System.Int32)">
<summary>
Parses the <see cref="T:System.String"/> argument as a signed <see cref="T:System.Int64"/> in the specified <paramref name="radix"/>, beginning at the
specified <paramref name="startIndex"/> with the specified number of characters in <paramref name="length"/>.
<para/>
IMPORTANT: This method has .NET semantics. That is, the <paramref name="length"/> parameter
is a length rather than an exclusive end index as would be the case in Java. To translate from
Java, use <c>endIndex - beginIndex</c> to obtain the <paramref name="length"/>.
<para/>
Usage Note: This method is similar to the <see cref="M:System.Convert.ToInt64(System.String,System.Int32)"/> method, however it allows conversion
of the value without allocating a substring. It also differs in that it allows the use of the ASCII character \u002d ('-')
or \u002B ('+') in any <paramref name="radix"/>.
<para/>
Supports any BMP (Basic Multilingual Plane) or SMP (Supplementary Mulitlingual Plane) digit as defined by Unicode 10.0.
</summary>
<param name="s">The <see cref="T:System.String"/> containing the <see cref="T:System.Int64"/> representation to be parsed.</param>
<param name="startIndex">The zero-based starting character position of a region in <paramref name="s"/>.</param>
<param name="length">The number of characters in the region to parse.</param>
<param name="radix">The radix (or base) to use when parsing <paramref name="s"/>. The value must be in the range
<see cref="F:J2N.Character.MinRadix"/> - <see cref="F:J2N.Character.MaxRadix"/> inclusive.</param>
<returns>The signed <see cref="T:System.Int64"/> represented by the subsequence in the specified <paramref name="radix"/>.</returns>
<remarks>
If <paramref name="radix"/> is 16, you can prefix the number specified by the <paramref name="s"/> parameter with "0x" or "0X".
<para/>
To specify a negative value for base (radix) 10 numeric representations, use the ASCII character \u002d ('-').
<para/>
For any other <paramref name="radix"/>, negative values may either be specified with ASCII character \u002d ('-')
(as in Java) or by specifying the two's complement representation (as in .NET), but not both.
In the latter case, the highest-order binary bit of a long integer (bit 63) is interpreted as the sign bit.
As a result, it is possible to write code in which a non-base 10 number that is out of the range of the <see cref="T:System.Int64"/>
data type is converted to an <see cref="T:System.Int64"/> value without the method throwing an exception.
</remarks>
<exception cref="T:System.ArgumentNullException"><paramref name="s"/> is <c>null</c>.</exception>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="startIndex"/> or <paramref name="length"/> is less than zero.
<para/>
-or-
<para/>
<paramref name="startIndex"/> and <paramref name="length"/> refer to a location outside of <paramref name="s"/>.
<para/>
-or-
<para/>
<paramref name="radix"/> is less than <see cref="F:J2N.Character.MinRadix"/> or greater than <see cref="F:J2N.Character.MaxRadix"/>.
</exception>
<exception cref="T:System.FormatException">
The range of characters in <paramref name="s"/> specified by <paramref name="startIndex"/> and <paramref name="length"/>
contains a character that is not a valid digit in the base specified by <paramref name="radix"/>.
The exception message indicates that there are no digits to convert if the first character specified by
<paramref name="startIndex"/> is invalid; otherwise, the message indicates that the range of characters in
<paramref name="s"/> specified by <paramref name="startIndex"/> and <paramref name="length"/> contains invalid trailing characters.
<para/>
-or-
<para/>
The range of characters in <paramref name="s"/> specified by <paramref name="startIndex"/> and <paramref name="length"/>
contain only a the ASCII character \u002d ('-') or \u002B ('+') sign and/or hexadecimal prefix 0X or 0x with no digits.
<para/>
-or-
<para/>
<paramref name="length"/> is zero.
</exception>
<exception cref="T:System.OverflowException">
The range of characters in <paramref name="s"/> specified by <paramref name="startIndex"/> and <paramref name="length"/>
represents a number that is less than <see cref="F:System.Int64.MinValue"/> or greater than <see cref="F:System.Int64.MaxValue"/>.
</exception>
<seealso cref="M:J2N.Numerics.Int64.TryParse(System.String,System.Int32,System.Int32,System.Int32,System.Int64@)"/>
<seealso cref="M:J2N.Numerics.Int64.Parse(System.String,System.Int32)"/>
</member>
<member name="M:J2N.Numerics.Int64.Parse(System.Char[],System.Int32,System.Int32,System.Int32)">
<summary>
Parses the <see cref="T:char[]"/> argument as a signed <see cref="T:System.Int64"/> in the specified <paramref name="radix"/>, beginning at the
specified <paramref name="startIndex"/> with the specified number of characters in <paramref name="length"/>.
<para/>
IMPORTANT: This method has .NET semantics. That is, the <paramref name="length"/> parameter
is a length rather than an exclusive end index as would be the case in Java. To translate from
Java, use <c>endIndex - beginIndex</c> to obtain the <paramref name="length"/>.
<para/>
Usage Note: This method is similar to the <see cref="M:System.Convert.ToInt64(System.String,System.Int32)"/> method, however it allows conversion
of the value without allocating a substring. It also differs in that it allows the use of the ASCII character \u002d ('-')
or \u002B ('+') in any <paramref name="radix"/>.
<para/>
Supports any BMP (Basic Multilingual Plane) or SMP (Supplementary Mulitlingual Plane) digit as defined by Unicode 10.0.
</summary>
<param name="s">The <see cref="T:char[]"/> containing the <see cref="T:System.Int64"/> representation to be parsed.</param>
<param name="startIndex">The zero-based starting character position of a region in <paramref name="s"/>.</param>
<param name="length">The number of characters in the region to parse.</param>
<param name="radix">The radix (or base) to use when parsing <paramref name="s"/>. The value must be in the range
<see cref="F:J2N.Character.MinRadix"/> - <see cref="F:J2N.Character.MaxRadix"/> inclusive.</param>
<returns>The signed <see cref="T:System.Int64"/> represented by the subsequence in the specified <paramref name="radix"/>.</returns>
<remarks>
If <paramref name="radix"/> is 16, you can prefix the number specified by the <paramref name="s"/> parameter with "0x" or "0X".
<para/>
To specify a negative value for base (radix) 10 numeric representations, use the ASCII character \u002d ('-').
<para/>
For any other <paramref name="radix"/>, negative values may either be specified with ASCII character \u002d ('-')
(as in Java) or by specifying the two's complement representation (as in .NET), but not both.
In the latter case, the highest-order binary bit of a long integer (bit 63) is interpreted as the sign bit.
As a result, it is possible to write code in which a non-base 10 number that is out of the range of the <see cref="T:System.Int64"/>
data type is converted to an <see cref="T:System.Int64"/> value without the method throwing an exception.
</remarks>
<exception cref="T:System.ArgumentNullException"><paramref name="s"/> is <c>null</c>.</exception>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="startIndex"/> or <paramref name="length"/> is less than zero.
<para/>
-or-
<para/>
<paramref name="startIndex"/> and <paramref name="length"/> refer to a location outside of <paramref name="s"/>.
<para/>
-or-
<para/>
<paramref name="radix"/> is less than <see cref="F:J2N.Character.MinRadix"/> or greater than <see cref="F:J2N.Character.MaxRadix"/>.
</exception>
<exception cref="T:System.FormatException">
The range of characters in <paramref name="s"/> specified by <paramref name="startIndex"/> and <paramref name="length"/>
contains a character that is not a valid digit in the base specified by <paramref name="radix"/>.
The exception message indicates that there are no digits to convert if the first character specified by
<paramref name="startIndex"/> is invalid; otherwise, the message indicates that the range of characters in
<paramref name="s"/> specified by <paramref name="startIndex"/> and <paramref name="length"/> contains invalid trailing characters.
<para/>
-or-
<para/>
The range of characters in <paramref name="s"/> specified by <paramref name="startIndex"/> and <paramref name="length"/>
contain only a the ASCII character \u002d ('-') or \u002B ('+') sign and/or hexadecimal prefix 0X or 0x with no digits.
<para/>
-or-
<para/>
<paramref name="length"/> is zero.
</exception>
<exception cref="T:System.OverflowException">
The range of characters in <paramref name="s"/> specified by <paramref name="startIndex"/> and <paramref name="length"/>
represents a number that is less than <see cref="F:System.Int64.MinValue"/> or greater than <see cref="F:System.Int64.MaxValue"/>.
</exception>
<seealso cref="M:J2N.Numerics.Int64.TryParse(System.Char[],System.Int32,System.Int32,System.Int32,System.Int64@)"/>
<seealso cref="M:J2N.Numerics.Int64.Parse(System.String,System.Int32)"/>
</member>
<member name="M:J2N.Numerics.Int64.Parse(System.Text.StringBuilder,System.Int32,System.Int32,System.Int32)">
<summary>
Parses the <see cref="T:System.Text.StringBuilder"/> argument as a signed <see cref="T:System.Int64"/> in the specified <paramref name="radix"/>, beginning at the
specified <paramref name="startIndex"/> with the specified number of characters in <paramref name="length"/>.
<para/>
IMPORTANT: This method has .NET semantics. That is, the <paramref name="length"/> parameter
is a length rather than an exclusive end index as would be the case in Java. To translate from
Java, use <c>endIndex - beginIndex</c> to obtain the <paramref name="length"/>.
<para/>
Usage Note: This method is similar to the <see cref="M:System.Convert.ToInt64(System.String,System.Int32)"/> method, however it allows conversion
of the value without allocating a substring. It also differs in that it allows the use of the ASCII character \u002d ('-')
or \u002B ('+') in any <paramref name="radix"/>.
<para/>
Supports any BMP (Basic Multilingual Plane) or SMP (Supplementary Mulitlingual Plane) digit as defined by Unicode 10.0.
</summary>
<param name="s">The <see cref="T:System.Text.StringBuilder"/> containing the <see cref="T:System.Int64"/> representation to be parsed.</param>
<param name="startIndex">The zero-based starting character position of a region in <paramref name="s"/>.</param>
<param name="length">The number of characters in the region to parse.</param>
<param name="radix">The radix (or base) to use when parsing <paramref name="s"/>. The value must be in the range
<see cref="F:J2N.Character.MinRadix"/> - <see cref="F:J2N.Character.MaxRadix"/> inclusive.</param>
<returns>The signed <see cref="T:System.Int64"/> represented by the subsequence in the specified <paramref name="radix"/>.</returns>
<exception cref="T:System.ArgumentNullException"><paramref name="s"/> is <c>null</c>.</exception>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="startIndex"/> or <paramref name="length"/> is less than zero.
<para/>
-or-
<para/>
<paramref name="startIndex"/> and <paramref name="length"/> refer to a location outside of <paramref name="s"/>.
<para/>
-or-
<para/>
<paramref name="radix"/> is less than <see cref="F:J2N.Character.MinRadix"/> or greater than <see cref="F:J2N.Character.MaxRadix"/>.
</exception>
<exception cref="T:System.FormatException">
The range of characters in <paramref name="s"/> specified by <paramref name="startIndex"/> and <paramref name="length"/>
contains a character that is not a valid digit in the base specified by <paramref name="radix"/>.
The exception message indicates that there are no digits to convert if the first character specified by
<paramref name="startIndex"/> is invalid; otherwise, the message indicates that the range of characters in
<paramref name="s"/> specified by <paramref name="startIndex"/> and <paramref name="length"/> contains invalid trailing characters.
<para/>
-or-
<para/>
The range of characters in <paramref name="s"/> specified by <paramref name="startIndex"/> and <paramref name="length"/>
contain only a the ASCII character \u002d ('-') or \u002B ('+') sign and/or hexadecimal prefix 0X or 0x with no digits.
<para/>
-or-
<para/>
<paramref name="length"/> is zero.
</exception>
<exception cref="T:System.OverflowException">
The range of characters in <paramref name="s"/> specified by <paramref name="startIndex"/> and <paramref name="length"/>
represents a number that is less than <see cref="F:System.Int64.MinValue"/> or greater than <see cref="F:System.Int64.MaxValue"/>.
</exception>
<seealso cref="M:J2N.Numerics.Int64.TryParse(System.Text.StringBuilder,System.Int32,System.Int32,System.Int32,System.Int64@)"/>
<seealso cref="M:J2N.Numerics.Int64.Parse(System.String,System.Int32)"/>
</member>
<member name="M:J2N.Numerics.Int64.Parse(J2N.Text.ICharSequence,System.Int32,System.Int32,System.Int32)">
<summary>
Parses the <see cref="T:J2N.Text.ICharSequence"/> argument as a signed <see cref="T:System.Int64"/> in the specified <paramref name="radix"/>, beginning at the
specified <paramref name="startIndex"/> with the specified number of characters in <paramref name="length"/>.
<para/>
IMPORTANT: This method has .NET semantics. That is, the <paramref name="length"/> parameter
is a length rather than an exclusive end index as would be the case in Java. To translate from
Java, use <c>endIndex - beginIndex</c> to obtain the <paramref name="length"/>.
<para/>
Usage Note: This method is similar to the <see cref="M:System.Convert.ToInt64(System.String,System.Int32)"/> method, however it allows conversion
of the value without allocating a substring. It also differs in that it allows the use of the ASCII character \u002d ('-')
or \u002B ('+') in any <paramref name="radix"/>.
<para/>
Supports any BMP (Basic Multilingual Plane) or SMP (Supplementary Mulitlingual Plane) digit as defined by Unicode 10.0.
</summary>
<param name="s">The <see cref="T:J2N.Text.ICharSequence"/> containing the <see cref="T:System.Int64"/> representation to be parsed.</param>
<param name="startIndex">The zero-based starting character position of a region in <paramref name="s"/>.</param>
<param name="length">The number of characters in the region to parse.</param>
<param name="radix">The radix (or base) to use when parsing <paramref name="s"/>. The value must be in the range
<see cref="F:J2N.Character.MinRadix"/> - <see cref="F:J2N.Character.MaxRadix"/> inclusive.</param>
<returns>The signed <see cref="T:System.Int64"/> represented by the subsequence in the specified <paramref name="radix"/>.</returns>
<remarks>
If <paramref name="radix"/> is 16, you can prefix the number specified by the <paramref name="s"/> parameter with "0x" or "0X".
<para/>
To specify a negative value for base (radix) 10 numeric representations, use the ASCII character \u002d ('-').
<para/>
For any other <paramref name="radix"/>, negative values may either be specified with ASCII character \u002d ('-')
(as in Java) or by specifying the two's complement representation (as in .NET), but not both.
In the latter case, the highest-order binary bit of a long integer (bit 63) is interpreted as the sign bit.
As a result, it is possible to write code in which a non-base 10 number that is out of the range of the <see cref="T:System.Int64"/>
data type is converted to an <see cref="T:System.Int64"/> value without the method throwing an exception.
</remarks>
<remarks>
If <paramref name="radix"/> is 16, you can prefix the number specified by the <paramref name="s"/> parameter with "0x" or "0X".
<para/>
To specify a negative value for base (radix) 10 numeric representations, use the ASCII character \u002d ('-').
<para/>
For any other <paramref name="radix"/>, negative values may either be specified with ASCII character \u002d ('-')
(as in Java) or by specifying the two's complement representation (as in .NET), but not both.
In the latter case, the highest-order binary bit of a long integer (bit 63) is interpreted as the sign bit.
As a result, it is possible to write code in which a non-base 10 number that is out of the range of the <see cref="T:System.Int64"/>
data type is converted to an <see cref="T:System.Int64"/> value without the method throwing an exception.
</remarks>
<exception cref="T:System.ArgumentNullException"><paramref name="s"/> is <c>null</c>.</exception>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="startIndex"/> or <paramref name="length"/> is less than zero.
<para/>
-or-
<para/>
<paramref name="startIndex"/> and <paramref name="length"/> refer to a location outside of <paramref name="s"/>.
<para/>
-or-
<para/>
<paramref name="radix"/> is less than <see cref="F:J2N.Character.MinRadix"/> or greater than <see cref="F:J2N.Character.MaxRadix"/>.
</exception>
<exception cref="T:System.FormatException">
The range of characters in <paramref name="s"/> specified by <paramref name="startIndex"/> and <paramref name="length"/>
contains a character that is not a valid digit in the base specified by <paramref name="radix"/>.
The exception message indicates that there are no digits to convert if the first character specified by
<paramref name="startIndex"/> is invalid; otherwise, the message indicates that the range of characters in
<paramref name="s"/> specified by <paramref name="startIndex"/> and <paramref name="length"/> contains invalid trailing characters.
<para/>
-or-
<para/>
The range of characters in <paramref name="s"/> specified by <paramref name="startIndex"/> and <paramref name="length"/>
contain only a the ASCII character \u002d ('-') or \u002B ('+') sign and/or hexadecimal prefix 0X or 0x with no digits.
<para/>
-or-
<para/>
<paramref name="length"/> is zero.
</exception>
<exception cref="T:System.OverflowException">
The range of characters in <paramref name="s"/> specified by <paramref name="startIndex"/> and <paramref name="length"/>
represents a number that is less than <see cref="F:System.Int64.MinValue"/> or greater than <see cref="F:System.Int64.MaxValue"/>.
</exception>
<seealso cref="M:J2N.Numerics.Int64.TryParse(J2N.Text.ICharSequence,System.Int32,System.Int32,System.Int32,System.Int64@)"/>
<seealso cref="M:J2N.Numerics.Int64.Parse(System.String,System.Int32)"/>
</member>
<member name="M:J2N.Numerics.Int64.TryParse(System.ReadOnlySpan{System.Char},System.Int32,System.Int32,System.Int32,System.Int64@)">
<summary>
Parses the <see cref="T:System.ReadOnlySpan`1"/> argument as a signed <see cref="T:System.Int64"/> in the specified <paramref name="radix"/>, beginning at the
specified <paramref name="startIndex"/> with the specified number of characters in <paramref name="length"/>.
<para/>
IMPORTANT: This method has .NET semantics. That is, the <paramref name="length"/> parameter
is a length rather than an exclusive end index as would be the case in Java. To translate from
Java, use <c>endIndex - beginIndex</c> to obtain the <paramref name="length"/>.
<para/>
Usage Note: This method is similar to the <see cref="M:System.Convert.ToInt64(System.String,System.Int32)"/> method, however it allows conversion
of the value without allocating a substring. It also differs in that it allows the use of the ASCII character \u002d ('-')
or \u002B ('+') in any <paramref name="radix"/> and allows any <paramref name="radix"/> value from
<see cref="F:J2N.Character.MinRadix"/> to <see cref="F:J2N.Character.MaxRadix"/> inclusive.
<para/>
Supports any BMP (Basic Multilingual Plane) or SMP (Supplementary Mulitlingual Plane) digit as defined by Unicode 10.0.
<para/>
Since <see cref="M:J2N.Numerics.Int64.Parse(System.ReadOnlySpan{System.Char},System.Int32,System.Int32,System.Int32)"/> throws many different exception types and in Java they are all normalized to
<c>NumberFormatException</c>, this method can be used to mimic the same behavior by throwing <see cref="T:System.FormatException"/>
when this method returns <c>false</c>.
</summary>
<param name="s">The <see cref="T:System.ReadOnlySpan`1"/> containing the <see cref="T:System.Int64"/> representation to be parsed.</param>
<param name="startIndex">The zero-based starting character position of a region in <paramref name="s"/>.</param>
<param name="length">The number of characters in the region to parse.</param>
<param name="radix">The radix (or base) to use when parsing <paramref name="s"/>. The value must be in the range
<see cref="F:J2N.Character.MinRadix"/> - <see cref="F:J2N.Character.MaxRadix"/> inclusive.</param>
<param name="result">The signed <see cref="T:System.Int64"/> represented by the subsequence in the specified <paramref name="radix"/>.</param>
<returns><c>true</c> if <paramref name="s"/> was converted successfully; otherwise, <c>false</c>.</returns>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="startIndex"/> or <paramref name="length"/> is less than zero.
<para/>
-or-
<para/>
<paramref name="startIndex"/> and <paramref name="length"/> refer to a location outside of <paramref name="s"/>.
<para/>
-or-
<para/>
<paramref name="radix"/> is less than <see cref="F:J2N.Character.MinRadix"/> or greater than <see cref="F:J2N.Character.MaxRadix"/>.
</exception>
<remarks>
If <paramref name="radix"/> is 16, you can prefix the number specified by the <paramref name="s"/> parameter with "0x" or "0X".
<para/>
To specify a negative value for base (radix) 10 numeric representations, use the ASCII character \u002d ('-').
<para/>
For any other <paramref name="radix"/>, negative values may either be specified with ASCII character \u002d ('-')
(as in Java) or by specifying the two's complement representation (as in .NET), but not both.
In the latter case, the highest-order binary bit of an integer (bit 63) is interpreted as the sign bit.
As a result, it is possible to write code in which a non-base 10 number that is out of the range of the <see cref="T:System.Int64"/>
data type is converted to an <see cref="T:System.Int64"/> value without the method throwing an exception.
</remarks>
<seealso cref="M:J2N.Numerics.Int64.Parse(System.ReadOnlySpan{System.Char},System.Int32,System.Int32,System.Int32)"/>
<seealso cref="M:J2N.Numerics.Int64.Parse(System.String,System.Int32)"/>
</member>
<member name="M:J2N.Numerics.Int64.TryParse(System.String,System.Int32,System.Int32,System.Int32,System.Int64@)">
<summary>
Parses the <see cref="T:System.String"/> argument as a signed <see cref="T:System.Int64"/> in the specified <paramref name="radix"/>, beginning at the
specified <paramref name="startIndex"/> with the specified number of characters in <paramref name="length"/>.
<para/>
IMPORTANT: This method has .NET semantics. That is, the <paramref name="length"/> parameter
is a length rather than an exclusive end index as would be the case in Java. To translate from
Java, use <c>endIndex - beginIndex</c> to obtain the <paramref name="length"/>.
<para/>
Usage Note: This method is similar to the <see cref="M:System.Convert.ToInt64(System.String,System.Int32)"/> method, however it allows conversion
of the value without allocating a substring. It also differs in that it allows the use of the ASCII character \u002d ('-')
or \u002B ('+') in any <paramref name="radix"/> and allows any <paramref name="radix"/> value from
<see cref="F:J2N.Character.MinRadix"/> to <see cref="F:J2N.Character.MaxRadix"/> inclusive.
<para/>
Supports any BMP (Basic Multilingual Plane) or SMP (Supplementary Mulitlingual Plane) digit as defined by Unicode 10.0.
<para/>
Since <see cref="M:J2N.Numerics.Int64.Parse(System.String,System.Int32,System.Int32,System.Int32)"/> throws many different exception types and in Java they are all normalized to
<c>NumberFormatException</c>, this method can be used to mimic the same behavior by throwing <see cref="T:System.FormatException"/>
when this method returns <c>false</c>.
</summary>
<param name="s">The <see cref="T:System.String"/> containing the <see cref="T:System.Int64"/> representation to be parsed.</param>
<param name="startIndex">The zero-based starting character position of a region in <paramref name="s"/>.</param>
<param name="length">The number of characters in the region to parse.</param>
<param name="radix">The radix (or base) to use when parsing <paramref name="s"/>. The value must be in the range
<see cref="F:J2N.Character.MinRadix"/> - <see cref="F:J2N.Character.MaxRadix"/> inclusive.</param>
<param name="result">The signed <see cref="T:System.Int64"/> represented by the subsequence in the specified <paramref name="radix"/>.</param>
<returns><c>true</c> if <paramref name="s"/> was converted successfully; otherwise, <c>false</c>.</returns>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="startIndex"/> or <paramref name="length"/> is less than zero.
<para/>
-or-
<para/>
<paramref name="startIndex"/> and <paramref name="length"/> refer to a location outside of <paramref name="s"/>.
<para/>
-or-
<para/>
<paramref name="radix"/> is less than <see cref="F:J2N.Character.MinRadix"/> or greater than <see cref="F:J2N.Character.MaxRadix"/>.
</exception>
<remarks>
If <paramref name="radix"/> is 16, you can prefix the number specified by the <paramref name="s"/> parameter with "0x" or "0X".
<para/>
To specify a negative value for base (radix) 10 numeric representations, use the ASCII character \u002d ('-').
<para/>
For any other <paramref name="radix"/>, negative values may either be specified with ASCII character \u002d ('-')
(as in Java) or by specifying the two's complement representation (as in .NET), but not both.
In the latter case, the highest-order binary bit of an integer (bit 63) is interpreted as the sign bit.
As a result, it is possible to write code in which a non-base 10 number that is out of the range of the <see cref="T:System.Int64"/>
data type is converted to an <see cref="T:System.Int64"/> value without the method throwing an exception.
</remarks>
<seealso cref="M:J2N.Numerics.Int64.Parse(System.String,System.Int32,System.Int32,System.Int32)"/>
<seealso cref="M:J2N.Numerics.Int64.Parse(System.String,System.Int32)"/>
</member>
<member name="M:J2N.Numerics.Int64.TryParse(System.Char[],System.Int32,System.Int32,System.Int32,System.Int64@)">
<summary>
Parses the <see cref="T:char[]"/> argument as a signed <see cref="T:System.Int64"/> in the specified <paramref name="radix"/>, beginning at the
specified <paramref name="startIndex"/> with the specified number of characters in <paramref name="length"/>.
<para/>
IMPORTANT: This method has .NET semantics. That is, the <paramref name="length"/> parameter
is a length rather than an exclusive end index as would be the case in Java. To translate from
Java, use <c>endIndex - beginIndex</c> to obtain the <paramref name="length"/>.
<para/>
Usage Note: This method is similar to the <see cref="M:System.Convert.ToInt64(System.String,System.Int32)"/> method, however it allows conversion
of the value without allocating a substring. It also differs in that it allows the use of the ASCII character \u002d ('-')
or \u002B ('+') in any <paramref name="radix"/> and allows any <paramref name="radix"/> value from
<see cref="F:J2N.Character.MinRadix"/> to <see cref="F:J2N.Character.MaxRadix"/> inclusive.
<para/>
Supports any BMP (Basic Multilingual Plane) or SMP (Supplementary Mulitlingual Plane) digit as defined by Unicode 10.0.
<para/>
Since <see cref="M:J2N.Numerics.Int64.Parse(System.Char[],System.Int32,System.Int32,System.Int32)"/> throws many different exception types and in Java they are all normalized to
<c>NumberFormatException</c>, this method can be used to mimic the same behavior by throwing <see cref="T:System.FormatException"/>
when this method returns <c>false</c>.
</summary>
<param name="s">The <see cref="T:char[]"/> containing the <see cref="T:System.Int64"/> representation to be parsed.</param>
<param name="startIndex">The zero-based starting character position of a region in <paramref name="s"/>.</param>
<param name="length">The number of characters in the region to parse.</param>
<param name="radix">The radix (or base) to use when parsing <paramref name="s"/>. The value must be in the range
<see cref="F:J2N.Character.MinRadix"/> - <see cref="F:J2N.Character.MaxRadix"/> inclusive.</param>
<param name="result">The signed <see cref="T:System.Int64"/> represented by the subsequence in the specified <paramref name="radix"/>.</param>
<returns><c>true</c> if <paramref name="s"/> was converted successfully; otherwise, <c>false</c>.</returns>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="startIndex"/> or <paramref name="length"/> is less than zero.
<para/>
-or-
<para/>
<paramref name="startIndex"/> and <paramref name="length"/> refer to a location outside of <paramref name="s"/>.
<para/>
-or-
<para/>
<paramref name="radix"/> is less than <see cref="F:J2N.Character.MinRadix"/> or greater than <see cref="F:J2N.Character.MaxRadix"/>.
</exception>
<remarks>
If <paramref name="radix"/> is 16, you can prefix the number specified by the <paramref name="s"/> parameter with "0x" or "0X".
<para/>
To specify a negative value for base (radix) 10 numeric representations, use the ASCII character \u002d ('-').
<para/>
For any other <paramref name="radix"/>, negative values may either be specified with ASCII character \u002d ('-')
(as in Java) or by specifying the two's complement representation (as in .NET), but not both.
In the latter case, the highest-order binary bit of an integer (bit 63) is interpreted as the sign bit.
As a result, it is possible to write code in which a non-base 10 number that is out of the range of the <see cref="T:System.Int64"/>
data type is converted to an <see cref="T:System.Int64"/> value without the method throwing an exception.
</remarks>
<seealso cref="M:J2N.Numerics.Int64.Parse(System.Char[],System.Int32,System.Int32,System.Int32)"/>
<seealso cref="M:J2N.Numerics.Int64.Parse(System.String,System.Int32)"/>
</member>
<member name="M:J2N.Numerics.Int64.TryParse(System.Text.StringBuilder,System.Int32,System.Int32,System.Int32,System.Int64@)">
<summary>
Parses the <see cref="T:System.Text.StringBuilder"/> argument as a signed <see cref="T:System.Int64"/> in the specified <paramref name="radix"/>, beginning at the
specified <paramref name="startIndex"/> with the specified number of characters in <paramref name="length"/>.
<para/>
IMPORTANT: This method has .NET semantics. That is, the <paramref name="length"/> parameter
is a length rather than an exclusive end index as would be the case in Java. To translate from
Java, use <c>endIndex - beginIndex</c> to obtain the <paramref name="length"/>.
<para/>
Usage Note: This method is similar to the <see cref="M:System.Convert.ToInt64(System.String,System.Int32)"/> method, however it allows conversion
of the value without allocating a substring. It also differs in that it allows the use of the ASCII character \u002d ('-')
or \u002B ('+') in any <paramref name="radix"/> and allows any <paramref name="radix"/> value from
<see cref="F:J2N.Character.MinRadix"/> to <see cref="F:J2N.Character.MaxRadix"/> inclusive.
<para/>
Supports any BMP (Basic Multilingual Plane) or SMP (Supplementary Mulitlingual Plane) digit as defined by Unicode 10.0.
<para/>
Since <see cref="M:J2N.Numerics.Int64.Parse(System.Text.StringBuilder,System.Int32,System.Int32,System.Int32)"/> throws many different exception types and in Java they are all normalized to
<c>NumberFormatException</c>, this method can be used to mimic the same behavior by throwing <see cref="T:System.FormatException"/>
when this method returns <c>false</c>.
</summary>
<param name="s">The <see cref="T:System.Text.StringBuilder"/> containing the <see cref="T:System.Int64"/> representation to be parsed.</param>
<param name="startIndex">The zero-based starting character position of a region in <paramref name="s"/>.</param>
<param name="length">The number of characters in the region to parse.</param>
<param name="radix">The radix (or base) to use when parsing <paramref name="s"/>. The value must be in the range
<see cref="F:J2N.Character.MinRadix"/> - <see cref="F:J2N.Character.MaxRadix"/> inclusive.</param>
<param name="result">The signed <see cref="T:System.Int64"/> represented by the subsequence in the specified <paramref name="radix"/>.</param>
<returns><c>true</c> if <paramref name="s"/> was converted successfully; otherwise, <c>false</c>.</returns>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="startIndex"/> or <paramref name="length"/> is less than zero.
<para/>
-or-
<para/>
<paramref name="startIndex"/> and <paramref name="length"/> refer to a location outside of <paramref name="s"/>.
<para/>
-or-
<para/>
<paramref name="radix"/> is less than <see cref="F:J2N.Character.MinRadix"/> or greater than <see cref="F:J2N.Character.MaxRadix"/>.
</exception>
<remarks>
If <paramref name="radix"/> is 16, you can prefix the number specified by the <paramref name="s"/> parameter with "0x" or "0X".
<para/>
To specify a negative value for base (radix) 10 numeric representations, use the ASCII character \u002d ('-').
<para/>
For any other <paramref name="radix"/>, negative values may either be specified with ASCII character \u002d ('-')
(as in Java) or by specifying the two's complement representation (as in .NET), but not both.
In the latter case, the highest-order binary bit of an integer (bit 63) is interpreted as the sign bit.
As a result, it is possible to write code in which a non-base 10 number that is out of the range of the <see cref="T:System.Int64"/>
data type is converted to an <see cref="T:System.Int64"/> value without the method throwing an exception.
</remarks>
<seealso cref="M:J2N.Numerics.Int64.Parse(System.Text.StringBuilder,System.Int32,System.Int32,System.Int32)"/>
<seealso cref="M:J2N.Numerics.Int64.Parse(System.String,System.Int32)"/>
</member>
<member name="M:J2N.Numerics.Int64.TryParse(J2N.Text.ICharSequence,System.Int32,System.Int32,System.Int32,System.Int64@)">
<summary>
Parses the <see cref="T:J2N.Text.ICharSequence"/> argument as a signed <see cref="T:System.Int64"/> in the specified <paramref name="radix"/>, beginning at the
specified <paramref name="startIndex"/> with the specified number of characters in <paramref name="length"/>.
<para/>
IMPORTANT: This method has .NET semantics. That is, the <paramref name="length"/> parameter
is a length rather than an exclusive end index as would be the case in Java. To translate from
Java, use <c>endIndex - beginIndex</c> to obtain the <paramref name="length"/>.
<para/>
Usage Note: This method is similar to the <see cref="M:System.Convert.ToInt64(System.String,System.Int32)"/> method, however it allows conversion
of the value without allocating a substring. It also differs in that it allows the use of the ASCII character \u002d ('-')
or \u002B ('+') in any <paramref name="radix"/> and allows any <paramref name="radix"/> value from
<see cref="F:J2N.Character.MinRadix"/> to <see cref="F:J2N.Character.MaxRadix"/> inclusive.
<para/>
Supports any BMP (Basic Multilingual Plane) or SMP (Supplementary Mulitlingual Plane) digit as defined by Unicode 10.0.
<para/>
Since <see cref="M:J2N.Numerics.Int64.Parse(J2N.Text.ICharSequence,System.Int32,System.Int32,System.Int32)"/> throws many different exception types and in Java they are all normalized to
<c>NumberFormatException</c>, this method can be used to mimic the same behavior by throwing <see cref="T:System.FormatException"/>
when this method returns <c>false</c>.
</summary>
<param name="s">The <see cref="T:J2N.Text.ICharSequence"/> containing the <see cref="T:System.Int64"/> representation to be parsed.</param>
<param name="startIndex">The zero-based starting character position of a region in <paramref name="s"/>.</param>
<param name="length">The number of characters in the region to parse.</param>
<param name="radix">The radix (or base) to use when parsing <paramref name="s"/>. The value must be in the range
<see cref="F:J2N.Character.MinRadix"/> - <see cref="F:J2N.Character.MaxRadix"/> inclusive.</param>
<param name="result">The signed <see cref="T:System.Int64"/> represented by the subsequence in the specified <paramref name="radix"/>.</param>
<returns><c>true</c> if <paramref name="s"/> was converted successfully; otherwise, <c>false</c>.</returns>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="startIndex"/> or <paramref name="length"/> is less than zero.
<para/>
-or-
<para/>
<paramref name="startIndex"/> and <paramref name="length"/> refer to a location outside of <paramref name="s"/>.
<para/>
-or-
<para/>
<paramref name="radix"/> is less than <see cref="F:J2N.Character.MinRadix"/> or greater than <see cref="F:J2N.Character.MaxRadix"/>.
</exception>
<remarks>
If <paramref name="radix"/> is 16, you can prefix the number specified by the <paramref name="s"/> parameter with "0x" or "0X".
<para/>
To specify a negative value for base (radix) 10 numeric representations, use the ASCII character \u002d ('-').
<para/>
For any other <paramref name="radix"/>, negative values may either be specified with ASCII character \u002d ('-')
(as in Java) or by specifying the two's complement representation (as in .NET), but not both.
In the latter case, the highest-order binary bit of an integer (bit 63) is interpreted as the sign bit.
As a result, it is possible to write code in which a non-base 10 number that is out of the range of the <see cref="T:System.Int64"/>
data type is converted to an <see cref="T:System.Int64"/> value without the method throwing an exception.
</remarks>
<seealso cref="M:J2N.Numerics.Int64.Parse(J2N.Text.ICharSequence,System.Int32,System.Int32,System.Int32)"/>
<seealso cref="M:J2N.Numerics.Int64.Parse(System.String,System.Int32)"/>
</member>
<member name="M:J2N.Numerics.Int64.Parse(System.ReadOnlySpan{System.Char},System.Int32)">
<summary>
Parses the <see cref="T:System.ReadOnlySpan`1"/> argument as a signed <see cref="T:System.Int64"/> in the specified <paramref name="radix"/>.
<para/>
Usage Note: This method is similar to the <see cref="M:System.Convert.ToInt64(System.String,System.Int32)"/> method. It differs in that
it allows the use of the ASCII character \u002d ('-') or \u002B ('+') in any <paramref name="radix"/>.
<para/>
Supports any BMP (Basic Multilingual Plane) or SMP (Supplementary Mulitlingual Plane) digit as defined by Unicode 10.0.
</summary>
<param name="s">The <see cref="T:System.ReadOnlySpan`1"/> containing the <see cref="T:System.Int64"/> representation to be parsed.</param>
<param name="radix">The radix (or base) to use when parsing <paramref name="s"/>. The value must be in the range
<see cref="F:J2N.Character.MinRadix"/> - <see cref="F:J2N.Character.MaxRadix"/> inclusive.</param>
<returns>A 64-bit signed integer that is equivalent to the number in <paramref name="s"/>, or 0 (zero) if
<paramref name="s"/> is <c>null</c>.</returns>
<remarks>
If <paramref name="radix"/> is 16, you can prefix the number specified by the <paramref name="s"/> parameter with "0x" or "0X".
<para/>
To specify a negative value for base (radix) 10 numeric representations, use the ASCII character \u002d ('-').
<para/>
For any other <paramref name="radix"/>, negative values may either be specified with ASCII character \u002d ('-')
(as in Java) or by specifying the two's complement representation (as in .NET), but not both.
In the latter case, the highest-order binary bit of a long integer (bit 63) is interpreted as the sign bit.
As a result, it is possible to write code in which a non-base 10 number that is out of the range of the <see cref="T:System.Int64"/>
data type is converted to an <see cref="T:System.Int64"/> value without the method throwing an exception.
</remarks>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="radix"/> is less than <see cref="F:J2N.Character.MinRadix"/> or greater than <see cref="F:J2N.Character.MaxRadix"/>.
</exception>
<exception cref="T:System.FormatException">
<paramref name="s"/> contains a character that is not a valid digit in the base specified by <paramref name="radix"/>.
The exception message indicates that there are no digits to convert if the first character in <paramref name="s"/> is invalid;
otherwise, the message indicates that <paramref name="s"/> contains invalid trailing characters.
<para/>
-or-
<para/>
<paramref name="s"/> contains only a the ASCII character \u002d ('-') or \u002B ('+') sign and/or hexadecimal
prefix 0X or 0x with no digits.
</exception>
<exception cref="T:System.OverflowException">
<paramref name="s"/> represents a number that is less than <see cref="F:System.Int64.MinValue"/> or greater than <see cref="F:System.Int64.MaxValue"/>.
</exception>
<seealso cref="M:J2N.Numerics.Int64.TryParse(System.ReadOnlySpan{System.Char},System.Int32,System.Int64@)"/>
<seealso cref="M:J2N.Numerics.Int64.GetInstance(System.String,System.Int32)"/>
</member>
<member name="M:J2N.Numerics.Int64.Parse(System.String,System.Int32)">
<summary>
Parses the <see cref="T:System.String"/> argument as a signed <see cref="T:System.Int64"/> in the specified <paramref name="radix"/>.
<para/>
Usage Note: This method is similar to the <see cref="M:System.Convert.ToInt64(System.String,System.Int32)"/> method. It differs in that
it allows the use of the ASCII character \u002d ('-') or \u002B ('+') in any <paramref name="radix"/>.
<para/>
Supports any BMP (Basic Multilingual Plane) or SMP (Supplementary Mulitlingual Plane) digit as defined by Unicode 10.0.
</summary>
<param name="s">The <see cref="T:System.String"/> containing the <see cref="T:System.Int64"/> representation to be parsed.</param>
<param name="radix">The radix (or base) to use when parsing <paramref name="s"/>. The value must be in the range
<see cref="F:J2N.Character.MinRadix"/> - <see cref="F:J2N.Character.MaxRadix"/> inclusive.</param>
<returns>A 64-bit signed integer that is equivalent to the number in <paramref name="s"/>, or 0 (zero) if
<paramref name="s"/> is <c>null</c>.</returns>
<remarks>
If <paramref name="radix"/> is 16, you can prefix the number specified by the <paramref name="s"/> parameter with "0x" or "0X".
<para/>
To specify a negative value for base (radix) 10 numeric representations, use the ASCII character \u002d ('-').
<para/>
For any other <paramref name="radix"/>, negative values may either be specified with ASCII character \u002d ('-')
(as in Java) or by specifying the two's complement representation (as in .NET), but not both.
In the latter case, the highest-order binary bit of a long integer (bit 63) is interpreted as the sign bit.
As a result, it is possible to write code in which a non-base 10 number that is out of the range of the <see cref="T:System.Int64"/>
data type is converted to an <see cref="T:System.Int64"/> value without the method throwing an exception.
</remarks>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="radix"/> is less than <see cref="F:J2N.Character.MinRadix"/> or greater than <see cref="F:J2N.Character.MaxRadix"/>.
</exception>
<exception cref="T:System.FormatException">
<paramref name="s"/> contains a character that is not a valid digit in the base specified by <paramref name="radix"/>.
The exception message indicates that there are no digits to convert if the first character in <paramref name="s"/> is invalid;
otherwise, the message indicates that <paramref name="s"/> contains invalid trailing characters.
<para/>
-or-
<para/>
<paramref name="s"/> contains only a the ASCII character \u002d ('-') or \u002B ('+') sign and/or hexadecimal
prefix 0X or 0x with no digits.
</exception>
<exception cref="T:System.OverflowException">
<paramref name="s"/> represents a number that is less than <see cref="F:System.Int64.MinValue"/> or greater than <see cref="F:System.Int64.MaxValue"/>.
</exception>
<seealso cref="M:J2N.Numerics.Int64.TryParse(System.String,System.Int32,System.Int64@)"/>
<seealso cref="M:J2N.Numerics.Int64.GetInstance(System.String,System.Int32)"/>
</member>
<member name="M:J2N.Numerics.Int64.TryParse(System.ReadOnlySpan{System.Char},System.Int32,System.Int64@)">
<summary>
Parses the <see cref="T:System.ReadOnlySpan`1"/> argument as a signed <see cref="T:System.Int64"/> in the specified <paramref name="radix"/>.
<para/>
Usage Note: This method is similar to the <see cref="M:System.Convert.ToInt64(System.String,System.Int32)"/> method. It differs in that it
allows the use of the ASCII character \u002d ('-') or \u002B ('+') in any <paramref name="radix"/> and allows any
<paramref name="radix"/> value from <see cref="F:J2N.Character.MinRadix"/> to <see cref="F:J2N.Character.MaxRadix"/> inclusive.
<para/>
Supports any BMP (Basic Multilingual Plane) or SMP (Supplementary Mulitlingual Plane) digit as defined by Unicode 10.0.
<para/>
Since <see cref="M:J2N.Numerics.Int64.Parse(System.ReadOnlySpan{System.Char},System.Int32)"/> throws many different exception types and in Java they are all normalized to
<c>NumberFormatException</c>, this method can be used to mimic the same behavior by throwing <see cref="T:System.FormatException"/>
when this method returns <c>false</c>.
</summary>
<param name="s">The <see cref="T:System.ReadOnlySpan`1"/> containing the <see cref="T:System.Int64"/> representation to be parsed.</param>
<param name="radix">The radix (or base) to use when parsing <paramref name="s"/>. The value must be in the range
<see cref="F:J2N.Character.MinRadix"/> - <see cref="F:J2N.Character.MaxRadix"/> inclusive.</param>
<param name="result">The signed <see cref="T:System.Int64"/> represented by the subsequence in the specified <paramref name="radix"/>.</param>
<returns><c>true</c> if <paramref name="s"/> was converted successfully; otherwise, <c>false</c>.</returns>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="radix"/> is less than <see cref="F:J2N.Character.MinRadix"/> or greater than <see cref="F:J2N.Character.MaxRadix"/>.
</exception>
<remarks>
If <paramref name="radix"/> is 16, you can prefix the number specified by the <paramref name="s"/> parameter with "0x" or "0X".
<para/>
To specify a negative value for base (radix) 10 numeric representations, use the ASCII character \u002d ('-').
<para/>
For any other <paramref name="radix"/>, negative values may either be specified with ASCII character \u002d ('-')
(as in Java) or by specifying the two's complement representation (as in .NET), but not both.
In the latter case, the highest-order binary bit of an integer (bit 63) is interpreted as the sign bit.
As a result, it is possible to write code in which a non-base 10 number that is out of the range of the <see cref="T:System.Int64"/>
data type is converted to an <see cref="T:System.Int64"/> value without the method throwing an exception.
</remarks>
<seealso cref="M:J2N.Numerics.Int64.Parse(System.ReadOnlySpan{System.Char},System.Int32,System.Int32,System.Int32)"/>
<seealso cref="M:J2N.Numerics.Int64.Parse(System.ReadOnlySpan{System.Char},System.Int32)"/>
</member>
<member name="M:J2N.Numerics.Int64.TryParse(System.String,System.Int32,System.Int64@)">
<summary>
Parses the <see cref="T:System.String"/> argument as a signed <see cref="T:System.Int64"/> in the specified <paramref name="radix"/>.
<para/>
Usage Note: This method is similar to the <see cref="M:System.Convert.ToInt64(System.String,System.Int32)"/> method. It differs in that it
allows the use of the ASCII character \u002d ('-') or \u002B ('+') in any <paramref name="radix"/> and allows any
<paramref name="radix"/> value from <see cref="F:J2N.Character.MinRadix"/> to <see cref="F:J2N.Character.MaxRadix"/> inclusive.
<para/>
Supports any BMP (Basic Multilingual Plane) or SMP (Supplementary Mulitlingual Plane) digit as defined by Unicode 10.0.
<para/>
Since <see cref="M:J2N.Numerics.Int64.Parse(System.String,System.Int32)"/> throws many different exception types and in Java they are all normalized to
<c>NumberFormatException</c>, this method can be used to mimic the same behavior by throwing <see cref="T:System.FormatException"/>
when this method returns <c>false</c>.
</summary>
<param name="s">The <see cref="T:System.String"/> containing the <see cref="T:System.Int64"/> representation to be parsed.</param>
<param name="radix">The radix (or base) to use when parsing <paramref name="s"/>. The value must be in the range
<see cref="F:J2N.Character.MinRadix"/> - <see cref="F:J2N.Character.MaxRadix"/> inclusive.</param>
<param name="result">The signed <see cref="T:System.Int64"/> represented by the subsequence in the specified <paramref name="radix"/>.</param>
<returns><c>true</c> if <paramref name="s"/> was converted successfully; otherwise, <c>false</c>.</returns>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="radix"/> is less than <see cref="F:J2N.Character.MinRadix"/> or greater than <see cref="F:J2N.Character.MaxRadix"/>.
</exception>
<remarks>
If <paramref name="radix"/> is 16, you can prefix the number specified by the <paramref name="s"/> parameter with "0x" or "0X".
<para/>
To specify a negative value for base (radix) 10 numeric representations, use the ASCII character \u002d ('-').
<para/>
For any other <paramref name="radix"/>, negative values may either be specified with ASCII character \u002d ('-')
(as in Java) or by specifying the two's complement representation (as in .NET), but not both.
In the latter case, the highest-order binary bit of an integer (bit 63) is interpreted as the sign bit.
As a result, it is possible to write code in which a non-base 10 number that is out of the range of the <see cref="T:System.Int64"/>
data type is converted to an <see cref="T:System.Int64"/> value without the method throwing an exception.
</remarks>
<seealso cref="M:J2N.Numerics.Int64.Parse(System.String,System.Int32,System.Int32,System.Int32)"/>
<seealso cref="M:J2N.Numerics.Int64.Parse(System.String,System.Int32)"/>
</member>
<member name="M:J2N.Numerics.Int64.Parse(System.String,System.IFormatProvider)">
<summary>
Converts the string representation of a number in a specified culture-specific format to its
64-bit signed integer equivalent.
</summary>
<param name="s">A string containing a number to convert.</param>
<param name="provider">An <see cref="T:System.IFormatProvider"/> that supplies culture-specific formatting information about <paramref name="s"/>.</param>
<returns>A 64-bit signed integer equivalent to the number specified in <paramref name="s"/>.</returns>
<exception cref="T:System.ArgumentNullException"><paramref name="s"/> is <c>null</c>.</exception>
<exception cref="T:System.FormatException"><paramref name="s"/> is not in a valid <see cref="F:J2N.Globalization.NumberStyle.Integer"/> format.</exception>
<exception cref="T:System.OverflowException">
<paramref name="s"/> represents a number less than <see cref="F:System.Int64.MinValue"/> or greater than <see cref="F:System.Int64.MaxValue"/>.
</exception>
<remarks>
The <paramref name="s"/> parameter contains a number of the form:
<para/>
[ws][sign]digits[ws]
<para/>
Elements in square brackets ([ and ]) are optional. The following table describes each element.
<para/>
<list type="table">
<listheader>
<term>Element</term>
<term>Description</term>
</listheader>
<item>
<term><i>ws</i></term>
<term>A series of white-space characters.</term>
</item>
<item>
<term><i>$</i></term>
<term>A culture-specific currency symbol. Its position in the string is defined by the <see cref="P:System.Globalization.NumberFormatInfo.CurrencyNegativePattern"/>
and <see cref="P:System.Globalization.NumberFormatInfo.CurrencyPositivePattern"/> properties of the <see cref="T:System.Globalization.NumberFormatInfo"/> object returned by the
<see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> method of the <paramref name="provider"/> parameter. The current culture's currency symbol can
appear in <paramref name="s"/> if style includes the <see cref="F:J2N.Globalization.NumberStyle.AllowCurrencySymbol"/> flag.</term>
</item>
<item>
<term><i>sign</i></term>
<term>A negative sign symbol or a positive sign symbol as defined by the <see cref="T:System.Globalization.NumberFormatInfo"/> object returned from the
<see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> <paramref name="provider"/>.</term>
</item>
<item>
<term><i>digits</i></term>
<term>A series of digits ranging from 0 to 9.</term>
</item>
</list>
<para/>
The <paramref name="s"/> parameter is interpreted using the <see cref="F:J2N.Globalization.NumberStyle.Integer"/> style. In addition to decimal digits, only
leading and trailing spaces together with a leading sign are allowed in <paramref name="s"/>. To explicitly define the style elements
together with the culture-specific formatting information that can be present in <paramref name="s"/>, use the
<see cref="M:J2N.Numerics.Int64.Parse(System.String,J2N.Globalization.NumberStyle,System.IFormatProvider)"/> method.
<para/>
The <paramref name="provider"/> parameter is an <see cref="T:System.IFormatProvider"/> implementation, such as a <see cref="T:System.Globalization.CultureInfo"/> object,
a <see cref="T:System.Globalization.NumberFormatInfo"/> object or a <see cref="T:J2N.Text.StringFormatter"/> object, whose <see cref="M:System.IFormatProvider.GetFormat(System.Type)"/>
method returns a <see cref="T:System.Globalization.NumberFormatInfo"/> object. The <see cref="T:System.Globalization.NumberFormatInfo"/> object provides culture-specific information about
the format of <paramref name="s"/>. When the <see cref="M:J2N.Numerics.Int64.Parse(System.String,System.IFormatProvider)"/> method is invoked, it calls the provider parameter's
<see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> method and passes it a <see cref="T:System.Type"/> object that represents the <see cref="T:System.Globalization.NumberFormatInfo"/> type.
The <see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> method then returns the <see cref="T:System.Globalization.NumberFormatInfo"/> object that provides information about the
format of the <paramref name="s"/> parameter. There are three ways to use the <paramref name="provider"/> parameter to supply custom formatting
information to the parse operation:
<list type="bullet">
<item><description>You can pass a <see cref="T:System.Globalization.CultureInfo"/> object that represents the culture that supplies formatting information. Its
<see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> method returns the <see cref="T:System.Globalization.NumberFormatInfo"/> object that provides numeric formatting
information for that culture.</description></item>
<item><description>You can pass the actual <see cref="T:System.Globalization.NumberFormatInfo"/> object that provides numeric formatting information. (Its
implementation of <see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> just returns itself.)</description></item>
<item><description>You can pass a custom object that implements <see cref="T:System.IFormatProvider"/>. Its <see cref="M:System.IFormatProvider.GetFormat(System.Type)"/>
method instantiates and returns the <see cref="T:System.Globalization.NumberFormatInfo"/> object that provides formatting information.</description></item>
</list>
If <paramref name="provider"/> is <c>null</c> or a <see cref="T:System.Globalization.NumberFormatInfo"/> object cannot be obtained, the <see cref="T:System.Globalization.NumberFormatInfo"/>
object for the current culture is used.
</remarks>
<seealso cref="M:J2N.Numerics.Int64.TryParse(System.String,J2N.Globalization.NumberStyle,System.IFormatProvider,System.Int64@)"/>
<seealso cref="M:J2N.Numerics.Int64.GetInstance(System.String,System.IFormatProvider)"/>
</member>
<member name="M:J2N.Numerics.Int64.TryParse(System.String,System.Int64@)">
<summary>
Converts the string representation of a number to its 64-bit signed integer equivalent.
A return value indicates whether the conversion succeeded.
<para/>
Usage Note: When porting from Java, note that this is a culture-sensitive method. Java uses the invariant
culture in the Integer class, so call <see cref="M:J2N.Numerics.Int64.TryParse(System.String,J2N.Globalization.NumberStyle,System.IFormatProvider,System.Int64@)"/>
and pass <see cref="F:J2N.Globalization.NumberStyle.AllowLeadingSign"/> and <see cref="P:System.Globalization.NumberFormatInfo.InvariantInfo"/> to exactly match the Java parsing behavior.
<para/>
Using that overload also allows you to normalize the exception behavior. The <see cref="M:J2N.Numerics.Int64.Parse(System.String,System.IFormatProvider)"/>
method may throw <see cref="T:System.ArgumentNullException"/>, <see cref="T:System.OverflowException"/>, or <see cref="T:System.FormatException"/>,
but Java only ever throws NumberFormatException in any of those cases. Using <see cref="M:J2N.Numerics.Int64.TryParse(System.String,J2N.Globalization.NumberStyle,System.IFormatProvider,System.Int64@)"/>
means a <see cref="T:System.FormatException"/> can be thrown in any of those error condtions when it returns <c>false</c>.
</summary>
<param name="s">A string containing a number to convert.</param>
<param name="result">When this method returns, contains the 64-bit signed integer value equivalent of
the number contained in <paramref name="s"/>, if the conversion succeeded, or zero if the conversion failed.
The conversion fails if the s parameter is <c>null</c> or <see cref="F:System.String.Empty"/>, is not of the correct format,
or represents a number less than <see cref="F:System.Int64.MinValue"/> or greater than <see cref="F:System.Int64.MaxValue"/>. This parameter
is passed uninitialized; any value originally supplied in <paramref name="result"/> will be overwritten.</param>
<returns><c>true</c> if <paramref name="s"/> was converted successfully; otherwise, <c>false</c>.</returns>
<remarks>
The <see cref="M:J2N.Numerics.Int64.TryParse(System.String,System.Int64@)"/> method is like the <see cref="M:J2N.Numerics.Int64.Parse(System.String,System.IFormatProvider)"/> method,
except the <see cref="M:J2N.Numerics.Int64.TryParse(System.String,System.Int64@)"/> method does not throw an exception if the
conversion fails. It eliminates the need to use exception handling to test for a <see cref="T:System.FormatException"/>
in the event that <paramref name="s"/> is invalid and cannot be successfully parsed.
<para/>
The <paramref name="s"/> parameter contains a number of the form:
<code>
[ws][sign]digits[ws]
</code>
Items in square brackets ([ and ]) are optional. The following table describes each element.
<list type="table">
<listheader>
<term>Element</term>
<term>Description</term>
</listheader>
<item>
<term><i>ws</i></term>
<term>Optional white space.</term>
</item>
<item>
<term><i>sign</i></term>
<term>An optional sign.</term>
</item>
<item>
<term><i>digits</i></term>
<term>A sequence of digits ranging from 0 to 9.</term>
</item>
</list>
<para/>
The <paramref name="s"/> parameter is interpreted using the <see cref="F:J2N.Globalization.NumberStyle.Integer"/> style.
In addition to the decimal digits, only leading and trailing spaces together with a leading sign are
allowed. To explicitly define the style elements together with the culture-specific formatting
information that can be present in <paramref name="s"/>, use the <see cref="M:J2N.Numerics.Int64.TryParse(System.String,J2N.Globalization.NumberStyle,System.IFormatProvider,System.Int64@)"/> method.
<para/>
The <paramref name="s"/> parameter is parsed using the formatting information in a <see cref="T:System.Globalization.NumberFormatInfo"/>
object initialized for the current system culture. For more information, see <see cref="P:System.Globalization.NumberFormatInfo.CurrentInfo"/>.
<para/>
This overload of the <see cref="M:J2N.Numerics.Int64.TryParse(System.String,System.Int64@)"/> method interprets all digits in the <paramref name="s"/> parameter
as decimal digits. To parse the string representation of a hexadecimal number, call the
<see cref="M:J2N.Numerics.Int64.TryParse(System.String,J2N.Globalization.NumberStyle,System.IFormatProvider,System.Int64@)"/> overload.
</remarks>
<seealso cref="M:J2N.Numerics.Int64.Parse(System.String,System.IFormatProvider)"/>
<seealso cref="M:J2N.Numerics.Int64.TryParse(System.String,System.Int64@)"/>
<seealso cref="M:J2N.Numerics.Number.ToString"/>
</member>
<member name="M:J2N.Numerics.Int64.TryParse(System.ReadOnlySpan{System.Char},System.Int64@)">
<summary>
Converts the span representation of a number in a specified style and culture-specific format to its 64-bit signed
integer equivalent. A return value indicates whether the conversion succeeded.
<para/>
Usage Note: When porting from Java, note that this is a culture-sensitive method. Java uses the invariant
culture in the Integer class, so call <see cref="M:J2N.Numerics.Int64.TryParse(System.ReadOnlySpan{System.Char},J2N.Globalization.NumberStyle,System.IFormatProvider,System.Int64@)"/>
and pass <see cref="F:J2N.Globalization.NumberStyle.AllowLeadingSign"/> and <see cref="P:System.Globalization.NumberFormatInfo.InvariantInfo"/> to exactly match the Java parsing behavior.
<para/>
Using that overload also allows you to normalize the exception behavior. The <see cref="M:J2N.Numerics.Int64.Parse(System.String,System.IFormatProvider)"/>
method may throw <see cref="T:System.ArgumentNullException"/>, <see cref="T:System.OverflowException"/>, or <see cref="T:System.FormatException"/>,
but Java only ever throws NumberFormatException in any of those cases. Using <see cref="M:J2N.Numerics.Int64.TryParse(System.ReadOnlySpan{System.Char},J2N.Globalization.NumberStyle,System.IFormatProvider,System.Int64@)"/>
means a <see cref="T:System.FormatException"/> can be thrown in any of those error condtions when it returns <c>false</c>.
</summary>
<param name="s">A span containing the characters that represent the number to convert.</param>
<param name="result">When this method returns, contains the 64-bit signed integer value equivalent of
the number contained in <paramref name="s"/>, if the conversion succeeded, or zero if the conversion failed.
The conversion fails if the s parameter is <c>null</c> or <see cref="F:System.String.Empty"/>, is not of the correct format,
or represents a number less than <see cref="F:System.Int64.MinValue"/> or greater than <see cref="F:System.Int64.MaxValue"/>. This parameter
is passed uninitialized; any value originally supplied in <paramref name="result"/> will be overwritten.</param>
<returns><c>true</c> if <paramref name="s"/> was converted successfully; otherwise, <c>false</c>.</returns>
<remarks>
The <see cref="M:J2N.Numerics.Int64.TryParse(System.ReadOnlySpan{System.Char},System.Int64@)"/> method is like the <see cref="M:J2N.Numerics.Int64.Parse(System.ReadOnlySpan{System.Char},J2N.Globalization.NumberStyle,System.IFormatProvider)"/> method,
except the <see cref="M:J2N.Numerics.Int64.TryParse(System.ReadOnlySpan{System.Char},System.Int64@)"/> method does not throw an exception if the
conversion fails. It eliminates the need to use exception handling to test for a <see cref="T:System.FormatException"/>
in the event that <paramref name="s"/> is invalid and cannot be successfully parsed.
<para/>
The <paramref name="s"/> parameter contains a number of the form:
<code>
[ws][sign]digits[ws]
</code>
Items in square brackets ([ and ]) are optional. The following table describes each element.
<list type="table">
<listheader>
<term>Element</term>
<term>Description</term>
</listheader>
<item>
<term><i>ws</i></term>
<term>Optional white space.</term>
</item>
<item>
<term><i>sign</i></term>
<term>An optional sign.</term>
</item>
<item>
<term><i>digits</i></term>
<term>A sequence of digits ranging from 0 to 9.</term>
</item>
</list>
<para/>
The <paramref name="s"/> parameter is interpreted using the <see cref="F:J2N.Globalization.NumberStyle.Integer"/> style.
In addition to the decimal digits, only leading and trailing spaces together with a leading sign are
allowed. To explicitly define the style elements together with the culture-specific formatting
information that can be present in <paramref name="s"/>, use the <see cref="M:J2N.Numerics.Int64.TryParse(System.ReadOnlySpan{System.Char},J2N.Globalization.NumberStyle,System.IFormatProvider,System.Int64@)"/> method.
<para/>
The <paramref name="s"/> parameter is parsed using the formatting information in a <see cref="T:System.Globalization.NumberFormatInfo"/>
object initialized for the current system culture. For more information, see <see cref="P:System.Globalization.NumberFormatInfo.CurrentInfo"/>.
<para/>
This overload of the <see cref="M:J2N.Numerics.Int64.TryParse(System.ReadOnlySpan{System.Char},System.Int64@)"/> method interprets all digits in the <paramref name="s"/> parameter
as decimal digits. To parse the string representation of a hexadecimal number, call the
<see cref="M:J2N.Numerics.Int64.TryParse(System.ReadOnlySpan{System.Char},J2N.Globalization.NumberStyle,System.IFormatProvider,System.Int64@)"/> overload.
</remarks>
<seealso cref="M:J2N.Numerics.Int64.Parse(System.ReadOnlySpan{System.Char},J2N.Globalization.NumberStyle,System.IFormatProvider)"/>
<seealso cref="M:J2N.Numerics.Int64.TryParse(System.String,System.Int64@)"/>
<seealso cref="M:J2N.Numerics.Number.ToString"/>
</member>
<member name="M:J2N.Numerics.Int64.Parse(System.String,J2N.Globalization.NumberStyle,System.IFormatProvider)">
<summary>
Converts the string representation of a number in a specified style and culture-specific format to its
64-bit signed integer equivalent.
</summary>
<param name="s">A string containing a number to convert.</param>
<param name="style">A bitwise combination of enumeration values that indicates the style elements that can be
present in <paramref name="s"/>. A typical value to specify is <see cref="F:J2N.Globalization.NumberStyle.Integer"/>.</param>
<param name="provider">An <see cref="T:System.IFormatProvider"/> that supplies culture-specific formatting information about <paramref name="s"/>.</param>
<returns>A 64-bit signed integer equivalent to the number specified in <paramref name="s"/>.</returns>
<exception cref="T:System.ArgumentNullException"><paramref name="s"/> is <c>null</c>.</exception>
<exception cref="T:System.ArgumentException">
<paramref name="style"/> is not a <see cref="T:J2N.Globalization.NumberStyle"/> value.
<para/>
-or-
<para/>
<paramref name="style"/> is not a combination of <see cref="F:J2N.Globalization.NumberStyle.AllowHexSpecifier"/> and <see cref="F:J2N.Globalization.NumberStyle.HexNumber"/> values.
</exception>
<exception cref="T:System.FormatException"><paramref name="s"/> is not in a format compliant with <paramref name="style"/>.</exception>
<exception cref="T:System.OverflowException">
<paramref name="s"/> represents a number less than <see cref="F:System.Int64.MinValue"/> or greater than <see cref="F:System.Int64.MaxValue"/>.
<para/>
-or-
<para/>
<paramref name="s"/> includes non-zero fractional digits.
</exception>
<remarks>
The <paramref name="style"/> parameter defines the style elements (such as white space or the positive sign) that are allowed in the
<paramref name="s"/> parameter for the parse operation to succeed. It must be a combination of bit flags from the <see cref="T:J2N.Globalization.NumberStyle"/>
enumeration. Depending on the value of <paramref name="style"/>, the <paramref name="s"/> parameter may include the following elements:
<para/>
[ws][$][sign][digits,]digits[.fractional-digits][e[sign]exponential-digits][type][ws]
<para/>
Or, if the <paramref name="style"/> parameter includes <see cref="F:J2N.Globalization.NumberStyle.AllowHexSpecifier"/>:
<para/>
[ws][0x]hexdigits[hextype][ws]
<para/>
Elements framed in square brackets ([ and ]) are optional. The following table describes each element.
<para/>
<list type="table">
<listheader>
<term>Element</term>
<term>Description</term>
</listheader>
<item>
<term><i>ws</i></term>
<term>A series of white-space characters. White space can appear at the beginning of <paramref name="s"/> if style includes the
<see cref="F:J2N.Globalization.NumberStyle.AllowLeadingWhite"/> flag, and it can appear at the end of <paramref name="s"/> if style includes the
<see cref="F:J2N.Globalization.NumberStyle.AllowTrailingWhite"/> flag.</term>
</item>
<item>
<term><i>$</i></term>
<term>A culture-specific currency symbol. Its position in the string is defined by the <see cref="P:System.Globalization.NumberFormatInfo.CurrencyNegativePattern"/>
and <see cref="P:System.Globalization.NumberFormatInfo.CurrencyPositivePattern"/> properties of the <see cref="T:System.Globalization.NumberFormatInfo"/> object returned by the
<see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> method of the <paramref name="provider"/> parameter. The current culture's currency symbol can
appear in <paramref name="s"/> if style includes the <see cref="F:J2N.Globalization.NumberStyle.AllowCurrencySymbol"/> flag.</term>
</item>
<item>
<term><i>sign</i></term>
<term>A negative sign symbol (-) or a positive sign symbol (+). The sign can appear at the beginning of <paramref name="s"/> if
<paramref name="style"/> includes the <see cref="F:J2N.Globalization.NumberStyle.AllowLeadingSign"/> flag, and it can appear at the end of <paramref name="s"/>
if <paramref name="style"/> includes the <see cref="F:J2N.Globalization.NumberStyle.AllowTrailingSign"/> flag. Parentheses can be used in <paramref name="s"/>
to indicate a negative value if <paramref name="style"/> includes the <see cref="F:J2N.Globalization.NumberStyle.AllowParentheses"/> flag.</term>
</item>
<item>
<term><i>digits</i></term>
<term>A series of digits ranging from 0 to 9.</term>
</item>
<item>
<term><i>.</i></term>
<term>A culture-specific decimal point symbol. The decimal point symbol of the culture specified by <paramref name="provider"/>
can appear in <paramref name="s"/> if <paramref name="style"/> includes the <see cref="F:J2N.Globalization.NumberStyle.AllowDecimalPoint"/> flag.</term>
</item>
<item>
<term><i>fractional-digits</i>
</term>
<term>A series of digits ranging from 0 to 9 that specify the fractional part of the number. Fractional digits can appear in
<paramref name="s"/> if <paramref name="style"/> includes the <see cref="F:J2N.Globalization.NumberStyle.AllowDecimalPoint"/> flag.</term>
</item>
<item>
<term><i>e</i></term>
<term>The 'e' or 'E' character, which indicates that the value is represented in exponential notation. The <paramref name="s"/>
parameter can represent a number in exponential notation if <paramref name="style"/> includes the <see cref="F:J2N.Globalization.NumberStyle.AllowExponent"/> flag.</term>
</item>
<item>
<term><i>exponential-digits</i></term>
<term>A sequence of decimal digits from 0 through 9 that specify an exponent.</term>
</item>
<item>
<term><i>0x</i>/></term>
<term>The '0x' or '0X' characters, which indicate a hexadecimal number is to immediately follow.</term>
</item>
<item>
<term><i>hexdigits</i></term>
<term>A sequence of hexadecimal digits from 0 through f, or 0 through F. Hexadecimal digits can appear in <paramref name="s"/>
if <paramref name="style"/> includes the <see cref="F:J2N.Globalization.NumberStyle.AllowHexSpecifier"/> flag.</term>
</item>
<item>
<term><i>type</i></term>
<term>The 'UL', 'Ul', 'uL', 'ul', 'LU', 'Lu', 'lU', or 'lu', which is the
<a href="https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/language-specification/lexical-structure#6453-integer-literals">integral type suffix</a>
or 'f', 'F', 'd', 'D', 'm' or 'M' character, which is the
<a href="https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/language-specification/lexical-structure#6454-real-literals">real type suffix</a>
of the number as specified in the C# language specification. The type suffix can appear in <paramref name="s"/> if <paramref name="style"/>
includes the <see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/> flag.</term>
</item>
<item>
<term><i>hextype</i></term>
<term>The 'UL', 'Ul', 'uL', 'ul', 'LU', 'Lu', 'lU', or 'lu', which is the
<a href="https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/language-specification/lexical-structure#6453-integer-literals">integral type suffix</a>
of the number as specified in the C# language specification. The type suffix can appear in <paramref name="s"/> if <paramref name="style"/>
includes the <see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/> flag. Real type suffixes are not supported.</term>
</item>
</list>
<para/>
NOTE: Any terminating NUL (U+0000) characters in <paramref name="s"/> are ignored by the parsing operation, regardless of
the value of the <paramref name="style"/> argument.
<para/>
A string with decimal digits only (which corresponds to the <see cref="F:J2N.Globalization.NumberStyle.None"/> flag) always parses successfully.
Most of the remaining <see cref="T:J2N.Globalization.NumberStyle"/> members control elements that may be but are not required to be present in
this input string. The following table indicates how individual <see cref="T:J2N.Globalization.NumberStyle"/> members affect the elements that may
be present in <paramref name="s"/>.
<list type="table">
<listheader>
<term>Non-composite NumberStyle values</term>
<term>Elements permitted in <paramref name="s"/> in addition to digits</term>
</listheader>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.None"/></term>
<term>Decimal digits only.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowDecimalPoint"/></term>
<term>The decimal point (.) and <i>fractional-digits</i> elements. However, <i>fractional-digits</i> must consist
of only one or more 0 digits or the method returns <c>false</c>.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowExponent"/></term>
<term>The <paramref name="s"/> parameter can also use exponential notation. If <paramref name="s"/> represents a
number in exponential notation, it must represent an integer within the range of the <see cref="T:System.Int64"/> data type
without a non-zero, fractional component.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowLeadingWhite"/></term>
<term>The <i>ws</i> element at the beginning of <paramref name="s"/>.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowTrailingWhite"/></term>
<term>The <i>ws</i> element at the end of <paramref name="s"/>.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowLeadingSign"/></term>
<term>A sign can appear before <i>digits</i>.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowTrailingSign"/></term>
<term>A sign can appear after <i>digits</i>.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowParentheses"/></term>
<term>The <i>sign</i> element in the form of parentheses enclosing the numeric value.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowThousands"/></term>
<term>The thousands separator (,) element.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowCurrencySymbol"/></term>
<term>The <i>$</i> element.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/></term>
<term>The literal <i>type</i> suffix used in the literal identifier syntax of C# (suffixed with one of
'D', 'd', 'F', 'f', 'M', 'm', 'L', 'l', 'U', 'u', 'UL', 'ul', 'LU', or 'lu').</term>
</item>
</list>
<para/>
The <see cref="T:J2N.Globalization.NumberStyle"/> enum can be converted to the .NET <see cref="T:System.Globalization.NumberStyles"/> enum by using the
<see cref="M:J2N.Globalization.NumberStyleExtensions.ToNumberStyles(J2N.Globalization.NumberStyle)"/> extension method.
Similarly, <see cref="T:System.Globalization.NumberStyles"/> enum can be converted to the J2N <see cref="T:J2N.Globalization.NumberStyle"/> enum by using
the <see cref="M:J2N.Globalization.NumberStyleExtensions.ToNumberStyle(System.Globalization.NumberStyles)"/> extension method.
<para/>
If the <see cref="F:J2N.Globalization.NumberStyle.AllowHexSpecifier"/> flag is used, <paramref name="s"/> must be a hexadecimal value with or without a <c>0x</c> prefix.
For example, "F3" and "0xF3" both parse successfully. The only other flags that can be present in <paramref name="style"/> are
<see cref="F:J2N.Globalization.NumberStyle.AllowLeadingWhite"/>, <see cref="F:J2N.Globalization.NumberStyle.AllowTrailingWhite"/> and <see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/>.
(The <see cref="T:J2N.Globalization.NumberStyle"/> enumeration has a composite number style, <see cref="F:J2N.Globalization.NumberStyle.HexNumber"/>, that includes both white space
flags.)
The <see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/> only allows 'L', 'l', 'U', 'u', 'UL', 'ul', 'LU', or 'lu' for hexadecimal numbers.
<para/>
The <paramref name="provider"/> parameter is an <see cref="T:System.IFormatProvider"/> implementation, such as a <see cref="T:System.Globalization.CultureInfo"/> object,
a <see cref="T:System.Globalization.NumberFormatInfo"/> object or a <see cref="T:J2N.Text.StringFormatter"/> object, whose <see cref="M:System.IFormatProvider.GetFormat(System.Type)"/>
method returns a <see cref="T:System.Globalization.NumberFormatInfo"/> object. The <see cref="T:System.Globalization.NumberFormatInfo"/> object provides culture-specific information about
the format of <paramref name="s"/>. When the <see cref="M:J2N.Numerics.Int64.Parse(System.String,System.IFormatProvider)"/> method is invoked, it calls the provider parameter's
<see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> method and passes it a <see cref="T:System.Type"/> object that represents the <see cref="T:System.Globalization.NumberFormatInfo"/> type.
The <see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> method then returns the <see cref="T:System.Globalization.NumberFormatInfo"/> object that provides information about the
format of the <paramref name="s"/> parameter. There are three ways to use the <paramref name="provider"/> parameter to supply custom formatting
information to the parse operation:
<list type="bullet">
<item><description>You can pass a <see cref="T:System.Globalization.CultureInfo"/> object that represents the culture that supplies formatting information. Its
<see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> method returns the <see cref="T:System.Globalization.NumberFormatInfo"/> object that provides numeric formatting
information for that culture.</description></item>
<item><description>You can pass the actual <see cref="T:System.Globalization.NumberFormatInfo"/> object that provides numeric formatting information. (Its
implementation of <see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> just returns itself.)</description></item>
<item><description>You can pass a custom object that implements <see cref="T:System.IFormatProvider"/>. Its <see cref="M:System.IFormatProvider.GetFormat(System.Type)"/>
method instantiates and returns the <see cref="T:System.Globalization.NumberFormatInfo"/> object that provides formatting information.</description></item>
</list>
If <paramref name="provider"/> is <c>null</c> or a <see cref="T:System.Globalization.NumberFormatInfo"/> object cannot be obtained, the <see cref="T:System.Globalization.NumberFormatInfo"/>
object for the current culture is used.
</remarks>
<seealso cref="M:J2N.Numerics.Int64.TryParse(System.String,J2N.Globalization.NumberStyle,System.IFormatProvider,System.Int64@)"/>
<seealso cref="M:J2N.Numerics.Int64.GetInstance(System.String,J2N.Globalization.NumberStyle,System.IFormatProvider)"/>
</member>
<member name="M:J2N.Numerics.Int64.Parse(System.ReadOnlySpan{System.Char},J2N.Globalization.NumberStyle,System.IFormatProvider)">
<summary>
Converts the string representation of a number in a specified style and culture-specific format to its
64-bit signed integer equivalent.
</summary>
<param name="s">A string containing a number to convert.</param>
<param name="style">A bitwise combination of enumeration values that indicates the style elements that can be
present in <paramref name="s"/>. A typical value to specify is <see cref="F:J2N.Globalization.NumberStyle.Integer"/>.</param>
<param name="provider">An <see cref="T:System.IFormatProvider"/> that supplies culture-specific formatting information about <paramref name="s"/>.</param>
<returns>A 64-bit signed integer equivalent to the number specified in <paramref name="s"/>.</returns>
<exception cref="T:System.ArgumentNullException"><paramref name="s"/> is <c>null</c>.</exception>
<exception cref="T:System.ArgumentException">
<paramref name="style"/> is not a <see cref="T:J2N.Globalization.NumberStyle"/> value.
<para/>
-or-
<para/>
<paramref name="style"/> is not a combination of <see cref="F:J2N.Globalization.NumberStyle.AllowHexSpecifier"/> and <see cref="F:J2N.Globalization.NumberStyle.HexNumber"/> values.
</exception>
<exception cref="T:System.FormatException"><paramref name="s"/> is not in a format compliant with <paramref name="style"/>.</exception>
<exception cref="T:System.OverflowException">
<paramref name="s"/> represents a number less than <see cref="F:System.Int64.MinValue"/> or greater than <see cref="F:System.Int64.MaxValue"/>.
<para/>
-or-
<para/>
<paramref name="s"/> includes non-zero fractional digits.
</exception>
<remarks>
The <paramref name="style"/> parameter defines the style elements (such as white space or the positive sign) that are allowed in the
<paramref name="s"/> parameter for the parse operation to succeed. It must be a combination of bit flags from the <see cref="T:J2N.Globalization.NumberStyle"/>
enumeration. Depending on the value of <paramref name="style"/>, the <paramref name="s"/> parameter may include the following elements:
<para/>
[ws][$][sign][digits,]digits[.fractional-digits][e[sign]exponential-digits][type][ws]
<para/>
Or, if the <paramref name="style"/> parameter includes <see cref="F:J2N.Globalization.NumberStyle.AllowHexSpecifier"/>:
<para/>
[ws][0x]hexdigits[hextype][ws]
<para/>
Elements framed in square brackets ([ and ]) are optional. The following table describes each element.
<para/>
<list type="table">
<listheader>
<term>Element</term>
<term>Description</term>
</listheader>
<item>
<term><i>ws</i></term>
<term>A series of white-space characters. White space can appear at the beginning of <paramref name="s"/> if style includes the
<see cref="F:J2N.Globalization.NumberStyle.AllowLeadingWhite"/> flag, and it can appear at the end of <paramref name="s"/> if style includes the
<see cref="F:J2N.Globalization.NumberStyle.AllowTrailingWhite"/> flag.</term>
</item>
<item>
<term><i>$</i></term>
<term>A culture-specific currency symbol. Its position in the string is defined by the <see cref="P:System.Globalization.NumberFormatInfo.CurrencyNegativePattern"/>
and <see cref="P:System.Globalization.NumberFormatInfo.CurrencyPositivePattern"/> properties of the <see cref="T:System.Globalization.NumberFormatInfo"/> object returned by the
<see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> method of the <paramref name="provider"/> parameter. The current culture's currency symbol can
appear in <paramref name="s"/> if style includes the <see cref="F:J2N.Globalization.NumberStyle.AllowCurrencySymbol"/> flag.</term>
</item>
<item>
<term><i>sign</i></term>
<term>A negative sign symbol (-) or a positive sign symbol (+). The sign can appear at the beginning of <paramref name="s"/> if
<paramref name="style"/> includes the <see cref="F:J2N.Globalization.NumberStyle.AllowLeadingSign"/> flag, and it can appear at the end of <paramref name="s"/>
if <paramref name="style"/> includes the <see cref="F:J2N.Globalization.NumberStyle.AllowTrailingSign"/> flag. Parentheses can be used in <paramref name="s"/>
to indicate a negative value if <paramref name="style"/> includes the <see cref="F:J2N.Globalization.NumberStyle.AllowParentheses"/> flag.</term>
</item>
<item>
<term><i>digits</i></term>
<term>A series of digits ranging from 0 to 9.</term>
</item>
<item>
<term><i>.</i></term>
<term>A culture-specific decimal point symbol. The decimal point symbol of the culture specified by <paramref name="provider"/>
can appear in <paramref name="s"/> if <paramref name="style"/> includes the <see cref="F:J2N.Globalization.NumberStyle.AllowDecimalPoint"/> flag.</term>
</item>
<item>
<term><i>fractional-digits</i>
</term>
<term>A series of digits ranging from 0 to 9 that specify the fractional part of the number. Fractional digits can appear in
<paramref name="s"/> if <paramref name="style"/> includes the <see cref="F:J2N.Globalization.NumberStyle.AllowDecimalPoint"/> flag.</term>
</item>
<item>
<term><i>e</i></term>
<term>The 'e' or 'E' character, which indicates that the value is represented in exponential notation. The <paramref name="s"/>
parameter can represent a number in exponential notation if <paramref name="style"/> includes the <see cref="F:J2N.Globalization.NumberStyle.AllowExponent"/> flag.</term>
</item>
<item>
<term><i>exponential-digits</i></term>
<term>A sequence of decimal digits from 0 through 9 that specify an exponent.</term>
</item>
<item>
<term><i>0x</i>/></term>
<term>The '0x' or '0X' characters, which indicate a hexadecimal number is to immediately follow.</term>
</item>
<item>
<term><i>hexdigits</i></term>
<term>A sequence of hexadecimal digits from 0 through f, or 0 through F. Hexadecimal digits can appear in <paramref name="s"/>
if <paramref name="style"/> includes the <see cref="F:J2N.Globalization.NumberStyle.AllowHexSpecifier"/> flag.</term>
</item>
<item>
<term><i>type</i></term>
<term>The 'UL', 'Ul', 'uL', 'ul', 'LU', 'Lu', 'lU', or 'lu', which is the
<a href="https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/language-specification/lexical-structure#6453-integer-literals">integral type suffix</a>
or 'f', 'F', 'd', 'D', 'm' or 'M' character, which is the
<a href="https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/language-specification/lexical-structure#6454-real-literals">real type suffix</a>
of the number as specified in the C# language specification. The type suffix can appear in <paramref name="s"/> if <paramref name="style"/>
includes the <see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/> flag.</term>
</item>
<item>
<term><i>hextype</i></term>
<term>The 'UL', 'Ul', 'uL', 'ul', 'LU', 'Lu', 'lU', or 'lu', which is the
<a href="https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/language-specification/lexical-structure#6453-integer-literals">integral type suffix</a>
of the number as specified in the C# language specification. The type suffix can appear in <paramref name="s"/> if <paramref name="style"/>
includes the <see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/> flag. Real type suffixes are not supported.</term>
</item>
</list>
<para/>
NOTE: Any terminating NUL (U+0000) characters in <paramref name="s"/> are ignored by the parsing operation, regardless of
the value of the <paramref name="style"/> argument.
<para/>
A string with decimal digits only (which corresponds to the <see cref="F:J2N.Globalization.NumberStyle.None"/> flag) always parses successfully.
Most of the remaining <see cref="T:J2N.Globalization.NumberStyle"/> members control elements that may be but are not required to be present in
this input string. The following table indicates how individual <see cref="T:J2N.Globalization.NumberStyle"/> members affect the elements that may
be present in <paramref name="s"/>.
<list type="table">
<listheader>
<term>Non-composite NumberStyle values</term>
<term>Elements permitted in <paramref name="s"/> in addition to digits</term>
</listheader>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.None"/></term>
<term>Decimal digits only.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowDecimalPoint"/></term>
<term>The decimal point (.) and <i>fractional-digits</i> elements. However, <i>fractional-digits</i> must consist
of only one or more 0 digits or the method returns <c>false</c>.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowExponent"/></term>
<term>The <paramref name="s"/> parameter can also use exponential notation. If <paramref name="s"/> represents a
number in exponential notation, it must represent an integer within the range of the <see cref="T:System.Int64"/> data type
without a non-zero, fractional component.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowLeadingWhite"/></term>
<term>The <i>ws</i> element at the beginning of <paramref name="s"/>.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowTrailingWhite"/></term>
<term>The <i>ws</i> element at the end of <paramref name="s"/>.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowLeadingSign"/></term>
<term>A sign can appear before <i>digits</i>.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowTrailingSign"/></term>
<term>A sign can appear after <i>digits</i>.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowParentheses"/></term>
<term>The <i>sign</i> element in the form of parentheses enclosing the numeric value.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowThousands"/></term>
<term>The thousands separator (,) element.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowCurrencySymbol"/></term>
<term>The <i>$</i> element.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/></term>
<term>The literal <i>type</i> suffix used in the literal identifier syntax of C# (suffixed with one of
'D', 'd', 'F', 'f', 'M', 'm', 'L', 'l', 'U', 'u', 'UL', 'ul', 'LU', or 'lu').</term>
</item>
</list>
<para/>
The <see cref="T:J2N.Globalization.NumberStyle"/> enum can be converted to the .NET <see cref="T:System.Globalization.NumberStyles"/> enum by using the
<see cref="M:J2N.Globalization.NumberStyleExtensions.ToNumberStyles(J2N.Globalization.NumberStyle)"/> extension method.
Similarly, <see cref="T:System.Globalization.NumberStyles"/> enum can be converted to the J2N <see cref="T:J2N.Globalization.NumberStyle"/> enum by using
the <see cref="M:J2N.Globalization.NumberStyleExtensions.ToNumberStyle(System.Globalization.NumberStyles)"/> extension method.
<para/>
If the <see cref="F:J2N.Globalization.NumberStyle.AllowHexSpecifier"/> flag is used, <paramref name="s"/> must be a hexadecimal value with or without a <c>0x</c> prefix.
For example, "F3" and "0xF3" both parse successfully. The only other flags that can be present in <paramref name="style"/> are
<see cref="F:J2N.Globalization.NumberStyle.AllowLeadingWhite"/>, <see cref="F:J2N.Globalization.NumberStyle.AllowTrailingWhite"/> and <see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/>.
(The <see cref="T:J2N.Globalization.NumberStyle"/> enumeration has a composite number style, <see cref="F:J2N.Globalization.NumberStyle.HexNumber"/>, that includes both white space
flags.)
The <see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/> only allows 'L', 'l', 'U', 'u', 'UL', 'ul', 'LU', or 'lu' for hexadecimal numbers.
<para/>
The <paramref name="provider"/> parameter is an <see cref="T:System.IFormatProvider"/> implementation, such as a <see cref="T:System.Globalization.CultureInfo"/> object,
a <see cref="T:System.Globalization.NumberFormatInfo"/> object or a <see cref="T:J2N.Text.StringFormatter"/> object, whose <see cref="M:System.IFormatProvider.GetFormat(System.Type)"/>
method returns a <see cref="T:System.Globalization.NumberFormatInfo"/> object. The <see cref="T:System.Globalization.NumberFormatInfo"/> object provides culture-specific information about
the format of <paramref name="s"/>. When the <see cref="M:J2N.Numerics.Int64.Parse(System.String,System.IFormatProvider)"/> method is invoked, it calls the provider parameter's
<see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> method and passes it a <see cref="T:System.Type"/> object that represents the <see cref="T:System.Globalization.NumberFormatInfo"/> type.
The <see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> method then returns the <see cref="T:System.Globalization.NumberFormatInfo"/> object that provides information about the
format of the <paramref name="s"/> parameter. There are three ways to use the <paramref name="provider"/> parameter to supply custom formatting
information to the parse operation:
<list type="bullet">
<item><description>You can pass a <see cref="T:System.Globalization.CultureInfo"/> object that represents the culture that supplies formatting information. Its
<see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> method returns the <see cref="T:System.Globalization.NumberFormatInfo"/> object that provides numeric formatting
information for that culture.</description></item>
<item><description>You can pass the actual <see cref="T:System.Globalization.NumberFormatInfo"/> object that provides numeric formatting information. (Its
implementation of <see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> just returns itself.)</description></item>
<item><description>You can pass a custom object that implements <see cref="T:System.IFormatProvider"/>. Its <see cref="M:System.IFormatProvider.GetFormat(System.Type)"/>
method instantiates and returns the <see cref="T:System.Globalization.NumberFormatInfo"/> object that provides formatting information.</description></item>
</list>
If <paramref name="provider"/> is <c>null</c> or a <see cref="T:System.Globalization.NumberFormatInfo"/> object cannot be obtained, the <see cref="T:System.Globalization.NumberFormatInfo"/>
object for the current culture is used.
</remarks>
<seealso cref="M:J2N.Numerics.Int64.TryParse(System.ReadOnlySpan{System.Char},J2N.Globalization.NumberStyle,System.IFormatProvider,System.Int64@)"/>
<seealso cref="M:J2N.Numerics.Int64.GetInstance(System.String,J2N.Globalization.NumberStyle,System.IFormatProvider)"/>
</member>
<member name="M:J2N.Numerics.Int64.TryParse(System.String,J2N.Globalization.NumberStyle,System.IFormatProvider,System.Int64@)">
<summary>
Converts the string representation of a number in a specified style and culture-specific format to its
64-bit signed integer equivalent. A return value indicates whether the conversion succeeded.
<para/>
Usage Note: To exactly match Java, use <see cref="F:J2N.Globalization.NumberStyle.AllowLeadingSign"/> for <paramref name="style"/> and
<see cref="P:System.Globalization.NumberFormatInfo.InvariantInfo"/> for <paramref name="provider"/>. We recommend factoring out
exceptions when parsing, but if the Java code depends on exceptions, throw <see cref="T:System.FormatException"/>
when this method returns <c>false</c>.
</summary>
<param name="s">A string containing a number to convert. The string is interpreted using the style specified by <paramref name="style"/>.</param>
<param name="style">A bitwise combination of enumeration values that indicates the style elements that can be present in <paramref name="s"/>.
A typical value to specify is <see cref="F:J2N.Globalization.NumberStyle.Integer"/>.</param>
<param name="provider">An object that supplies culture-specific formatting information about <paramref name="s"/>.</param>
<param name="result">When this method returns, contains the 64-bit signed integer value equivalent of
the number contained in <paramref name="s"/>, if the conversion succeeded, or zero if the conversion failed.
The conversion fails if the s parameter is <c>null</c> or <see cref="F:System.String.Empty"/>, is not of the correct format,
or represents a number less than <see cref="F:System.Int64.MinValue"/> or greater than <see cref="F:System.Int64.MaxValue"/>. This parameter
is passed uninitialized; any value originally supplied in <paramref name="result"/> will be overwritten.</param>
<returns><c>true</c> if <paramref name="s"/> was converted successfully; otherwise, <c>false</c>.</returns>
<exception cref="T:System.ArgumentException">
<paramref name="style"/> is not a <see cref="T:J2N.Globalization.NumberStyle"/> value.
<para/>
-or-
<para/>
<paramref name="style"/> is not a combination of <see cref="F:J2N.Globalization.NumberStyle.AllowHexSpecifier"/> and <see cref="F:J2N.Globalization.NumberStyle.HexNumber"/> values.
</exception>
<remarks>
The <see cref="M:J2N.Numerics.Int64.TryParse(System.String,J2N.Globalization.NumberStyle,System.IFormatProvider,System.Int64@)"/> method is like the <see cref="M:J2N.Numerics.Int64.Parse(System.String,J2N.Globalization.NumberStyle,System.IFormatProvider)"/> method,
except the <see cref="M:J2N.Numerics.Int64.TryParse(System.String,J2N.Globalization.NumberStyle,System.IFormatProvider,System.Int64@)"/> method does not throw an exception if the
conversion fails. It eliminates the need to use exception handling to test for a <see cref="T:System.FormatException"/>
in the event that <paramref name="s"/> is invalid and cannot be successfully parsed.
<para/>
The <paramref name="style"/> parameter defines the style elements (such as white space or a positive or negative sign)
that are allowed in the <paramref name="s"/> parameter for the parse operation to succeed. It must be a combination of
bit flags from the <see cref="T:J2N.Globalization.NumberStyle"/> enumeration. Depending on the value of <paramref name="style"/>, the <paramref name="s"/>
parameter may include the following elements:
<code>
[ws][$][sign][digits,]digits[.fractional-digits][e[sign]exponential-digits][type][ws]
</code>
Or, if the <paramref name="style"/> parameter includes <see cref="F:J2N.Globalization.NumberStyle.AllowHexSpecifier"/>:
<code>
[ws][0x]hexdigits[hextype][ws]
</code>
Items in square brackets ([ and ]) are optional. The following table describes each element.
<list type="table">
<listheader>
<term>Element</term>
<term>Description</term>
</listheader>
<item>
<term><i>ws</i></term>
<term>Optional white space.</term>
</item>
<item>
<term><i>$</i></term>
<term>A culture-specific currency symbol. Its position in the string is defined by the <see cref="P:System.Globalization.NumberFormatInfo.CurrencyPositivePattern"/>
property of the <see cref="T:System.Globalization.NumberFormatInfo"/> object returned by the <see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> method of the
<paramref name="provider"/> parameter. The currency symbol can appear in <paramref name="s"/> if style includes the
<see cref="F:J2N.Globalization.NumberStyle.AllowCurrencySymbol"/> flag.</term>
</item>
<item>
<term><i>sign</i></term>
<term>An optional sign.</term>
</item>
<item>
<term><i>digits</i></term>
<term>A sequence of digits ranging from 0 to 9.</term>
</item>
<item>
<term><i>,</i></term>
<term>A culture-specific thousands separator. The thousands separator of the culture specified by <paramref name="provider"/>
can appear in <paramref name="s"/> if <paramref name="style"/> includes the <see cref="F:J2N.Globalization.NumberStyle.AllowThousands"/> flag.</term>
</item>
<item>
<term><i>.</i></term>
<term>A culture-specific decimal point symbol. The decimal point symbol of the culture specified by <paramref name="provider"/>
can appear in <paramref name="s"/> if <paramref name="style"/> includes the <see cref="F:J2N.Globalization.NumberStyle.AllowDecimalPoint"/> flag.</term>
</item>
<item>
<term><i>fractional-digits</i></term>
<term>One or more occurrences of the digit 0. Fractional digits can appear in <paramref name="s"/> only if style includes
the <see cref="F:J2N.Globalization.NumberStyle.AllowDecimalPoint"/> flag.</term>
</item>
<item>
<term><i>e</i></term>
<term>The 'e' or 'E' character, which indicates that the value is represented in exponential notation. The <paramref name="s"/>
parameter can represent a number in exponential notation if style includes the <see cref="F:J2N.Globalization.NumberStyle.AllowExponent"/> flag.</term>
</item>
<item>
<term><i>exponential-digits</i></term>
<term>A sequence of decimal digits from 0 through 9 that specify an exponent.</term>
</item>
<item>
<term><i>0x</i>/></term>
<term>The '0x' or '0X' characters, which indicate a hexadecimal number is to immediately follow.</term>
</item>
<item>
<term><i>hexdigits</i></term>
<term>A sequence of hexadecimal digits from 0 through f, or 0 through F.</term>
</item>
<item>
<term><i>type</i></term>
<term>The 'UL', 'Ul', 'uL', 'ul', 'LU', 'Lu', 'lU', or 'lu', which is the
<a href="https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/language-specification/lexical-structure#6453-integer-literals">integral type suffix</a>
or 'f', 'F', 'd', 'D', 'm' or 'M' character, which is the
<a href="https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/language-specification/lexical-structure#6454-real-literals">real type suffix</a>
of the number as specified in the C# language specification. The type suffix can appear in <paramref name="s"/> if <paramref name="style"/>
includes the <see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/> flag.</term>
</item>
<item>
<term><i>hextype</i></term>
<term>The 'UL', 'Ul', 'uL', 'ul', 'LU', 'Lu', 'lU', or 'lu', which is the
<a href="https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/language-specification/lexical-structure#6453-integer-literals">integral type suffix</a>
of the number as specified in the C# language specification. The type suffix can appear in <paramref name="s"/> if <paramref name="style"/>
includes the <see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/> flag. Real type suffixes are not supported.</term>
</item>
</list>
<para/>
NOTE: Any terminating NUL (U+0000) characters in <paramref name="s"/> are ignored by the parsing operation, regardless of
the value of the <paramref name="style"/> argument.
<para/>
A string with decimal digits only (which corresponds to the <see cref="F:J2N.Globalization.NumberStyle.None"/> flag) always parses successfully.
Most of the remaining <see cref="T:J2N.Globalization.NumberStyle"/> members control elements that may be but are not required to be present in
this input string. The following table indicates how individual <see cref="T:J2N.Globalization.NumberStyle"/> members affect the elements that may
be present in <paramref name="s"/>.
<list type="table">
<listheader>
<term>Non-composite NumberStyle values</term>
<term>Elements permitted in <paramref name="s"/> in addition to digits</term>
</listheader>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.None"/></term>
<term>Decimal digits only.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowDecimalPoint"/></term>
<term>The decimal point (.) and <i>fractional-digits</i> elements. However, <i>fractional-digits</i> must consist
of only one or more 0 digits or the method returns <c>false</c>.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowExponent"/></term>
<term>The <paramref name="s"/> parameter can also use exponential notation. If <paramref name="s"/> represents a
number in exponential notation, it must represent an integer within the range of the <see cref="T:System.Int64"/> data type
without a non-zero, fractional component.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowLeadingWhite"/></term>
<term>The <i>ws</i> element at the beginning of <paramref name="s"/>.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowTrailingWhite"/></term>
<term>The <i>ws</i> element at the end of <paramref name="s"/>.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowLeadingSign"/></term>
<term>A sign can appear before <i>digits</i>.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowTrailingSign"/></term>
<term>A sign can appear after <i>digits</i>.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowParentheses"/></term>
<term>The <i>sign</i> element in the form of parentheses enclosing the numeric value.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowThousands"/></term>
<term>The thousands separator (,) element.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowCurrencySymbol"/></term>
<term>The <i>$</i> element.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/></term>
<term>The literal <i>type</i> suffix used in the literal identifier syntax of C# (suffixed with one of
'D', 'd', 'F', 'f', 'M', 'm', 'L', 'l', 'U', 'u', 'UL', 'ul', 'LU', or 'lu').</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.Currency"/></term>
<term>All elements. The <paramref name="s"/> parameter cannot represent a hexadecimal
number or a number in exponential notation.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.Float"/></term>
<term>The <i>ws</i> element at the beginning or end of <paramref name="s"/>, sign at
the beginning of <paramref name="s"/>, and the decimal point (.) symbol. The <paramref name="s"/>
parameter can also use exponential notation.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.Number"/></term>
<term>The <i>ws</i>, <i>sign</i>, thousands separator (,), and decimal point (.) elements.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.Any"/></term>
<term>All styles, except <paramref name="s"/> cannot represent a hexadecimal number.</term>
</item>
</list>
<para/>
The <see cref="T:J2N.Globalization.NumberStyle"/> enum can be converted to the .NET <see cref="T:System.Globalization.NumberStyles"/> enum by using the
<see cref="M:J2N.Globalization.NumberStyleExtensions.ToNumberStyles(J2N.Globalization.NumberStyle)"/> extension method.
Similarly, <see cref="T:System.Globalization.NumberStyles"/> enum can be converted to the J2N <see cref="T:J2N.Globalization.NumberStyle"/> enum by using
the <see cref="M:J2N.Globalization.NumberStyleExtensions.ToNumberStyle(System.Globalization.NumberStyles)"/> extension method.
<para/>
If the <see cref="F:J2N.Globalization.NumberStyle.AllowHexSpecifier"/> flag is used, <paramref name="s"/> must be a hexadecimal value with or without a <c>0x</c> prefix.
For example, "F3" and "0xF3" both parse successfully. The only other flags that can be present in <paramref name="style"/> are
<see cref="F:J2N.Globalization.NumberStyle.AllowLeadingWhite"/>, <see cref="F:J2N.Globalization.NumberStyle.AllowTrailingWhite"/> and <see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/>.
(The <see cref="T:J2N.Globalization.NumberStyle"/> enumeration has a composite number style, <see cref="F:J2N.Globalization.NumberStyle.HexNumber"/>, that includes both white space
flags.)
The <see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/> only allows 'L', 'l', 'U', 'u', 'UL', 'ul', 'LU', or 'lu' for hexadecimal numbers.
<para/>
The <paramref name="provider"/> parameter is an <see cref="T:System.IFormatProvider"/> implementation, such as a <see cref="T:System.Globalization.CultureInfo"/> object,
a <see cref="T:System.Globalization.NumberFormatInfo"/> object or a <see cref="T:J2N.Text.StringFormatter"/> object, whose <see cref="M:System.IFormatProvider.GetFormat(System.Type)"/>
method returns a <see cref="T:System.Globalization.NumberFormatInfo"/> object. The <see cref="T:System.Globalization.NumberFormatInfo"/> object provides culture-specific information about
the format of <paramref name="s"/>. If <paramref name="provider"/> is <c>null</c>, the <see cref="T:System.Globalization.NumberFormatInfo"/> object for the current
culture is used.
</remarks>
<seealso cref="M:J2N.Numerics.Int64.Parse(System.String,J2N.Globalization.NumberStyle,System.IFormatProvider)"/>
<seealso cref="M:J2N.Numerics.Int64.TryParse(System.String,System.Int64@)"/>
<seealso cref="M:J2N.Numerics.Number.ToString"/>
<seealso cref="T:J2N.Globalization.NumberStyle"/>
</member>
<member name="M:J2N.Numerics.Int64.TryParse(System.ReadOnlySpan{System.Char},J2N.Globalization.NumberStyle,System.IFormatProvider,System.Int64@)">
<summary>
Converts the span representation of a number in a specified style and culture-specific format to its 64-bit signed integer equivalent.
A return value indicates whether the conversion succeeded.
<para/>
Usage Note: To exactly match Java, use <see cref="F:J2N.Globalization.NumberStyle.AllowLeadingSign"/> for <paramref name="style"/> and
<see cref="P:System.Globalization.NumberFormatInfo.InvariantInfo"/> for <paramref name="provider"/>. We recommend factoring out
exceptions when parsing, but if the Java code depends on exceptions, throw <see cref="T:System.FormatException"/>
when this method returns <c>false</c>.
</summary>
<param name="s">A span containing the characters that represent the number to convert. The span is interpreted using
the style specified by <paramref name="style"/>.</param>
<param name="style">A bitwise combination of enumeration values that indicates the style elements that can be present in <paramref name="s"/>.
A typical value to specify is <see cref="F:J2N.Globalization.NumberStyle.Integer"/>.</param>
<param name="provider">An object that supplies culture-specific formatting information about <paramref name="s"/>.</param>
<param name="result">When this method returns, contains the 64-bit signed integer value equivalent of
the number contained in <paramref name="s"/>, if the conversion succeeded, or zero if the conversion failed.
The conversion fails if the s parameter is <c>null</c> or <see cref="F:System.String.Empty"/>, is not of the correct format,
or represents a number less than <see cref="F:System.Int64.MinValue"/> or greater than <see cref="F:System.Int64.MaxValue"/>. This parameter
is passed uninitialized; any value originally supplied in <paramref name="result"/> will be overwritten.</param>
<returns><c>true</c> if <paramref name="s"/> was converted successfully; otherwise, <c>false</c>.</returns>
<exception cref="T:System.ArgumentException">
<paramref name="style"/> is not a <see cref="T:J2N.Globalization.NumberStyle"/> value.
<para/>
-or-
<para/>
<paramref name="style"/> is not a combination of <see cref="F:J2N.Globalization.NumberStyle.AllowHexSpecifier"/> and <see cref="F:J2N.Globalization.NumberStyle.HexNumber"/> values.
</exception>
<remarks>
The <see cref="M:J2N.Numerics.Int64.TryParse(System.ReadOnlySpan{System.Char},J2N.Globalization.NumberStyle,System.IFormatProvider,System.Int64@)"/> method is like the <see cref="M:J2N.Numerics.Int64.Parse(System.ReadOnlySpan{System.Char},J2N.Globalization.NumberStyle,System.IFormatProvider)"/> method,
except the <see cref="M:J2N.Numerics.Int64.TryParse(System.ReadOnlySpan{System.Char},J2N.Globalization.NumberStyle,System.IFormatProvider,System.Int64@)"/> method does not throw an exception if the
conversion fails. It eliminates the need to use exception handling to test for a <see cref="T:System.FormatException"/>
in the event that <paramref name="s"/> is invalid and cannot be successfully parsed.
<para/>
The <paramref name="style"/> parameter defines the style elements (such as white space or a positive or negative sign)
that are allowed in the <paramref name="s"/> parameter for the parse operation to succeed. It must be a combination of
bit flags from the <see cref="T:J2N.Globalization.NumberStyle"/> enumeration. Depending on the value of <paramref name="style"/>, the <paramref name="s"/>
parameter may include the following elements:
<code>
[ws][$][sign][digits,]digits[.fractional-digits][e[sign]exponential-digits][type][ws]
</code>
Or, if the <paramref name="style"/> parameter includes <see cref="F:J2N.Globalization.NumberStyle.AllowHexSpecifier"/>:
<code>
[ws][0x]hexdigits[hextype][ws]
</code>
Items in square brackets ([ and ]) are optional. The following table describes each element.
<list type="table">
<listheader>
<term>Element</term>
<term>Description</term>
</listheader>
<item>
<term><i>ws</i></term>
<term>Optional white space.</term>
</item>
<item>
<term><i>$</i></term>
<term>A culture-specific currency symbol. Its position in the string is defined by the <see cref="P:System.Globalization.NumberFormatInfo.CurrencyPositivePattern"/>
property of the <see cref="T:System.Globalization.NumberFormatInfo"/> object returned by the <see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> method of the
<paramref name="provider"/> parameter. The currency symbol can appear in <paramref name="s"/> if style includes the
<see cref="F:J2N.Globalization.NumberStyle.AllowCurrencySymbol"/> flag.</term>
</item>
<item>
<term><i>sign</i></term>
<term>An optional sign.</term>
</item>
<item>
<term><i>digits</i></term>
<term>A sequence of digits ranging from 0 to 9.</term>
</item>
<item>
<term><i>,</i></term>
<term>A culture-specific thousands separator. The thousands separator of the culture specified by <paramref name="provider"/>
can appear in <paramref name="s"/> if <paramref name="style"/> includes the <see cref="F:J2N.Globalization.NumberStyle.AllowThousands"/> flag.</term>
</item>
<item>
<term><i>.</i></term>
<term>A culture-specific decimal point symbol. The decimal point symbol of the culture specified by <paramref name="provider"/>
can appear in <paramref name="s"/> if <paramref name="style"/> includes the <see cref="F:J2N.Globalization.NumberStyle.AllowDecimalPoint"/> flag.</term>
</item>
<item>
<term><i>fractional-digits</i></term>
<term>One or more occurrences of the digit 0. Fractional digits can appear in <paramref name="s"/> only if style includes
the <see cref="F:J2N.Globalization.NumberStyle.AllowDecimalPoint"/> flag.</term>
</item>
<item>
<term><i>e</i></term>
<term>The 'e' or 'E' character, which indicates that the value is represented in exponential notation. The <paramref name="s"/>
parameter can represent a number in exponential notation if style includes the <see cref="F:J2N.Globalization.NumberStyle.AllowExponent"/> flag.</term>
</item>
<item>
<term><i>exponential-digits</i></term>
<term>A sequence of decimal digits from 0 through 9 that specify an exponent.</term>
</item>
<item>
<term><i>0x</i>/></term>
<term>The '0x' or '0X' characters, which indicate a hexadecimal number is to immediately follow.</term>
</item>
<item>
<term><i>hexdigits</i></term>
<term>A sequence of hexadecimal digits from 0 through f, or 0 through F.</term>
</item>
<item>
<term><i>type</i></term>
<term>The 'UL', 'Ul', 'uL', 'ul', 'LU', 'Lu', 'lU', or 'lu', which is the
<a href="https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/language-specification/lexical-structure#6453-integer-literals">integral type suffix</a>
or 'f', 'F', 'd', 'D', 'm' or 'M' character, which is the
<a href="https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/language-specification/lexical-structure#6454-real-literals">real type suffix</a>
of the number as specified in the C# language specification. The type suffix can appear in <paramref name="s"/> if <paramref name="style"/>
includes the <see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/> flag.</term>
</item>
<item>
<term><i>hextype</i></term>
<term>The 'UL', 'Ul', 'uL', 'ul', 'LU', 'Lu', 'lU', or 'lu', which is the
<a href="https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/language-specification/lexical-structure#6453-integer-literals">integral type suffix</a>
of the number as specified in the C# language specification. The type suffix can appear in <paramref name="s"/> if <paramref name="style"/>
includes the <see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/> flag. Real type suffixes are not supported.</term>
</item>
</list>
<para/>
NOTE: Any terminating NUL (U+0000) characters in <paramref name="s"/> are ignored by the parsing operation, regardless of
the value of the <paramref name="style"/> argument.
<para/>
A string with decimal digits only (which corresponds to the <see cref="F:J2N.Globalization.NumberStyle.None"/> flag) always parses successfully.
Most of the remaining <see cref="T:J2N.Globalization.NumberStyle"/> members control elements that may be but are not required to be present in
this input string. The following table indicates how individual <see cref="T:J2N.Globalization.NumberStyle"/> members affect the elements that may
be present in <paramref name="s"/>.
<list type="table">
<listheader>
<term>Non-composite NumberStyle values</term>
<term>Elements permitted in <paramref name="s"/> in addition to digits</term>
</listheader>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.None"/></term>
<term>Decimal digits only.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowDecimalPoint"/></term>
<term>The decimal point (.) and <i>fractional-digits</i> elements. However, <i>fractional-digits</i> must consist
of only one or more 0 digits or the method returns <c>false</c>.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowExponent"/></term>
<term>The <paramref name="s"/> parameter can also use exponential notation. If <paramref name="s"/> represents a
number in exponential notation, it must represent an integer within the range of the <see cref="T:System.Int64"/> data type
without a non-zero, fractional component.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowLeadingWhite"/></term>
<term>The <i>ws</i> element at the beginning of <paramref name="s"/>.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowTrailingWhite"/></term>
<term>The <i>ws</i> element at the end of <paramref name="s"/>.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowLeadingSign"/></term>
<term>A sign can appear before <i>digits</i>.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowTrailingSign"/></term>
<term>A sign can appear after <i>digits</i>.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowParentheses"/></term>
<term>The <i>sign</i> element in the form of parentheses enclosing the numeric value.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowThousands"/></term>
<term>The thousands separator (,) element.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowCurrencySymbol"/></term>
<term>The <i>$</i> element.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/></term>
<term>The literal <i>type</i> suffix used in the literal identifier syntax of C# (suffixed with one of
'D', 'd', 'F', 'f', 'M', 'm', 'L', 'l', 'U', 'u', 'UL', 'ul', 'LU', or 'lu').</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.Currency"/></term>
<term>All elements. The <paramref name="s"/> parameter cannot represent a hexadecimal
number or a number in exponential notation.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.Float"/></term>
<term>The <i>ws</i> element at the beginning or end of <paramref name="s"/>, sign at
the beginning of <paramref name="s"/>, and the decimal point (.) symbol. The <paramref name="s"/>
parameter can also use exponential notation.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.Number"/></term>
<term>The <i>ws</i>, <i>sign</i>, thousands separator (,), and decimal point (.) elements.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.Any"/></term>
<term>All styles, except <paramref name="s"/> cannot represent a hexadecimal number.</term>
</item>
</list>
<para/>
The <see cref="T:J2N.Globalization.NumberStyle"/> enum can be converted to the .NET <see cref="T:System.Globalization.NumberStyles"/> enum by using the
<see cref="M:J2N.Globalization.NumberStyleExtensions.ToNumberStyles(J2N.Globalization.NumberStyle)"/> extension method.
Similarly, <see cref="T:System.Globalization.NumberStyles"/> enum can be converted to the J2N <see cref="T:J2N.Globalization.NumberStyle"/> enum by using
the <see cref="M:J2N.Globalization.NumberStyleExtensions.ToNumberStyle(System.Globalization.NumberStyles)"/> extension method.
<para/>
If the <see cref="F:J2N.Globalization.NumberStyle.AllowHexSpecifier"/> flag is used, <paramref name="s"/> must be a hexadecimal value with or without a <c>0x</c> prefix.
For example, "F3" and "0xF3" both parse successfully. The only other flags that can be present in <paramref name="style"/> are
<see cref="F:J2N.Globalization.NumberStyle.AllowLeadingWhite"/>, <see cref="F:J2N.Globalization.NumberStyle.AllowTrailingWhite"/> and <see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/>.
(The <see cref="T:J2N.Globalization.NumberStyle"/> enumeration has a composite number style, <see cref="F:J2N.Globalization.NumberStyle.HexNumber"/>, that includes both white space
flags.)
The <see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/> only allows 'L', 'l', 'U', 'u', 'UL', 'ul', 'LU', or 'lu' for hexadecimal numbers.
<para/>
The <paramref name="provider"/> parameter is an <see cref="T:System.IFormatProvider"/> implementation, such as a <see cref="T:System.Globalization.CultureInfo"/> object,
a <see cref="T:System.Globalization.NumberFormatInfo"/> object or a <see cref="T:J2N.Text.StringFormatter"/> object, whose <see cref="M:System.IFormatProvider.GetFormat(System.Type)"/>
method returns a <see cref="T:System.Globalization.NumberFormatInfo"/> object. The <see cref="T:System.Globalization.NumberFormatInfo"/> object provides culture-specific information about
the format of <paramref name="s"/>. If <paramref name="provider"/> is <c>null</c>, the <see cref="T:System.Globalization.NumberFormatInfo"/> object for the current
culture is used.
</remarks>
<seealso cref="M:J2N.Numerics.Int64.Parse(System.ReadOnlySpan{System.Char},J2N.Globalization.NumberStyle,System.IFormatProvider)"/>
<seealso cref="M:J2N.Numerics.Int64.TryParse(System.ReadOnlySpan{System.Char},System.Int64@)"/>
<seealso cref="M:J2N.Numerics.Number.ToString"/>
<seealso cref="T:J2N.Globalization.NumberStyle"/>
</member>
<member name="M:J2N.Numerics.Int64.ToBinaryString">
<summary>
Converts the current instance into its binary string representation. The
returned string is a concatenation of '0' and '1' characters.
</summary>
<returns>The binary string representation of the current instance.</returns>
</member>
<member name="M:J2N.Numerics.Int64.ToHexString">
<summary>
Converts the current instance into its hexadecimal string
representation (in lowercase). The returned string is a
concatenation of characters from '0' to '9' and 'a' to 'f'.
</summary>
<returns>The hexadecimal string representation of the current instance.</returns>
</member>
<member name="M:J2N.Numerics.Int64.ToOctalString">
<summary>
Converts the current instance into its octal string representation. The
returned string is a concatenation of characters from '0' to '7'.
</summary>
<returns>The octal string representation of the current instance.</returns>
</member>
<member name="M:J2N.Numerics.Int64.ToString">
<summary>
Converts the value of the current <see cref="T:J2N.Numerics.Int64"/> object to its equivalent string representation.
</summary>
<returns>The string representation of the value of this object, which consists of a sequence of digits
that range from 0 to 9 with no leading zeroes.</returns>
<remarks>
The <see cref="M:J2N.Numerics.Int64.ToString"/> method formats the current instance in the default ("J", or Java)
format of the current culture. If you want to specify a different format, precision, or culture, use the
other overloads of the <see cref="M:J2N.Numerics.Int64.ToString(System.String,System.IFormatProvider)"/> method, as follows:
<list type="table">
<listheader>
<term>To use format</term>
<term>For culture</term>
<term>Use the overload</term>
</listheader>
<item>
<term>Default ("J") format</term>
<term>A specific culture</term>
<term><see cref="M:J2N.Numerics.Int64.ToString(System.Int64,System.IFormatProvider)"/> or <see cref="M:J2N.Numerics.Int64.ToString(System.IFormatProvider)"/></term>
</item>
<item>
<term>A specific format or precision</term>
<term>Default (current) culture</term>
<term><see cref="M:J2N.Numerics.Int64.ToString(System.Int64,System.String)"/> or <see cref="M:J2N.Numerics.Int64.ToString(System.String)"/></term>
</item>
<item>
<term>A specific format or precision</term>
<term>A specific culture</term>
<term><see cref="M:J2N.Numerics.Int64.ToString(System.Int64,System.String,System.IFormatProvider)"/> or <see cref="M:J2N.Numerics.Int64.ToString(System.String,System.IFormatProvider)"/></term>
</item>
</list>
<para/>
.NET provides extensive formatting support, which is described in greater detail in the following formatting topics:
<list type="bullet">
<item><description>For more information about numeric format specifiers, see
<a href="https://docs.microsoft.com/en-us/dotnet/standard/base-types/standard-numeric-format-strings">Standard Numeric Format Strings</a>
and <a href="https://docs.microsoft.com/en-us/dotnet/standard/base-types/custom-numeric-format-strings">Custom Numeric Format Strings</a>.
</description></item>
<item><description>For more information about formatting, see
<a href="https://docs.microsoft.com/en-us/dotnet/standard/base-types/formatting-types">Formatting Types</a>.</description></item>
</list>
</remarks>
<seealso cref="M:J2N.Numerics.Int64.Parse(System.String,System.IFormatProvider)"/>
</member>
<member name="M:J2N.Numerics.Int64.ToString(System.String)">
<summary>
Converts the value of the current <see cref="T:J2N.Numerics.Int64"/> object to its equivalent string representation
using the specified format.
</summary>
<param name="format">A numeric format string.</param>
<returns>The string representation of the current <see cref="T:J2N.Numerics.Int64"/> object, formatted as specified by
the <paramref name="format"/> parameter.</returns>
<exception cref="T:System.FormatException">
<paramref name="format"/> includes an unsupported specifier. Supported format specifiers are listed in the Remarks section.
</exception>
<remarks>
The <see cref="M:J2N.Numerics.Int64.ToString(System.String)"/> method formats the current instance in
a specified format by using the conventions of the current culture. If you want to specify a different format or culture,
use the other overloads of the <see cref="M:J2N.Numerics.Int64.ToString(System.String,System.IFormatProvider)"/> method, as follows:
<list type="table">
<listheader>
<term>To use format</term>
<term>For culture</term>
<term>Use the overload</term>
</listheader>
<item>
<term>Default ("J") format</term>
<term>Default (current) culture</term>
<term><see cref="M:J2N.Numerics.Int64.ToString(System.Int64)"/> or <see cref="M:J2N.Numerics.Int64.ToString"/></term>
</item>
<item>
<term>Default ("J") format</term>
<term>A specific culture</term>
<term><see cref="M:J2N.Numerics.Int64.ToString(System.Int64,System.IFormatProvider)"/> or <see cref="M:J2N.Numerics.Int64.ToString(System.IFormatProvider)"/></term>
</item>
<item>
<term>A specific format or precision</term>
<term>A specific culture</term>
<term><see cref="M:J2N.Numerics.Int64.ToString(System.Int64,System.String,System.IFormatProvider)"/> or <see cref="M:J2N.Numerics.Int64.ToString(System.String,System.IFormatProvider)"/></term>
</item>
</list>
<para/>
The format parameter can be either a standard or a custom numeric format string. All standard numeric format strings other
than "R" (or "r") are supported, as are all custom numeric format characters. If format is <c>null</c> or an empty string (""),
the return value is formatted with the Java numeric format specifier ("J").
<para/>
The return value of this function is formatted using the <see cref="T:System.Globalization.NumberFormatInfo"/> object for the thread current culture.
For information about the thread current culture, see <see cref="P:System.Threading.Thread.CurrentCulture"/>. To provide formatting information
for cultures other than the current culture, call the <see cref="M:J2N.Numerics.Int64.ToString(System.String,System.IFormatProvider)"/> method.
<para/>
.NET provides extensive formatting support, which is described in greater detail in the following formatting topics:
<list type="bullet">
<item><description>For more information about numeric format specifiers, see
<a href="https://docs.microsoft.com/en-us/dotnet/standard/base-types/standard-numeric-format-strings">Standard Numeric Format Strings</a>
and <a href="https://docs.microsoft.com/en-us/dotnet/standard/base-types/custom-numeric-format-strings">Custom Numeric Format Strings</a>.
</description></item>
<item><description>For more information about formatting, see
<a href="https://docs.microsoft.com/en-us/dotnet/standard/base-types/formatting-types">Formatting Types</a>.</description></item>
</list>
</remarks>
<seealso cref="M:J2N.Numerics.Int64.Parse(System.String,System.IFormatProvider)"/>
</member>
<member name="M:J2N.Numerics.Int64.ToString(System.IFormatProvider)">
<summary>
Converts the numeric value of the current <see cref="T:J2N.Numerics.Int64"/> object to its equivalent string representation using the
specified culture-specific formatting information.
</summary>
<param name="provider">An object that supplies culture-specific formatting information.</param>
<returns>The string representation of the value of this object in the format specified by the <paramref name="provider"/> parameter.</returns>
<remarks>
The <see cref="M:J2N.Numerics.Int64.ToString(System.IFormatProvider)"/> method formats the current instance in
the default ("J") format of a specified culture. If you want to specify a different format or culture, use the
other overloads of the <see cref="M:J2N.Numerics.Int64.ToString(System.String,System.IFormatProvider)"/> method, as follows:
<list type="table">
<listheader>
<term>To use format</term>
<term>For culture</term>
<term>Use the overload</term>
</listheader>
<item>
<term>Default ("J") format</term>
<term>Default (current) culture</term>
<term><see cref="M:J2N.Numerics.Int64.ToString(System.Int64)"/> or <see cref="M:J2N.Numerics.Int64.ToString"/></term>
</item>
<item>
<term>A specific format or precision</term>
<term>Default (current) culture</term>
<term><see cref="M:J2N.Numerics.Int64.ToString(System.Int64,System.String)"/> or <see cref="M:J2N.Numerics.Int64.ToString(System.String)"/></term>
</item>
<item>
<term>A specific format or precision</term>
<term>A specific culture</term>
<term><see cref="M:J2N.Numerics.Int64.ToString(System.Int64,System.String,System.IFormatProvider)"/> or <see cref="M:J2N.Numerics.Int64.ToString(System.String,System.IFormatProvider)"/></term>
</item>
</list>
<para/>
The return value is formatted with the Java numeric format specifier ("J").
<para/>
The <paramref name="provider"/> parameter is an object that implements the <see cref="T:System.IFormatProvider"/> interface. Its <see cref="M:System.IFormatProvider.GetFormat(System.Type)"/>
method returns a <see cref="T:System.Globalization.NumberFormatInfo"/> object that provides culture-specific information about the format of the string that is
returned by this method. The object that implements <see cref="T:System.IFormatProvider"/> can be any of the following:
<list type="bullet">
<item><description>A <see cref="T:System.Globalization.CultureInfo"/> object that represents the culture whose formatting rules are to be used.</description></item>
<item><description>A <see cref="T:System.Globalization.NumberFormatInfo"/> object that contains specific numeric formatting information for this value.</description></item>
<item><description>A custom object that implements <see cref="T:System.IFormatProvider"/>.</description></item>
</list>
<para/>
If provider is <c>null</c> or a <see cref="T:System.Globalization.NumberFormatInfo"/> object cannot be obtained from provider, the return value is formatted
using the <see cref="T:System.Globalization.NumberFormatInfo"/> object for the thread current culture. For information about the thread current culture, see
<see cref="P:System.Threading.Thread.CurrentCulture"/>.
<para/>
.NET provides extensive formatting support, which is described in greater detail in the following formatting topics:
<list type="bullet">
<item><description>For more information about numeric format specifiers, see
<a href="https://docs.microsoft.com/en-us/dotnet/standard/base-types/standard-numeric-format-strings">Standard Numeric Format Strings</a>
and <a href="https://docs.microsoft.com/en-us/dotnet/standard/base-types/custom-numeric-format-strings">Custom Numeric Format Strings</a>.
</description></item>
<item><description>For more information about formatting, see
<a href="https://docs.microsoft.com/en-us/dotnet/standard/base-types/formatting-types">Formatting Types</a>.</description></item>
</list>
</remarks>
<seealso cref="M:J2N.Numerics.Int64.Parse(System.String,System.IFormatProvider)"/>
</member>
<member name="M:J2N.Numerics.Int64.ToString(System.String,System.IFormatProvider)">
<summary>
Converts the value of the current <see cref="T:J2N.Numerics.Int64"/> object to its equivalent string representation using the specified format
and culture-specific formatting information.
</summary>
<param name="format">A standard or custom numeric format string.</param>
<param name="provider">An object that supplies culture-specific formatting information.</param>
<returns>The string representation of the current <see cref="T:J2N.Numerics.Int64"/> object, formatted as specified by the <paramref name="format"/>
and <paramref name="provider"/> parameters.</returns>
<exception cref="T:System.FormatException"><paramref name="format"/> includes an unsupported specifier. Supported format specifiers are listed
in the Remarks section.</exception>
<remarks>
The <see cref="M:J2N.Numerics.Int64.ToString(System.String,System.IFormatProvider)"/> method formats the current instance in
a specified format of a specified culture. If you want to specify a different format or culture, use the
other overloads of the <see cref="M:J2N.Numerics.Int64.ToString(System.String,System.IFormatProvider)"/> method, as follows:
<list type="table">
<listheader>
<term>To use format</term>
<term>For culture</term>
<term>Use the overload</term>
</listheader>
<item>
<term>Default ("J") format</term>
<term>Default (current) culture</term>
<term><see cref="M:J2N.Numerics.Int64.ToString(System.Int64)"/> or <see cref="M:J2N.Numerics.Int64.ToString"/></term>
</item>
<item>
<term>Default ("J") format</term>
<term>A specific culture</term>
<term><see cref="M:J2N.Numerics.Int64.ToString(System.Int64,System.IFormatProvider)"/> or <see cref="M:J2N.Numerics.Int64.ToString(System.IFormatProvider)"/></term>
</item>
<item>
<term>A specific format or precision</term>
<term>Default (current) culture</term>
<term><see cref="M:J2N.Numerics.Int64.ToString(System.Int64,System.String)"/> or <see cref="M:J2N.Numerics.Int64.ToString(System.String)"/></term>
</item>
</list>
<para/>
The <see cref="M:J2N.Numerics.Int64.ToString(System.String,System.IFormatProvider)"/> method formats an <see cref="T:J2N.Numerics.Int64"/> value in a specified format
of a specified culture. To format a number by using the default ("J") format of the current culture, call the
<see cref="M:J2N.Numerics.Int64.ToString"/> method. To format a number by using a specified format of the current culture, call the
<see cref="M:J2N.Numerics.Int64.ToString(System.String)"/> method.
<para/>
The <paramref name="format"/> parameter can be either a standard or a custom numeric format string. All standard
numeric format strings other than "R" (or "r") are supported, as are all custom numeric format characters. If
<paramref name="format"/> is <c>null</c> or an empty string (""), the return value of this method is formatted
with the Java numeric format specifier ("J").
<para/>
The <paramref name="provider"/> parameter is an object that implements the <see cref="T:System.IFormatProvider"/> interface. Its <see cref="M:System.IFormatProvider.GetFormat(System.Type)"/>
method returns a <see cref="T:System.Globalization.NumberFormatInfo"/> object that provides culture-specific information about the format of the string that is
returned by this method. The object that implements <see cref="T:System.IFormatProvider"/> can be any of the following:
<list type="bullet">
<item><description>A <see cref="T:System.Globalization.CultureInfo"/> object that represents the culture whose formatting rules are to be used.</description></item>
<item><description>A <see cref="T:System.Globalization.NumberFormatInfo"/> object that contains specific numeric formatting information for this value.</description></item>
<item><description>A custom object that implements <see cref="T:System.IFormatProvider"/>.</description></item>
</list>
<para/>
If provider is <c>null</c> or a <see cref="T:System.Globalization.NumberFormatInfo"/> object cannot be obtained from provider, the return value is formatted
using the <see cref="T:System.Globalization.NumberFormatInfo"/> object for the thread current culture. For information about the thread current culture, see
<see cref="P:System.Threading.Thread.CurrentCulture"/>.
<para/>
.NET provides extensive formatting support, which is described in greater detail in the following formatting topics:
<list type="bullet">
<item><description>For more information about numeric format specifiers, see
<a href="https://docs.microsoft.com/en-us/dotnet/standard/base-types/standard-numeric-format-strings">Standard Numeric Format Strings</a>
and <a href="https://docs.microsoft.com/en-us/dotnet/standard/base-types/custom-numeric-format-strings">Custom Numeric Format Strings</a>.
</description></item>
<item><description>For more information about formatting, see
<a href="https://docs.microsoft.com/en-us/dotnet/standard/base-types/formatting-types">Formatting Types</a>.</description></item>
</list>
</remarks>
<seealso cref="M:J2N.Numerics.Int64.Parse(System.String,System.IFormatProvider)"/>
</member>
<member name="M:J2N.Numerics.Int64.ToString(System.Int64)">
<summary>
Converts the specified <paramref name="value"/> to its equivalent string representation.
</summary>
<param name="value">The <see cref="T:System.Int64"/> to convert.</param>
<returns>The string representation of the <paramref name="value"/> parameter, which consists of a sequence of digits
that range from 0 to 9 with no leading zeroes.</returns>
<remarks>
The <see cref="M:J2N.Numerics.Int64.ToString"/> method formats the current instance in the default ("J", or Java)
format of the current culture. If you want to specify a different format, precision, or culture, use the
other overloads of the <see cref="M:J2N.Numerics.Int64.ToString(System.Int64,System.String,System.IFormatProvider)"/> method, as follows:
<list type="table">
<listheader>
<term>To use format</term>
<term>For culture</term>
<term>Use the overload</term>
</listheader>
<item>
<term>Default ("J") format</term>
<term>A specific culture</term>
<term><see cref="M:J2N.Numerics.Int64.ToString(System.Int64,System.IFormatProvider)"/> or <see cref="M:J2N.Numerics.Int64.ToString(System.IFormatProvider)"/></term>
</item>
<item>
<term>A specific format or precision</term>
<term>Default (current) culture</term>
<term><see cref="M:J2N.Numerics.Int64.ToString(System.Int64,System.String)"/> or <see cref="M:J2N.Numerics.Int64.ToString(System.String)"/></term>
</item>
<item>
<term>A specific format or precision</term>
<term>A specific culture</term>
<term><see cref="M:J2N.Numerics.Int64.ToString(System.Int64,System.String,System.IFormatProvider)"/> or <see cref="M:J2N.Numerics.Int64.ToString(System.String,System.IFormatProvider)"/></term>
</item>
</list>
<para/>
.NET provides extensive formatting support, which is described in greater detail in the following formatting topics:
<list type="bullet">
<item><description>For more information about numeric format specifiers, see
<a href="https://docs.microsoft.com/en-us/dotnet/standard/base-types/standard-numeric-format-strings">Standard Numeric Format Strings</a>
and <a href="https://docs.microsoft.com/en-us/dotnet/standard/base-types/custom-numeric-format-strings">Custom Numeric Format Strings</a>.
</description></item>
<item><description>For more information about formatting, see
<a href="https://docs.microsoft.com/en-us/dotnet/standard/base-types/formatting-types">Formatting Types</a>.</description></item>
</list>
</remarks>
<seealso cref="M:J2N.Numerics.Int64.Parse(System.String,System.IFormatProvider)"/>
</member>
<member name="M:J2N.Numerics.Int64.ToString(System.Int64,System.String)">
<summary>
Converts the specified <paramref name="value"/> to its equivalent string representation
using the specified format.
</summary>
<param name="value">The <see cref="T:System.Int64"/> to convert.</param>
<param name="format">A numeric format string.</param>
<returns>The string representation of the <paramref name="value"/> parameter, formatted as specified by
the <paramref name="format"/> parameter.</returns>
<exception cref="T:System.FormatException">
<paramref name="format"/> includes an unsupported specifier. Supported format specifiers are listed in the Remarks section.
</exception>
<remarks>
The <see cref="M:J2N.Numerics.Int64.ToString(System.Int64,System.String)"/> method formats the current instance in
a specified format by using the conventions of the current culture. If you want to specify a different format or culture,
use the other overloads of the <see cref="M:J2N.Numerics.Int64.ToString(System.Int64,System.String,System.IFormatProvider)"/> method, as follows:
<list type="table">
<listheader>
<term>To use format</term>
<term>For culture</term>
<term>Use the overload</term>
</listheader>
<item>
<term>Default ("J") format</term>
<term>Default (current) culture</term>
<term><see cref="M:J2N.Numerics.Int64.ToString(System.Int64)"/> or <see cref="M:J2N.Numerics.Int64.ToString"/></term>
</item>
<item>
<term>Default ("J") format</term>
<term>A specific culture</term>
<term><see cref="M:J2N.Numerics.Int64.ToString(System.Int64,System.IFormatProvider)"/> or <see cref="M:J2N.Numerics.Int64.ToString(System.IFormatProvider)"/></term>
</item>
<item>
<term>A specific format or precision</term>
<term>A specific culture</term>
<term><see cref="M:J2N.Numerics.Int64.ToString(System.Int64,System.String,System.IFormatProvider)"/> or <see cref="M:J2N.Numerics.Int64.ToString(System.String,System.IFormatProvider)"/></term>
</item>
</list>
<para/>
The format parameter can be either a standard or a custom numeric format string. All standard numeric format strings other
than "R" (or "r") are supported, as are all custom numeric format characters. If format is <c>null</c> or an empty string (""),
the return value is formatted with the Java numeric format specifier ("J").
<para/>
The return value of this function is formatted using the <see cref="T:System.Globalization.NumberFormatInfo"/> object for the thread current culture.
For information about the thread current culture, see <see cref="P:System.Threading.Thread.CurrentCulture"/>. To provide formatting information
for cultures other than the current culture, call the <see cref="M:J2N.Numerics.Int64.ToString(System.Int64,System.String,System.IFormatProvider)"/> method.
<para/>
.NET provides extensive formatting support, which is described in greater detail in the following formatting topics:
<list type="bullet">
<item><description>For more information about numeric format specifiers, see
<a href="https://docs.microsoft.com/en-us/dotnet/standard/base-types/standard-numeric-format-strings">Standard Numeric Format Strings</a>
and <a href="https://docs.microsoft.com/en-us/dotnet/standard/base-types/custom-numeric-format-strings">Custom Numeric Format Strings</a>.
</description></item>
<item><description>For more information about formatting, see
<a href="https://docs.microsoft.com/en-us/dotnet/standard/base-types/formatting-types">Formatting Types</a>.</description></item>
</list>
</remarks>
<seealso cref="M:J2N.Numerics.Int64.Parse(System.String,System.IFormatProvider)"/>
</member>
<member name="M:J2N.Numerics.Int64.ToString(System.Int64,System.IFormatProvider)">
<summary>
Converts the specified <paramref name="value"/> to its equivalent string representation using the
specified culture-specific formatting information.
</summary>
<param name="value">The <see cref="T:System.Int64"/> to convert.</param>
<param name="provider">An object that supplies culture-specific formatting information.</param>
<returns>The string representation of the specified <paramref name="value"/> in the format specified
by the <paramref name="provider"/> parameter.</returns>
<remarks>
The <see cref="M:J2N.Numerics.Int64.ToString(System.Int64,System.IFormatProvider)"/> method formats the current instance in
the default ("J") format of a specified culture. If you want to specify a different format or culture, use the
other overloads of the <see cref="M:J2N.Numerics.Int64.ToString(System.Int64,System.String,System.IFormatProvider)"/> method, as follows:
<list type="table">
<listheader>
<term>To use format</term>
<term>For culture</term>
<term>Use the overload</term>
</listheader>
<item>
<term>Default ("J") format</term>
<term>Default (current) culture</term>
<term><see cref="M:J2N.Numerics.Int64.ToString(System.Int64)"/> or <see cref="M:J2N.Numerics.Int64.ToString"/></term>
</item>
<item>
<term>A specific format or precision</term>
<term>Default (current) culture</term>
<term><see cref="M:J2N.Numerics.Int64.ToString(System.Int64,System.String)"/> or <see cref="M:J2N.Numerics.Int64.ToString(System.String)"/></term>
</item>
<item>
<term>A specific format or precision</term>
<term>A specific culture</term>
<term><see cref="M:J2N.Numerics.Int64.ToString(System.Int64,System.String,System.IFormatProvider)"/> or <see cref="M:J2N.Numerics.Int64.ToString(System.String,System.IFormatProvider)"/></term>
</item>
</list>
<para/>
The return value is formatted with the Java numeric format specifier ("J").
<para/>
The <paramref name="provider"/> parameter is an object that implements the <see cref="T:System.IFormatProvider"/> interface. Its <see cref="M:System.IFormatProvider.GetFormat(System.Type)"/>
method returns a <see cref="T:System.Globalization.NumberFormatInfo"/> object that provides culture-specific information about the format of the string that is
returned by this method. The object that implements <see cref="T:System.IFormatProvider"/> can be any of the following:
<list type="bullet">
<item><description>A <see cref="T:System.Globalization.CultureInfo"/> object that represents the culture whose formatting rules are to be used.</description></item>
<item><description>A <see cref="T:System.Globalization.NumberFormatInfo"/> object that contains specific numeric formatting information for this value.</description></item>
<item><description>A custom object that implements <see cref="T:System.IFormatProvider"/>.</description></item>
</list>
<para/>
If provider is <c>null</c> or a <see cref="T:System.Globalization.NumberFormatInfo"/> object cannot be obtained from provider, the return value is formatted
using the <see cref="T:System.Globalization.NumberFormatInfo"/> object for the thread current culture. For information about the thread current culture, see
<see cref="P:System.Threading.Thread.CurrentCulture"/>.
<para/>
.NET provides extensive formatting support, which is described in greater detail in the following formatting topics:
<list type="bullet">
<item><description>For more information about numeric format specifiers, see
<a href="https://docs.microsoft.com/en-us/dotnet/standard/base-types/standard-numeric-format-strings">Standard Numeric Format Strings</a>
and <a href="https://docs.microsoft.com/en-us/dotnet/standard/base-types/custom-numeric-format-strings">Custom Numeric Format Strings</a>.
</description></item>
<item><description>For more information about formatting, see
<a href="https://docs.microsoft.com/en-us/dotnet/standard/base-types/formatting-types">Formatting Types</a>.</description></item>
</list>
</remarks>
<seealso cref="M:J2N.Numerics.Int64.Parse(System.String,System.IFormatProvider)"/>
</member>
<member name="M:J2N.Numerics.Int64.ToString(System.Int64,System.String,System.IFormatProvider)">
<summary>
Converts the specified <paramref name="value"/> to its equivalent string representation using the specified format
and culture-specific formatting information.
</summary>
<param name="value">The <see cref="T:System.Int64"/> to convert.</param>
<param name="format">A standard or custom numeric format string.</param>
<param name="provider">An object that supplies culture-specific formatting information.</param>
<returns>The string representation of the specified <paramref name="value"/> parameter, formatted as specified by the <paramref name="format"/>
and <paramref name="provider"/> parameters.</returns>
<exception cref="T:System.FormatException"><paramref name="format"/> includes an unsupported specifier. Supported format specifiers are listed
in the Remarks section.</exception>
<remarks>
The <see cref="M:J2N.Numerics.Int64.ToString(System.Int64,System.String,System.IFormatProvider)"/> method formats the current instance in
a specified format of a specified culture. If you want to specify a different format or culture, use the
other overloads of the <see cref="M:J2N.Numerics.Int64.ToString(System.Int64,System.String,System.IFormatProvider)"/> method, as follows:
<list type="table">
<listheader>
<term>To use format</term>
<term>For culture</term>
<term>Use the overload</term>
</listheader>
<item>
<term>Default ("J") format</term>
<term>Default (current) culture</term>
<term><see cref="M:J2N.Numerics.Int64.ToString(System.Int64)"/> or <see cref="M:J2N.Numerics.Int64.ToString"/></term>
</item>
<item>
<term>Default ("J") format</term>
<term>A specific culture</term>
<term><see cref="M:J2N.Numerics.Int64.ToString(System.Int64,System.IFormatProvider)"/> or <see cref="M:J2N.Numerics.Int64.ToString(System.IFormatProvider)"/></term>
</item>
<item>
<term>A specific format or precision</term>
<term>Default (current) culture</term>
<term><see cref="M:J2N.Numerics.Int64.ToString(System.Int64,System.String)"/> or <see cref="M:J2N.Numerics.Int64.ToString(System.String)"/></term>
</item>
</list>
<para/>
The <see cref="M:J2N.Numerics.Int64.ToString(System.Int64,System.String,System.IFormatProvider)"/> method formats a <see cref="T:System.Int64"/> value in a specified format
of a specified culture. To format a number by using the default ("J") format of the current culture, call the
<see cref="M:J2N.Numerics.Int64.ToString(System.Int64)"/> method. To format a number by using a specified format of the current culture, call the
<see cref="M:J2N.Numerics.Int64.ToString(System.Int64,System.String)"/> method.
<para/>
The <paramref name="format"/> parameter can be either a standard or a custom numeric format string. All standard
numeric format strings other than "R" (or "r") are supported, as are all custom numeric format characters. If
<paramref name="format"/> is <c>null</c> or an empty string (""), the return value of this method is formatted
with the Java numeric format specifier ("J").
<para/>
The <paramref name="provider"/> parameter is an object that implements the <see cref="T:System.IFormatProvider"/> interface. Its <see cref="M:System.IFormatProvider.GetFormat(System.Type)"/>
method returns a <see cref="T:System.Globalization.NumberFormatInfo"/> object that provides culture-specific information about the format of the string that is
returned by this method. The object that implements <see cref="T:System.IFormatProvider"/> can be any of the following:
<list type="bullet">
<item><description>A <see cref="T:System.Globalization.CultureInfo"/> object that represents the culture whose formatting rules are to be used.</description></item>
<item><description>A <see cref="T:System.Globalization.NumberFormatInfo"/> object that contains specific numeric formatting information for this value.</description></item>
<item><description>A custom object that implements <see cref="T:System.IFormatProvider"/>.</description></item>
</list>
<para/>
If provider is <c>null</c> or a <see cref="T:System.Globalization.NumberFormatInfo"/> object cannot be obtained from provider, the return value is formatted
using the <see cref="T:System.Globalization.NumberFormatInfo"/> object for the thread current culture. For information about the thread current culture, see
<see cref="P:System.Threading.Thread.CurrentCulture"/>.
<para/>
.NET provides extensive formatting support, which is described in greater detail in the following formatting topics:
<list type="bullet">
<item><description>For more information about numeric format specifiers, see
<a href="https://docs.microsoft.com/en-us/dotnet/standard/base-types/standard-numeric-format-strings">Standard Numeric Format Strings</a>
and <a href="https://docs.microsoft.com/en-us/dotnet/standard/base-types/custom-numeric-format-strings">Custom Numeric Format Strings</a>.
</description></item>
<item><description>For more information about formatting, see
<a href="https://docs.microsoft.com/en-us/dotnet/standard/base-types/formatting-types">Formatting Types</a>.</description></item>
</list>
</remarks>
<seealso cref="M:J2N.Numerics.Int64.Parse(System.String,System.IFormatProvider)"/>
</member>
<member name="M:J2N.Numerics.Int64.TryFormat(System.Span{System.Char},System.Int32@,System.ReadOnlySpan{System.Char},System.IFormatProvider)">
<summary>
Tries to format the value of the current long number instance into the provided span of characters.
</summary>
<param name="destination">The span in which to write this instance's value formatted as a span of characters.</param>
<param name="charsWritten">When this method returns, contains the number of characters that were written in
<paramref name="destination"/>.</param>
<param name="format">A span containing the characters that represent a standard or custom format string that
defines the acceptable format for <paramref name="destination"/>.</param>
<param name="provider">An optional object that supplies culture-specific formatting information for
<paramref name="destination"/>.</param>
<returns><c>true</c> if the formatting was successful; otherwise, <c>false</c>.</returns>
</member>
<member name="M:J2N.Numerics.Int64.TryFormat(System.Int64,System.Span{System.Char},System.Int32@,System.ReadOnlySpan{System.Char},System.IFormatProvider)">
<summary>
Tries to format the value of the <paramref name="value"/> into the provided span of characters.
</summary>
<param name="value">The long number to format.</param>
<param name="destination">The span in which to write this instance's value formatted as a span of characters.</param>
<param name="charsWritten">When this method returns, contains the number of characters that were written in
<paramref name="destination"/>.</param>
<param name="format">A span containing the characters that represent a standard or custom format string that
defines the acceptable format for <paramref name="destination"/>.</param>
<param name="provider">An optional object that supplies culture-specific formatting information for
<paramref name="destination"/>.</param>
<returns><c>true</c> if the formatting was successful; otherwise, <c>false</c>.</returns>
</member>
<member name="M:J2N.Numerics.Int64.HighestOneBit(System.Int64)">
<summary>
Returns a <see cref="T:System.Int64"/> value with at most a single one-bit, in the
position of the highest-order ("leftmost") one-bit in the specified
<paramref name="value"/>. Returns zero if the specified <paramref name="value"/> has no
one-bits in its two's complement binary representation, that is, if it
is equal to zero.
</summary>
<param name="value">The <see cref="T:System.Int64"/> to examine.</param>
<returns>A <see cref="T:System.Int64"/> value with a single one-bit, in the position
of the highest-order one-bit in the specified <paramref name="value"/>, or zero if
the specified <paramref name="value"/> is itself equal to zero.</returns>
</member>
<member name="M:J2N.Numerics.Int64.LowestOneBit(System.Int64)">
<summary>
Returns a <see cref="T:System.Int64"/> value with at most a single one-bit, in the
position of the lowest-order ("rightmost") one-bit in the specified
<see cref="T:System.Int64"/> value. Returns zero if the specified value has no
one-bits in its two's complement binary representation, that is, if it
is equal to zero.
</summary>
<param name="value">The <see cref="T:System.Int64"/> to examine.</param>
<returns>A <see cref="T:System.Int64"/> value with a single one-bit, in the position
of the lowest-order one-bit in the specified <paramref name="value"/>, or zero if
the specified <paramref name="value"/> is itself equal to zero.</returns>
</member>
<member name="M:J2N.Numerics.Int64.LeadingZeroCount(System.Int64)">
<summary>
Returns the number of zero bits preceding the highest-order
("leftmost") one-bit in the two's complement binary representation
of the specified <paramref name="value"/>. Returns 64 if the
specified value has no one-bits in its two's complement representation,
in other words if it is equal to zero.
<para/>
Note that this method is closely related to the logarithm base 2.
For all positive <see cref="T:System.Int64"/> values x:
<list type="bullet">
<item><description>floor(log<sub>2</sub>(x)) = <c>63 - Int64.LeadingZeroCount(x)</c></description></item>
<item><description>ceil(log<sub>2</sub>(x)) = <c>64 - Int64.LeadingZeroCount(x - 1)</c></description></item>
</list>
<para/>
Usage Note: This is the same operation as Long.numberOfLeadingZeros() in the JDK.
</summary>
<param name="value">The <see cref="T:System.Int64"/> to examine.</param>
<returns>The number of zero bits preceding the highest-order
("leftmost") one-bit in the two's complement binary representation
of the specified <paramref name="value"/>, or 64 if the value
is equal to zero.</returns>
</member>
<member name="M:J2N.Numerics.Int64.TrailingZeroCount(System.Int64)">
<summary>
Returns the number of zero bits following the lowest-order ("rightmost")
one-bit in the two's complement binary representation of the specified
<paramref name="value"/>. Returns 64 if the specified value has no
one-bits in its two's complement representation, in other words if it is
equal to zero.
<para/>
Usage Note: This is the same operation as Long.numberOfTrailingZeros() in the JDK.
</summary>
<param name="value">The <see cref="T:System.Int64"/> to examine.</param>
<returns>The number of zero bits following the lowest-order ("rightmost")
one-bit in the two's complement binary representation of the
specified <paramref name="value"/>, or 64 if the value is equal
to zero.</returns>
</member>
<member name="M:J2N.Numerics.Int64.PopCount(System.Int64)">
<summary>
Returns the population count (number of set bits) of a <see cref="T:System.Int64"/> mask.
<para/>
Usage Note: This is the same operation as Long.bitCount() in the JDK.
</summary>
<param name="value">The <see cref="T:System.Int64"/> to examine.</param>
<returns>The number of one-bits in the two's complement binary
representation of the specified <paramref name="value"/>.</returns>
</member>
<member name="M:J2N.Numerics.Int64.RotateLeft(System.Int64,System.Int32)">
<summary>
Returns the value obtained by rotating the two's complement binary
representation of the specified <paramref name="value"/> left by the
specified number of bits. (Bits shifted out of the left hand, or
high-order, side reenter on the right, or low-order.)
<para/>
Note that left rotation with a negative distance is equivalent to
right rotation: <c>Int64.RotateLeft(val, -distance) == Int64.RotateRight(val, distance)</c>
Note also that rotation by any multiple of 64 is a
no-op, so all but the last six bits of the rotation distance can be
ignored, even if the distance is negative:
<c>Int64.RotateLeft(val, distance) == Int64.RotateLeft(val, distance &amp; 0x3F)</c>.
</summary>
<param name="value">The <see cref="T:System.Int64"/> value to rotate left.</param>
<param name="distance">The number of bits to rotate.</param>
<returns>The value obtained by rotating the two's complement binary
representation of the specified <paramref name="value"/> left by the
specified number of bits.</returns>
</member>
<member name="M:J2N.Numerics.Int64.RotateRight(System.Int64,System.Int32)">
<summary>
Returns the value obtained by rotating the two's complement binary
representation of the specified <see cref="T:System.Int64"/> value right by the
specified number of bits. (Bits shifted out of the right hand, or
low-order, side reenter on the left, or high-order.)
<para/>
Note that right rotation with a negative distance is equivalent to
left rotation: <c>Int64.RotateRight(val, -distance) == Int64.RotateLeft(val, distance)</c>.
Note also that rotation by any multiple of 64 is a
no-op, so all but the last six bits of the rotation distance can be
ignored, even if the distance is negative:
<c>Int64.RotateRight(val, distance) == Int64.RotateRight(val, distance &amp; 0x3F)</c>.
</summary>
<param name="value">The <see cref="T:System.Int64"/> value to rotate right.</param>
<param name="distance">The number of bits to rotate.</param>
<returns>The value obtained by rotating the two's complement binary
representation of the specified <paramref name="value"/> right by the
specified number of bits.</returns>
</member>
<member name="M:J2N.Numerics.Int64.ReverseBytes(System.Int64)">
<summary>
Returns the value obtained by reversing the order of the bytes in the
two's complement representation of the specified <paramref name="value"/>.
</summary>
<param name="value">The <see cref="T:System.Int64"/> value for which to reverse the byte order.</param>
<returns>The value obtained by reversing the bytes in the specified
<paramref name="value"/>.</returns>
</member>
<member name="M:J2N.Numerics.Int64.Reverse(System.Int64)">
<summary>
Returns the value obtained by reversing the order of the bits in the
two's complement binary representation of the specified <paramref name="value"/>.
</summary>
<param name="value">The <see cref="T:System.Int64"/> value for which to reverse the bit order.</param>
<returns>The value obtained by reversing order of the bits in the
specified <paramref name="value"/>.</returns>
</member>
<member name="M:J2N.Numerics.Int64.Signum(System.Int64)">
<summary>
Returns the signum function of the specified <see cref="T:System.Int64"/> value. (The
return value is <c>-1</c> if the specified value is negative; <c>0</c> if the
specified value is zero; and <c>1</c> if the specified value is positive.)
</summary>
<param name="value">The value whose signum has to be computed.</param>
<returns>The signum function of the specified <see cref="T:System.Int64"/> value.</returns>
</member>
<member name="M:J2N.Numerics.Int64.GetInstance(System.String,System.IFormatProvider)">
<summary>
Converts the string representation of a number in a specified culture-specific format to its
64-bit signed integer equivalent.
</summary>
<param name="s">A string containing a number to convert.</param>
<param name="provider">An <see cref="T:System.IFormatProvider"/> that supplies culture-specific formatting information about <paramref name="s"/>.</param>
<returns>A 64-bit signed integer equivalent to the number specified in <paramref name="s"/>.</returns>
<exception cref="T:System.ArgumentNullException"><paramref name="s"/> is <c>null</c>.</exception>
<exception cref="T:System.FormatException"><paramref name="s"/> is not in a valid <see cref="F:J2N.Globalization.NumberStyle.Integer"/> format.</exception>
<exception cref="T:System.OverflowException">
<paramref name="s"/> represents a number less than <see cref="F:System.Int64.MinValue"/> or greater than <see cref="F:System.Int64.MaxValue"/>.
</exception>
<remarks>
The <paramref name="s"/> parameter contains a number of the form:
<para/>
[ws][sign]digits[ws]
<para/>
Elements in square brackets ([ and ]) are optional. The following table describes each element.
<para/>
<list type="table">
<listheader>
<term>Element</term>
<term>Description</term>
</listheader>
<item>
<term><i>ws</i></term>
<term>A series of white-space characters.</term>
</item>
<item>
<term><i>$</i></term>
<term>A culture-specific currency symbol. Its position in the string is defined by the <see cref="P:System.Globalization.NumberFormatInfo.CurrencyNegativePattern"/>
and <see cref="P:System.Globalization.NumberFormatInfo.CurrencyPositivePattern"/> properties of the <see cref="T:System.Globalization.NumberFormatInfo"/> object returned by the
<see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> method of the <paramref name="provider"/> parameter. The current culture's currency symbol can
appear in <paramref name="s"/> if style includes the <see cref="F:J2N.Globalization.NumberStyle.AllowCurrencySymbol"/> flag.</term>
</item>
<item>
<term><i>sign</i></term>
<term>A negative sign symbol or a positive sign symbol as defined by the <see cref="T:System.Globalization.NumberFormatInfo"/> object returned from the
<see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> <paramref name="provider"/>.</term>
</item>
<item>
<term><i>digits</i></term>
<term>A series of digits ranging from 0 to 9.</term>
</item>
</list>
<para/>
The <paramref name="s"/> parameter is interpreted using the <see cref="F:J2N.Globalization.NumberStyle.Integer"/> style. In addition to decimal digits, only
leading and trailing spaces together with a leading sign are allowed in <paramref name="s"/>. To explicitly define the style elements
together with the culture-specific formatting information that can be present in <paramref name="s"/>, use the
<see cref="M:J2N.Numerics.Int64.GetInstance(System.String,J2N.Globalization.NumberStyle,System.IFormatProvider)"/> method.
<para/>
The <paramref name="provider"/> parameter is an <see cref="T:System.IFormatProvider"/> implementation, such as a <see cref="T:System.Globalization.CultureInfo"/> object,
a <see cref="T:System.Globalization.NumberFormatInfo"/> object or a <see cref="T:J2N.Text.StringFormatter"/> object, whose <see cref="M:System.IFormatProvider.GetFormat(System.Type)"/>
method returns a <see cref="T:System.Globalization.NumberFormatInfo"/> object. The <see cref="T:System.Globalization.NumberFormatInfo"/> object provides culture-specific information about
the format of <paramref name="s"/>. When the <see cref="M:J2N.Numerics.Int64.GetInstance(System.String,System.IFormatProvider)"/> method is invoked, it calls the provider parameter's
<see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> method and passes it a <see cref="T:System.Type"/> object that represents the <see cref="T:System.Globalization.NumberFormatInfo"/> type.
The <see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> method then returns the <see cref="T:System.Globalization.NumberFormatInfo"/> object that provides information about the
format of the <paramref name="s"/> parameter. There are three ways to use the <paramref name="provider"/> parameter to supply custom formatting
information to the parse operation:
<list type="bullet">
<item><description>You can pass a <see cref="T:System.Globalization.CultureInfo"/> object that represents the culture that supplies formatting information. Its
<see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> method returns the <see cref="T:System.Globalization.NumberFormatInfo"/> object that provides numeric formatting
information for that culture.</description></item>
<item><description>You can pass the actual <see cref="T:System.Globalization.NumberFormatInfo"/> object that provides numeric formatting information. (Its
implementation of <see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> just returns itself.)</description></item>
<item><description>You can pass a custom object that implements <see cref="T:System.IFormatProvider"/>. Its <see cref="M:System.IFormatProvider.GetFormat(System.Type)"/>
method instantiates and returns the <see cref="T:System.Globalization.NumberFormatInfo"/> object that provides formatting information.</description></item>
</list>
If <paramref name="provider"/> is <c>null</c> or a <see cref="T:System.Globalization.NumberFormatInfo"/> object cannot be obtained, the <see cref="T:System.Globalization.NumberFormatInfo"/>
object for the current culture is used.
</remarks>
<seealso cref="M:J2N.Numerics.Int64.TryParse(System.String,J2N.Globalization.NumberStyle,System.IFormatProvider,System.Int64@)"/>
<seealso cref="M:J2N.Numerics.Int64.Parse(System.String,System.IFormatProvider)"/>
</member>
<member name="M:J2N.Numerics.Int64.GetInstance(System.String,J2N.Globalization.NumberStyle,System.IFormatProvider)">
<summary>
Converts the string representation of a number in a specified style and culture-specific format to its
<see cref="T:J2N.Numerics.Int64"/> equivalent.
</summary>
<param name="s">A string containing a number to convert.</param>
<param name="style">A bitwise combination of enumeration values that indicates the style elements that can be
present in <paramref name="s"/>. A typical value to specify is <see cref="F:J2N.Globalization.NumberStyle.Integer"/>.</param>
<param name="provider">An <see cref="T:System.IFormatProvider"/> that supplies culture-specific formatting information about <paramref name="s"/>.</param>
<returns>An immutable <see cref="T:J2N.Numerics.Int64"/> instance equivalent to the number specified in <paramref name="s"/>.</returns>
<exception cref="T:System.ArgumentNullException"><paramref name="s"/> is <c>null</c>.</exception>
<exception cref="T:System.ArgumentException">
<paramref name="style"/> is not a <see cref="T:J2N.Globalization.NumberStyle"/> value.
<para/>
-or-
<para/>
<paramref name="style"/> is not a combination of <see cref="F:J2N.Globalization.NumberStyle.AllowHexSpecifier"/> and <see cref="F:J2N.Globalization.NumberStyle.HexNumber"/> values.
</exception>
<exception cref="T:System.FormatException"><paramref name="s"/> is not in a format compliant with <paramref name="style"/>.</exception>
<exception cref="T:System.OverflowException">
<paramref name="s"/> represents a number less than <see cref="F:System.Int64.MinValue"/> or greater than <see cref="F:System.Int64.MaxValue"/>.
<para/>
-or-
<para/>
<paramref name="s"/> includes non-zero fractional digits.
</exception>
<remarks>
The <paramref name="style"/> parameter defines the style elements (such as white space or the positive sign) that are allowed in the
<paramref name="s"/> parameter for the parse operation to succeed. It must be a combination of bit flags from the <see cref="T:J2N.Globalization.NumberStyle"/>
enumeration. Depending on the value of <paramref name="style"/>, the <paramref name="s"/> parameter may include the following elements:
<para/>
[ws][$][sign][digits,]digits[.fractional-digits][e[sign]exponential-digits][ws]
<para/>
Or, if the <paramref name="style"/> parameter includes <see cref="F:J2N.Globalization.NumberStyle.AllowHexSpecifier"/>:
<para/>
[ws]hexdigits[ws]
<para/>
Elements framed in square brackets ([ and ]) are optional. The following table describes each element.
<para/>
<list type="table">
<listheader>
<term>Element</term>
<term>Description</term>
</listheader>
<item>
<term><i>ws</i></term>
<term>A series of white-space characters. White space can appear at the beginning of <paramref name="s"/> if style includes the
<see cref="F:J2N.Globalization.NumberStyle.AllowLeadingWhite"/> flag, and it can appear at the end of <paramref name="s"/> if style includes the
<see cref="F:J2N.Globalization.NumberStyle.AllowTrailingWhite"/> flag.</term>
</item>
<item>
<term><i>$</i></term>
<term>A culture-specific currency symbol. Its position in the string is defined by the <see cref="P:System.Globalization.NumberFormatInfo.CurrencyNegativePattern"/>
and <see cref="P:System.Globalization.NumberFormatInfo.CurrencyPositivePattern"/> properties of the <see cref="T:System.Globalization.NumberFormatInfo"/> object returned by the
<see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> method of the <paramref name="provider"/> parameter. The current culture's currency symbol can
appear in <paramref name="s"/> if style includes the <see cref="F:J2N.Globalization.NumberStyle.AllowCurrencySymbol"/> flag.</term>
</item>
<item>
<term><i>sign</i></term>
<term>A negative sign symbol (-) or a positive sign symbol (+). The sign can appear at the beginning of <paramref name="s"/> if
<paramref name="style"/> includes the <see cref="F:J2N.Globalization.NumberStyle.AllowLeadingSign"/> flag, and it can appear at the end of <paramref name="s"/>
if <paramref name="style"/> includes the <see cref="F:J2N.Globalization.NumberStyle.AllowTrailingSign"/> flag. Parentheses can be used in <paramref name="s"/>
to indicate a negative value if <paramref name="style"/> includes the <see cref="F:J2N.Globalization.NumberStyle.AllowParentheses"/> flag.</term>
</item>
<item>
<term><i>digits</i></term>
<term>A series of digits ranging from 0 to 9.</term>
</item>
<item>
<term><i>.</i></term>
<term>A culture-specific decimal point symbol. The decimal point symbol of the culture specified by <paramref name="provider"/>
can appear in <paramref name="s"/> if <paramref name="style"/> includes the <see cref="F:J2N.Globalization.NumberStyle.AllowDecimalPoint"/> flag.</term>
</item>
<item>
<term><i>fractional-digits</i>
</term>
<term>A series of digits ranging from 0 to 9 that specify the fractional part of the number. Fractional digits can appear in
<paramref name="s"/> if <paramref name="style"/> includes the <see cref="F:J2N.Globalization.NumberStyle.AllowDecimalPoint"/> flag.</term>
</item>
<item>
<term><i>e</i></term>
<term>The 'e' or 'E' character, which indicates that the value is represented in exponential notation. The <paramref name="s"/>
parameter can represent a number in exponential notation if <paramref name="style"/> includes the <see cref="F:J2N.Globalization.NumberStyle.AllowExponent"/> flag.</term>
</item>
<item>
<term><i>exponential-digits</i></term>
<term>A sequence of decimal digits from 0 through 9 that specify an exponent.</term>
</item>
<item>
<term><i>hexdigits</i></term>
<term>A sequence of hexadecimal digits from 0 through f, or 0 through F. Hexadecimal digits can appear in <paramref name="s"/>
if <paramref name="style"/> includes the <see cref="F:J2N.Globalization.NumberStyle.AllowHexSpecifier"/> flag.</term>
</item>
</list>
<para/>
NOTE: Any terminating NUL (U+0000) characters in <paramref name="s"/> are ignored by the parsing operation, regardless of
the value of the <paramref name="style"/> argument.
<para/>
A string with decimal digits only (which corresponds to the <see cref="F:J2N.Globalization.NumberStyle.None"/> flag) always parses successfully.
Most of the remaining <see cref="T:J2N.Globalization.NumberStyle"/> members control elements that may be but are not required to be present in
this input string. The following table indicates how individual <see cref="T:J2N.Globalization.NumberStyle"/> members affect the elements that may
be present in <paramref name="s"/>.
<list type="table">
<listheader>
<term>Non-composite NumberStyle values</term>
<term>Elements permitted in <paramref name="s"/> in addition to digits</term>
</listheader>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.None"/></term>
<term>Decimal digits only.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowDecimalPoint"/></term>
<term>The decimal point (.) and <i>fractional-digits</i> elements. However, <i>fractional-digits</i> must consist
of only one or more 0 digits or the method returns <c>false</c>.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowExponent"/></term>
<term>The <paramref name="s"/> parameter can also use exponential notation. If <paramref name="s"/> represents a
number in exponential notation, it must represent an integer within the range of the <see cref="T:System.Int64"/> data type
without a non-zero, fractional component.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowLeadingWhite"/></term>
<term>The <i>ws</i> element at the beginning of <paramref name="s"/>.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowTrailingWhite"/></term>
<term>The <i>ws</i> element at the end of <paramref name="s"/>.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowLeadingSign"/></term>
<term>A sign can appear before <i>digits</i>.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowTrailingSign"/></term>
<term>A sign can appear after <i>digits</i>.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowParentheses"/></term>
<term>The <i>sign</i> element in the form of parentheses enclosing the numeric value.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowThousands"/></term>
<term>The thousands separator (,) element.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowCurrencySymbol"/></term>
<term>The <i>$</i> element.</term>
</item>
</list>
<para/>
The <see cref="T:J2N.Globalization.NumberStyle"/> enum can be converted to the .NET <see cref="T:System.Globalization.NumberStyles"/> enum by using the
<see cref="M:J2N.Globalization.NumberStyleExtensions.ToNumberStyles(J2N.Globalization.NumberStyle)"/> extension method.
Similarly, <see cref="T:System.Globalization.NumberStyles"/> enum can be converted to the J2N <see cref="T:J2N.Globalization.NumberStyle"/> enum by using
the <see cref="M:J2N.Globalization.NumberStyleExtensions.ToNumberStyle(System.Globalization.NumberStyles)"/> extension method.
<para/>
If the <see cref="F:J2N.Globalization.NumberStyle.AllowHexSpecifier"/> flag is used, <paramref name="s"/> must be a hexadecimal value without a prefix.
For example, "F3" parses successfully, but "0xF3" does not. The only other flags that can be present in <paramref name="style"/> are
<see cref="F:J2N.Globalization.NumberStyle.AllowLeadingWhite"/> and <see cref="F:J2N.Globalization.NumberStyle.AllowTrailingWhite"/>. (The <see cref="T:J2N.Globalization.NumberStyle"/> enumeration
has a composite number style, <see cref="F:J2N.Globalization.NumberStyle.HexNumber"/>, that includes both white space flags.)
<para/>
The <paramref name="provider"/> parameter is an <see cref="T:System.IFormatProvider"/> implementation, such as a <see cref="T:System.Globalization.CultureInfo"/> object,
a <see cref="T:System.Globalization.NumberFormatInfo"/> object or a <see cref="T:J2N.Text.StringFormatter"/> object, whose <see cref="M:System.IFormatProvider.GetFormat(System.Type)"/>
method returns a <see cref="T:System.Globalization.NumberFormatInfo"/> object. The <see cref="T:System.Globalization.NumberFormatInfo"/> object provides culture-specific information about
the format of <paramref name="s"/>. When the <see cref="M:J2N.Numerics.Int64.GetInstance(System.String,System.IFormatProvider)"/> method is invoked, it calls the provider parameter's
<see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> method and passes it a <see cref="T:System.Type"/> object that represents the <see cref="T:System.Globalization.NumberFormatInfo"/> type.
The <see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> method then returns the <see cref="T:System.Globalization.NumberFormatInfo"/> object that provides information about the
format of the <paramref name="s"/> parameter. There are three ways to use the <paramref name="provider"/> parameter to supply custom formatting
information to the parse operation:
<list type="bullet">
<item><description>You can pass a <see cref="T:System.Globalization.CultureInfo"/> object that represents the culture that supplies formatting information. Its
<see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> method returns the <see cref="T:System.Globalization.NumberFormatInfo"/> object that provides numeric formatting
information for that culture.</description></item>
<item><description>You can pass the actual <see cref="T:System.Globalization.NumberFormatInfo"/> object that provides numeric formatting information. (Its
implementation of <see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> just returns itself.)</description></item>
<item><description>You can pass a custom object that implements <see cref="T:System.IFormatProvider"/>. Its <see cref="M:System.IFormatProvider.GetFormat(System.Type)"/>
method instantiates and returns the <see cref="T:System.Globalization.NumberFormatInfo"/> object that provides formatting information.</description></item>
</list>
If <paramref name="provider"/> is <c>null</c> or a <see cref="T:System.Globalization.NumberFormatInfo"/> object cannot be obtained, the <see cref="T:System.Globalization.NumberFormatInfo"/>
object for the current culture is used.
</remarks>
<seealso cref="M:J2N.Numerics.Int64.TryParse(System.String,J2N.Globalization.NumberStyle,System.IFormatProvider,System.Int64@)"/>
<seealso cref="M:J2N.Numerics.Int64.Parse(System.String,J2N.Globalization.NumberStyle,System.IFormatProvider)"/>
</member>
<member name="M:J2N.Numerics.Int64.GetInstance(System.String,System.Int32)">
<summary>
Parses the <see cref="T:System.String"/> argument as a signed <see cref="T:J2N.Numerics.Int64"/> instance in the specified <paramref name="radix"/>.
<para/>
Usage Note: This method is similar to the <see cref="M:System.Convert.ToInt64(System.String,System.Int32)"/> method. It differs in that
it allows the use of the ASCII character \u002d ('-') or \u002B ('+') in any <paramref name="radix"/>.
<para/>
Supports any BMP (Basic Multilingual Plane) or SMP (Supplementary Mulitlingual Plane) digit as defined by Unicode 10.0.
<para/>
This is the same operation as Long.valueOf(string) in the JDK when specifying a <paramref name="radix"/> of 10, or
Long.valueOf(string, int) for any valid <paramref name="radix"/>.
</summary>
<param name="s">The <see cref="T:System.String"/> containing the <see cref="T:System.Int64"/> representation to be parsed.</param>
<param name="radix">The radix (or base) to use when parsing <paramref name="s"/>. The value must be in the range
<see cref="F:J2N.Character.MinRadix"/> - <see cref="F:J2N.Character.MaxRadix"/> inclusive.</param>
<returns>An immutable <see cref="T:J2N.Numerics.Int64"/> instance that is equivalent to the number in <paramref name="s"/>, or 0 (zero) if
<paramref name="s"/> is <c>null</c>.</returns>
<remarks>
If <paramref name="radix"/> is 16, you can prefix the number specified by the <paramref name="s"/> parameter with "0x" or "0X".
<para/>
To specify a negative value for base (radix) 10 numeric representations, use the ASCII character \u002d ('-').
<para/>
For any other <paramref name="radix"/>, negative values may either be specified with ASCII character \u002d ('-')
(as in Java) or by specifying the two's complement representation (as in .NET), but not both.
In the latter case, the highest-order binary bit of a long integer (bit 63) is interpreted as the sign bit.
As a result, it is possible to write code in which a non-base 10 number that is out of the range of the <see cref="T:System.Int64"/>
data type is converted to an <see cref="T:System.Int64"/> value without the method throwing an exception.
</remarks>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="radix"/> is less than <see cref="F:J2N.Character.MinRadix"/> or greater than <see cref="F:J2N.Character.MaxRadix"/>.
</exception>
<exception cref="T:System.FormatException">
<paramref name="s"/> contains a character that is not a valid digit in the base specified by <paramref name="radix"/>.
The exception message indicates that there are no digits to convert if the first character in <paramref name="s"/> is invalid;
otherwise, the message indicates that <paramref name="s"/> contains invalid trailing characters.
<para/>
-or-
<para/>
<paramref name="s"/> contains only a the ASCII character \u002d ('-') or \u002B ('+') sign and/or hexadecimal
prefix 0X or 0x with no digits.
</exception>
<exception cref="T:System.OverflowException">
<paramref name="s"/> represents a number that is less than <see cref="F:System.Int64.MinValue"/> or greater than <see cref="F:System.Int64.MaxValue"/>.
</exception>
<seealso cref="M:J2N.Numerics.Int64.TryParse(System.String,System.Int32,System.Int64@)"/>
<seealso cref="M:J2N.Numerics.Int64.Parse(System.String,System.Int32)"/>
</member>
<member name="M:J2N.Numerics.Int64.GetInstance(System.Int64)">
<summary>
Returns an immutable <see cref="T:J2N.Numerics.Int64"/> instance for the specified <paramref name="value"/>.
<para/>
Usage Note: This is the same operation as Long.valueOf() in the JDK.
</summary>
<param name="value">The <see cref="T:System.Int64"/> value the returned instance represents.</param>
<returns>An immutable <see cref="T:J2N.Numerics.Int64"/> instance containing the <paramref name="value"/>,
which may be retrieved from a cache.</returns>
</member>
<member name="F:J2N.Numerics.Int64.ValueOfCache.Cache">
<summary>
A cache of instances used by <see cref="M:J2N.Numerics.Int64.GetInstance(System.Int64)"/> and auto-boxing.
</summary>
</member>
<member name="M:J2N.Numerics.Int64.op_Implicit(J2N.Numerics.Int64)~System.Int64">
<inheritdoc/>
</member>
<member name="M:J2N.Numerics.Int64.op_Implicit(System.Int64)~J2N.Numerics.Int64">
<inheritdoc/>
</member>
<member name="M:J2N.Numerics.Int64.ToByte">
<inheritdoc/>
</member>
<member name="M:J2N.Numerics.Int64.ToDouble">
<inheritdoc/>
</member>
<member name="M:J2N.Numerics.Int64.ToInt16">
<inheritdoc/>
</member>
<member name="M:J2N.Numerics.Int64.ToInt32">
<inheritdoc/>
</member>
<member name="M:J2N.Numerics.Int64.ToInt64">
<inheritdoc/>
</member>
<member name="M:J2N.Numerics.Int64.ToSByte">
<inheritdoc/>
</member>
<member name="M:J2N.Numerics.Int64.ToSingle">
<inheritdoc/>
</member>
<member name="M:J2N.Numerics.Int64.GetTypeCode">
<summary>
Returns the <see cref="T:System.TypeCode"/> for value type <see cref="T:System.Int64"/>.
</summary>
<returns>The enumerated constant, <see cref="F:System.TypeCode.Int64"/>.</returns>
</member>
<member name="T:J2N.Numerics.Number">
<summary>
The abstract superclass of the classes which represent numeric base types
(that is <see cref="T:System.Byte"/>, <see cref="T:System.SByte"/>, <see cref="T:System.Int16"/>, <see cref="T:System.Int32"/>,
<see cref="T:System.Int64"/>, <see cref="T:System.Single"/>, and <see cref="T:System.Double"/>).
</summary>
</member>
<member name="M:J2N.Numerics.Number.ToByte">
<summary>
Returns this object's value as a <see cref="T:System.Byte"/>. Might involve rounding and/or
truncating the value, so it fits into a <see cref="T:System.Byte"/>.
<para/>
Usage Note: This is similar to byteValue() in the JDK, however for an exact match
use <see cref="M:J2N.Numerics.Number.ToSByte"/>.
</summary>
<returns>the primitive <see cref="T:System.Byte"/> value of this object.</returns>
</member>
<member name="M:J2N.Numerics.Number.ToSByte">
<summary>
Returns this object's value as a <see cref="T:System.SByte"/>. Might involve rounding and/or
truncating the value, so it fits into a <see cref="T:System.SByte"/>.
<para/>
Usage Note: This is the equivalent operation of byteValue() in the JDK.
</summary>
<returns>the primitive <see cref="T:System.SByte"/> value of this object.</returns>
</member>
<member name="M:J2N.Numerics.Number.ToDouble">
<summary>
Returns this object's value as a <see cref="T:System.Double"/>. Might involve rounding.
<para/>
Usage Note: This is the equivalent operation of doubleValue() in the JDK.
</summary>
<returns>the primitive <see cref="T:System.Double"/> value of this object.</returns>
</member>
<member name="M:J2N.Numerics.Number.ToSingle">
<summary>
Returns this object's value as a <see cref="T:System.Single"/>. Might involve rounding.
<para/>
Usage Note: This is the equivalent operation of floatValue() in the JDK.
</summary>
<returns>the primitive <see cref="T:System.Single"/> value of this object.</returns>
</member>
<member name="M:J2N.Numerics.Number.ToInt32">
<summary>
Returns this object's value as an <see cref="T:System.Int32"/>. Might involve rounding and/or
truncating the value, so it fits into an <see cref="T:System.Int32"/>.
<para/>
Usage Note: This is the equivalent operation of intValue() in the JDK.
</summary>
<returns>the primitive <see cref="T:System.Int32"/> value of this object.</returns>
</member>
<member name="M:J2N.Numerics.Number.ToInt64">
<summary>
Returns this object's value as a <see cref="T:System.Int64"/>. Might involve rounding and/or
truncating the value, so it fits into a <see cref="T:System.Int64"/>.
<para/>
Usage Note: This is the equivalent operation of longValue() in the JDK.
</summary>
<returns>the primitive <see cref="T:System.Int64"/> value of this object.</returns>
</member>
<member name="M:J2N.Numerics.Number.ToInt16">
<summary>
Returns this object's value as a <see cref="T:System.Int16"/>. Might involve rounding and/or
truncating the value, so it fits into a <see cref="T:System.Int16"/>.
<para/>
Usage Note: This is the equivalent operation of shortValue() in the JDK.
</summary>
<returns>the primitive <see cref="T:System.Int16"/> value of this object.</returns>
</member>
<member name="M:J2N.Numerics.Number.ToString">
<summary>
Converts the value of the current object to its equivalent string representation.
</summary>
<returns>The string representation of the value of this object.</returns>
<remarks>
The <see cref="M:J2N.Numerics.Number.ToString"/> method formats the current instance in the default ("J", or Java)
format of the current culture. If you want to specify a different format, precision, or culture, use the
other overloads of the <see cref="M:J2N.Numerics.Number.ToString(System.String,System.IFormatProvider)"/> method, as follows:
<list type="table">
<listheader>
<term>To use format</term>
<term>For culture</term>
<term>Use the overload</term>
</listheader>
<item>
<term>Default ("J") format</term>
<term>A specific culture</term>
<term><see cref="M:J2N.Numerics.Number.ToString(System.IFormatProvider)"/></term>
</item>
<item>
<term>A specific format or precision</term>
<term>Default (current) culture</term>
<term><see cref="M:J2N.Numerics.Number.ToString(System.String)"/></term>
</item>
<item>
<term>A specific format or precision</term>
<term>A specific culture</term>
<term><see cref="M:J2N.Numerics.Number.ToString(System.String,System.IFormatProvider)"/></term>
</item>
</list>
<para/>
.NET provides extensive formatting support, which is described in greater detail in the following formatting topics:
<list type="bullet">
<item><description>For more information about numeric format specifiers, see
<a href="https://docs.microsoft.com/en-us/dotnet/standard/base-types/standard-numeric-format-strings">Standard Numeric Format Strings</a>
and <a href="https://docs.microsoft.com/en-us/dotnet/standard/base-types/custom-numeric-format-strings">Custom Numeric Format Strings</a>.
</description></item>
<item><description>For more information about formatting, see
<a href="https://docs.microsoft.com/en-us/dotnet/standard/base-types/formatting-types">Formatting Types</a>.</description></item>
</list>
</remarks>
</member>
<member name="M:J2N.Numerics.Number.ToString(System.String)">
<summary>
Converts the value of the current object to its equivalent string representation
using the specified format.
</summary>
<param name="format">A numeric format string.</param>
<returns>The string representation of the current object, formatted as specified by
the <paramref name="format"/> parameter.</returns>
<exception cref="T:System.FormatException">
<paramref name="format"/> includes an unsupported specifier. Supported format specifiers are defined by the derived type.
</exception>
<remarks>
The <see cref="M:J2N.Numerics.Number.ToString(System.String)"/> method formats the current instance in
a specified format by using the conventions of the current culture. If you want to specify a different format or culture,
use the other overloads of the <see cref="M:J2N.Numerics.Number.ToString(System.String,System.IFormatProvider)"/> method, as follows:
<list type="table">
<listheader>
<term>To use format</term>
<term>For culture</term>
<term>Use the overload</term>
</listheader>
<item>
<term>Default ("J") format</term>
<term>Default (current) culture</term>
<term><see cref="M:J2N.Numerics.Number.ToString"/></term>
</item>
<item>
<term>Default ("J") format</term>
<term>A specific culture</term>
<term><see cref="M:J2N.Numerics.Number.ToString(System.IFormatProvider)"/></term>
</item>
<item>
<term>A specific format or precision</term>
<term>A specific culture</term>
<term><see cref="M:J2N.Numerics.Number.ToString(System.String,System.IFormatProvider)"/></term>
</item>
</list>
<para/>
The format parameter can be either a standard or a custom numeric format string. If format is <c>null</c> or an empty string (""),
the return value is formatted with the Java numeric format specifier ("J").
<para/>
The return value of this function is formatted using the <see cref="T:System.Globalization.NumberFormatInfo"/> object for the thread current culture.
For information about the thread current culture, see <see cref="P:System.Threading.Thread.CurrentCulture"/>. To provide formatting information
for cultures other than the current culture, call the <see cref="M:J2N.Numerics.Number.ToString(System.String,System.IFormatProvider)"/> method.
<para/>
.NET provides extensive formatting support, which is described in greater detail in the following formatting topics:
<list type="bullet">
<item><description>For more information about numeric format specifiers, see
<a href="https://docs.microsoft.com/en-us/dotnet/standard/base-types/standard-numeric-format-strings">Standard Numeric Format Strings</a>
and <a href="https://docs.microsoft.com/en-us/dotnet/standard/base-types/custom-numeric-format-strings">Custom Numeric Format Strings</a>.
</description></item>
<item><description>For more information about formatting, see
<a href="https://docs.microsoft.com/en-us/dotnet/standard/base-types/formatting-types">Formatting Types</a>.</description></item>
</list>
</remarks>
</member>
<member name="M:J2N.Numerics.Number.ToString(System.IFormatProvider)">
<summary>
Converts the numeric value of the current object to its equivalent string representation using the
specified culture-specific formatting information.
</summary>
<param name="provider">An object that supplies culture-specific formatting information.</param>
<returns>The string representation of the value of this object in the format specified by the <paramref name="provider"/> parameter.</returns>
<remarks>
The <see cref="M:J2N.Numerics.Number.ToString(System.IFormatProvider)"/> method formats the current instance in
the default ("J") format of a specified culture. If you want to specify a different format or culture, use the
other overloads of the <see cref="M:J2N.Numerics.Number.ToString(System.String,System.IFormatProvider)"/> method, as follows:
<list type="table">
<listheader>
<term>To use format</term>
<term>For culture</term>
<term>Use the overload</term>
</listheader>
<item>
<term>Default ("J") format</term>
<term>Default (current) culture</term>
<term><see cref="M:J2N.Numerics.Number.ToString"/></term>
</item>
<item>
<term>A specific format or precision</term>
<term>Default (current) culture</term>
<term><see cref="M:J2N.Numerics.Number.ToString(System.String)"/></term>
</item>
<item>
<term>A specific format or precision</term>
<term>A specific culture</term>
<term><see cref="M:J2N.Numerics.Number.ToString(System.String,System.IFormatProvider)"/></term>
</item>
</list>
<para/>
The return value is formatted with the Java numeric format specifier ("J").
<para/>
The <paramref name="provider"/> parameter is an object that implements the <see cref="T:System.IFormatProvider"/> interface. Its <see cref="M:System.IFormatProvider.GetFormat(System.Type)"/>
method returns a <see cref="T:System.Globalization.NumberFormatInfo"/> object that provides culture-specific information about the format of the string that is
returned by this method. The object that implements <see cref="T:System.IFormatProvider"/> can be any of the following:
<list type="bullet">
<item><description>A <see cref="T:System.Globalization.CultureInfo"/> object that represents the culture whose formatting rules are to be used.</description></item>
<item><description>A <see cref="T:System.Globalization.NumberFormatInfo"/> object that contains specific numeric formatting information for this value.</description></item>
<item><description>A custom object that implements <see cref="T:System.IFormatProvider"/>.</description></item>
</list>
<para/>
If provider is <c>null</c> or a <see cref="T:System.Globalization.NumberFormatInfo"/> object cannot be obtained from provider, the return value is formatted
using the <see cref="T:System.Globalization.NumberFormatInfo"/> object for the thread current culture. For information about the thread current culture, see
<see cref="P:System.Threading.Thread.CurrentCulture"/>.
<para/>
.NET provides extensive formatting support, which is described in greater detail in the following formatting topics:
<list type="bullet">
<item><description>For more information about numeric format specifiers, see
<a href="https://docs.microsoft.com/en-us/dotnet/standard/base-types/standard-numeric-format-strings">Standard Numeric Format Strings</a>
and <a href="https://docs.microsoft.com/en-us/dotnet/standard/base-types/custom-numeric-format-strings">Custom Numeric Format Strings</a>.
</description></item>
<item><description>For more information about formatting, see
<a href="https://docs.microsoft.com/en-us/dotnet/standard/base-types/formatting-types">Formatting Types</a>.</description></item>
</list>
</remarks>
</member>
<member name="M:J2N.Numerics.Number.ToString(System.String,System.IFormatProvider)">
<summary>
Converts the value of the current object to its equivalent string representation using the specified format
and culture-specific formatting information.
</summary>
<param name="format">A standard or custom numeric format string.</param>
<param name="provider">An object that supplies culture-specific formatting information.</param>
<returns>The string representation of the current object, formatted as specified by the <paramref name="format"/>
and <paramref name="provider"/> parameters.</returns>
<exception cref="T:System.FormatException"><paramref name="format"/> includes an unsupported specifier.
Supported format specifiers are defined by the derived type.</exception>
<remarks>
The <see cref="M:J2N.Numerics.Number.ToString(System.String,System.IFormatProvider)"/> method formats the current instance in
a specified format of a specified culture. If you want to specify a different format or culture, use the
other overloads of the <see cref="M:J2N.Numerics.Number.ToString(System.String,System.IFormatProvider)"/> method, as follows:
<list type="table">
<listheader>
<term>To use format</term>
<term>For culture</term>
<term>Use the overload</term>
</listheader>
<item>
<term>Default ("J") format</term>
<term>Default (current) culture</term>
<term><see cref="M:J2N.Numerics.Number.ToString"/></term>
</item>
<item>
<term>Default ("J") format</term>
<term>A specific culture</term>
<term><see cref="M:J2N.Numerics.Number.ToString(System.IFormatProvider)"/></term>
</item>
<item>
<term>A specific format or precision</term>
<term>Default (current) culture</term>
<term><see cref="M:J2N.Numerics.Number.ToString(System.String)"/></term>
</item>
</list>
<para/>
The <see cref="M:J2N.Numerics.Number.ToString(System.String,System.IFormatProvider)"/> method formats a numeric value in a specified format
of a specified culture. To format a number by using the default ("J") format of the current culture, call the
<see cref="M:J2N.Numerics.Number.ToString"/> method. To format a number by using a specified format of the current culture, call the
<see cref="M:J2N.Numerics.Number.ToString(System.String)"/> method.
<para/>
The <paramref name="format"/> parameter can be either a standard or a custom numeric format string. If
<paramref name="format"/> is <c>null</c> or an empty string (""), the return value of this method is formatted
with the Java numeric format specifier ("J").
<para/>
The <paramref name="provider"/> parameter is an object that implements the <see cref="T:System.IFormatProvider"/> interface. Its <see cref="M:System.IFormatProvider.GetFormat(System.Type)"/>
method returns a <see cref="T:System.Globalization.NumberFormatInfo"/> object that provides culture-specific information about the format of the string that is
returned by this method. The object that implements <see cref="T:System.IFormatProvider"/> can be any of the following:
<list type="bullet">
<item><description>A <see cref="T:System.Globalization.CultureInfo"/> object that represents the culture whose formatting rules are to be used.</description></item>
<item><description>A <see cref="T:System.Globalization.NumberFormatInfo"/> object that contains specific numeric formatting information for this value.</description></item>
<item><description>A custom object that implements <see cref="T:System.IFormatProvider"/>.</description></item>
</list>
<para/>
If provider is <c>null</c> or a <see cref="T:System.Globalization.NumberFormatInfo"/> object cannot be obtained from provider, the return value is formatted
using the <see cref="T:System.Globalization.NumberFormatInfo"/> object for the thread current culture. For information about the thread current culture, see
<see cref="P:System.Threading.Thread.CurrentCulture"/>.
<para/>
.NET provides extensive formatting support, which is described in greater detail in the following formatting topics:
<list type="bullet">
<item><description>For more information about numeric format specifiers, see
<a href="https://docs.microsoft.com/en-us/dotnet/standard/base-types/standard-numeric-format-strings">Standard Numeric Format Strings</a>
and <a href="https://docs.microsoft.com/en-us/dotnet/standard/base-types/custom-numeric-format-strings">Custom Numeric Format Strings</a>.
</description></item>
<item><description>For more information about formatting, see
<a href="https://docs.microsoft.com/en-us/dotnet/standard/base-types/formatting-types">Formatting Types</a>.</description></item>
</list>
</remarks>
</member>
<member name="M:J2N.Numerics.Number.TryFormat(System.Span{System.Char},System.Int32@,System.ReadOnlySpan{System.Char},System.IFormatProvider)">
<summary>
Tries to format the value of the current number instance into the provided span of characters.
<para/>
<b>Note to Inheritors:</b> This method implementation returns the value of <see cref="M:J2N.Numerics.Number.ToString(System.String,System.IFormatProvider)"/>
which will cause a heap allocation. It is highly recommended to override this method to provide an optimal implementation.
</summary>
<param name="destination">The span in which to write this instance's value formatted as a span of characters.</param>
<param name="charsWritten">When this method returns, contains the number of characters that were written in
<paramref name="destination"/>.</param>
<param name="format">A span containing the characters that represent a standard or custom format string that
defines the acceptable format for <paramref name="destination"/>.</param>
<param name="provider">An optional object that supplies culture-specific formatting information for
<paramref name="destination"/>.</param>
<returns><c>true</c> if the formatting was successful; otherwise, <c>false</c>.</returns>
</member>
<member name="M:J2N.Numerics.Number.ConvertFormat(System.String)">
<summary>
Converts "J" format to "G" and removes the precision specifier.
This is just so we can pass through the value to the built-in
.NET ToString() methods without them complaining. Someday this
format might morph into something else, in which case we will
remove this method. This is only intended for integral types
that do not actually support the "J" format.
</summary>
</member>
<member name="T:J2N.Numerics.ParseNumbers">
<summary>Methods for parsing numbers and strings.</summary>
</member>
<member name="T:J2N.Numerics.RoundingMode">
<summary>
J2N TODO: Docs
</summary>
</member>
<member name="F:J2N.Numerics.RoundingMode.Conservative">
<summary>
J2N TODO: Docs
</summary>
</member>
<member name="F:J2N.Numerics.RoundingMode.RoundEven">
<summary>
J2N TODO: Docs
</summary>
</member>
<member name="T:J2N.Numerics.RoundingModeExtensions">
<summary>
J2N TODO: Docs
</summary>
</member>
<member name="M:J2N.Numerics.RoundingModeExtensions.AcceptUpperBound(J2N.Numerics.RoundingMode,System.Boolean)">
<summary>
J2N TODO: Docs
</summary>
<param name="roundingMode"></param>
<param name="even"></param>
<returns></returns>
</member>
<member name="M:J2N.Numerics.RoundingModeExtensions.AcceptLowerBound(J2N.Numerics.RoundingMode,System.Boolean)">
<summary>
J2N TODO: Docs
</summary>
<param name="roundingMode"></param>
<param name="even"></param>
<returns></returns>
</member>
<member name="T:J2N.Numerics.RyuDouble">
<summary>
An implementation of Ryu for <see cref="T:System.Double"/>.
</summary>
</member>
<member name="M:J2N.Numerics.RyuDouble.MulPow5divPow2(System.Int64,System.Int32,System.Int32)">
<summary>
Compute the high digits of m * 5^p / 10^q = m * 5^(p - q) / 2^q = m * 5^i / 2^j, with q chosen
such that m * 5^i / 2^j has sufficiently many decimal digits to represent the original floating
point number.
</summary>
</member>
<member name="M:J2N.Numerics.RyuDouble.MulPow5InvDivPow2(System.Int64,System.Int32,System.Int32)">
<summary>
Compute the high digits of m / 5^i / 2^j such that the result is accurate to at least 9
decimal digits. i and j are already chosen appropriately.
</summary>
</member>
<member name="T:J2N.Numerics.RyuSingle">
<summary>
An implementation of Ryu for <see cref="T:System.Single"/>.
</summary>
</member>
<member name="M:J2N.Numerics.RyuSingle.Pow5Factor(System.Int32)">
<summary>
Returns the exponent of the largest power of 5 that divides the given value, i.e., returns
i such that value = 5^i * x, where x is an integer.
</summary>
</member>
<member name="M:J2N.Numerics.RyuSingle.MulPow5divPow2(System.Int32,System.Int32,System.Int32)">
<summary>
Compute the exact result of [m * 5^(-e_2) / 10^q] = [m * 5^(-e_2 - q) / 2^q]
= [m * [5^(p - q)/2^k] / 2^(q - k)] = [m * POW5[i] / 2^j].
</summary>
</member>
<member name="M:J2N.Numerics.RyuSingle.MulPow5InvDivPow2(System.Int32,System.Int32,System.Int32)">
<summary>
Compute the exact result of [m * 2^p / 10^q] = [m * 2^(p - q) / 5 ^ q]
= [m * [2^k / 5^q] / 2^-(p - q - k)] = [m * POW5_INV[q] / 2^j].
</summary>
</member>
<member name="T:J2N.Numerics.SByte">
<summary>
An immutable reference type that wraps the primitive <see cref="T:System.SByte"/> type.
<para/>
In addition, this class provides methods for converting a <see cref="T:System.SByte"/> to a <see cref="T:System.String"/> and
a <see cref="T:System.String"/> to a <see cref="T:System.SByte"/> that are compatible with Java.
<para/>
Instances of this class can be produced implicitly by setting a <see cref="T:System.SByte"/> value to a variable declared
as <see cref="T:J2N.Numerics.SByte"/>
<code>
sbyte value = 4;
SByte instance = value;
</code>
Or explicitly by calling one of the <see cref="M:J2N.Numerics.SByte.GetInstance(System.SByte)"/>, <see cref="M:J2N.Numerics.SByte.Decode(System.String)"/>,
or <see cref="M:J2N.Numerics.SByte.TryDecode(System.String,J2N.Numerics.SByte@)"/> methods.
<para/>
The <see cref="T:System.SByte"/> value of a <see cref="T:J2N.Numerics.SByte"/> can also be retrieved in several ways. For implicit
conversion, simply assign a <see cref="T:System.SByte"/> variable an instance of <see cref="T:J2N.Numerics.SByte"/>.
<code>
SByte instance = SByte.GetInstance((sbyte)4);
sbyte value = instance;
</code>
To explicitly get the value, call <see cref="M:J2N.Numerics.SByte.ToSByte"/> or use the <see cref="T:System.Convert"/> class.
<code>
sbyte converted1 = instance.ToSByte();
sbyte converted2 = Convert.ToSByte(instance, NumberFormatInfo.InvariantInfo);
</code>
<para/>
In most cases, the number types in .NET will suffice. The main reason for creating an object to wrap numeric types is to
provide a way to make strongly-typed instances that can co-exist in collections and arrays with reference types.
For example, when creating a table object that has columns with a mix of number and string data types.
When porting code from Java, there are sometimes cases where the design didn't factor in the use of value types,
so these classes can be used rather than reworking the design.
For more information about numbers classes, see
<a href="https://docs.oracle.com/javase/tutorial/java/data/numberclasses.html">The Numbers Classes</a>.
</summary>
<seealso cref="T:J2N.Numerics.Number"/>
<seealso cref="T:System.IConvertible"/>
<seealso cref="T:System.IFormattable"/>
<seealso cref="T:System.IComparable"/>
</member>
<member name="F:J2N.Numerics.SByte.value">
<summary>
The value which the receiver represents.
</summary>
</member>
<member name="F:J2N.Numerics.SByte.Size">
<summary>
Constant for the number of bits needed to represent a <see cref="T:System.SByte"/> in
two's complement form.
</summary>
</member>
<member name="F:J2N.Numerics.SByte.Cache">
<summary>
A cache of instances used by <see cref="M:J2N.Numerics.SByte.GetInstance(System.SByte)"/> and auto-boxing.
</summary>
</member>
<member name="M:J2N.Numerics.SByte.#ctor(System.SByte)">
<summary>
Initializes a new instance of the <see cref="T:J2N.Numerics.SByte"/> class.
</summary>
<param name="value">The primitive <see cref="T:System.SByte"/> value to store in the new instance.</param>
</member>
<member name="M:J2N.Numerics.SByte.CompareTo(J2N.Numerics.SByte)">
<summary>
Compares this instance to a specified <see cref="T:J2N.Numerics.SByte"/> and returns an indication of their relative values.
</summary>
<param name="value">An <see cref="T:J2N.Numerics.SByte"/> to compare, or <c>null</c>.</param>
<returns>
A signed integer that indicates the relative order of this instance and <paramref name="value"/>.
<list type="table">
<listheader>
<term>Return Value</term>
<term>Description </term>
</listheader>
<item>
<term>Less than zero</term>
<term>This instance is less than <paramref name="value"/>.</term>
</item>
<item>
<term>Zero</term>
<term>This instance is equal to <paramref name="value"/>.</term>
</item>
<item>
<term>Greater than zero</term>
<term>This instance is greater than <paramref name="value"/>, or <paramref name="value"/> is <c>null</c>.</term>
</item>
</list>
</returns>
<remarks>
This method implements the <see cref="T:System.IComparable`1"/> interface and performs slightly better than the <see cref="M:J2N.Numerics.SByte.CompareTo(System.Object)"/>
method because it does not have to convert the <paramref name="value"/> parameter to an object.
</remarks>
</member>
<member name="M:J2N.Numerics.SByte.CompareTo(System.Object)">
<summary>
Compares this instance to a specified object and returns an indication of their relative values.
</summary>
<param name="value">An object to compare, or <c>null</c>.</param>
<returns>
A signed integer that indicates the relative order of this instance and <paramref name="value"/>.
<list type="table">
<listheader>
<term>Return Value</term>
<term>Description </term>
</listheader>
<item>
<term>Less than zero</term>
<term>This instance is less than <paramref name="value"/>.</term>
</item>
<item>
<term>Zero</term>
<term>This instance is equal to <paramref name="value"/>.</term>
</item>
<item>
<term>Greater than zero</term>
<term>This instance is greater than <paramref name="value"/>, or <paramref name="value"/> is <c>null</c>.</term>
</item>
</list>
</returns>
<exception cref="T:System.ArgumentException"><paramref name="value"/> is not a <see cref="T:J2N.Numerics.SByte"/>.</exception>
<remarks>
<paramref name="value"/> must be <c>null</c> or an instance of <see cref="T:J2N.Numerics.SByte"/>; otherwise, an exception is thrown.
<para/>
Any instance of <see cref="T:J2N.Numerics.SByte"/>, regardless of its value, is considered greater than <c>null</c>.
<para/>
This method is implemented to support the <see cref="T:System.IComparable"/> interface.
</remarks>
</member>
<member name="M:J2N.Numerics.SByte.Decode(System.String)">
<summary>
Decodes a <see cref="T:System.String"/> into an <see cref="T:J2N.Numerics.SByte"/>. Accepts decimal, hexadecimal, and octal numbers given by the following grammar:
<list type="bullet">
<item>
<term><i>DecodableString:</i></term>
<list type="bullet">
<item><term><i>Sign</i> (<sub>opt</sub>) <i>DecimalNumeral</i></term></item>
<item><term><i>Sign</i> (<sub>opt</sub>) <c>0x</c> <i>HexDigits</i></term></item>
<item><term><i>Sign</i> (<sub>opt</sub>) <c>0X</c> <i>HexDigits</i></term></item>
<item><term><i>Sign</i> (<sub>opt</sub>) <c>#</c> <i>HexDigits</i></term></item>
<item><term><i>Sign</i> (<sub>opt</sub>) <c>0</c> <i>OctalDigits</i></term></item>
</list>
</item>
<item>
<term><i>Sign:</i></term>
<list type="bullet">
<item><term><c>-</c></term></item>
<item><term><c>+</c></term></item>
</list>
</item>
</list>
<para/>
<i>DecimalNumeral</i>, <i>HexDigits</i>, and <i>OctalDigits</i> are as defined in section
<a href="https://docs.oracle.com/javase/specs/jls/se16/html/jls-3.html#jls-3.10.1">3.10.1</a> of
The Java Language Specification, except that underscores are not accepted between digits.
<para/>
The sequence of characters following an optional sign and/or radix specifier (<c>"0x"</c>, <c>"0X"</c>, <c>"#"</c>, or leading zero) is
parsed as by the <see cref="M:J2N.Numerics.SByte.Parse(System.String,System.Int32)"/> method with the indicated radix (10, 16, or 8).
The sequence of characters must represent a positive value or an <see cref="T:System.OverflowException"/> is thrown.
The result is negated if the first character of the specified <see cref="T:System.String"/> is
the ASCII character \u002d ('-'). No whitespace characters are permitted in the <see cref="T:System.String"/>.
</summary>
<param name="s">A <see cref="T:System.String"/> that contains the number to convert.</param>
<returns>An 8-bit signed integer that is equivalent to the number in <paramref name="s"/>.</returns>
<exception cref="T:System.ArgumentNullException"><paramref name="s"/> is <c>null</c>.</exception>
<exception cref="T:System.FormatException">
<paramref name="s"/> contains a character that is not a valid digit in the base specified by its format.
The exception message indicates that there are no digits to convert if the first character in <paramref name="s"/> is invalid;
otherwise, the message indicates that <paramref name="s"/> contains invalid trailing characters.
<para/>
-or-
<para/>
<paramref name="s"/> contains only a the ASCII character \u002d ('-') or \u002B ('+') sign and/or hexadecimal
prefix (0X, 0x, or #) or octal prefix (0) with no digits.
</exception>
<exception cref="T:System.OverflowException">
<paramref name="s"/> represents a number that is less than <see cref="F:System.SByte.MinValue"/> or greater than <see cref="F:System.SByte.MaxValue"/>.
<para/>
-or-
<para/>
<paramref name="s"/> represents a two's complement negative number. Only positive values are allowed without a negative sign.
</exception>
</member>
<member name="M:J2N.Numerics.SByte.TryDecode(System.String,J2N.Numerics.SByte@)">
<summary>
Decodes a <see cref="T:System.String"/> into an <see cref="T:J2N.Numerics.SByte"/>. Accepts decimal, hexadecimal, and octal numbers given by the following grammar:
<list type="bullet">
<item>
<term><i>DecodableString:</i></term>
<list type="bullet">
<item><term><i>Sign</i> (<sub>opt</sub>) <i>DecimalNumeral</i></term></item>
<item><term><i>Sign</i> (<sub>opt</sub>) <c>0x</c> <i>HexDigits</i></term></item>
<item><term><i>Sign</i> (<sub>opt</sub>) <c>0X</c> <i>HexDigits</i></term></item>
<item><term><i>Sign</i> (<sub>opt</sub>) <c>#</c> <i>HexDigits</i></term></item>
<item><term><i>Sign</i> (<sub>opt</sub>) <c>0</c> <i>OctalDigits</i></term></item>
</list>
</item>
<item>
<term><i>Sign:</i></term>
<list type="bullet">
<item><term><c>-</c></term></item>
<item><term><c>+</c></term></item>
</list>
</item>
</list>
<para/>
<i>DecimalNumeral</i>, <i>HexDigits</i>, and <i>OctalDigits</i> are as defined in section
<a href="https://docs.oracle.com/javase/specs/jls/se16/html/jls-3.html#jls-3.10.1">3.10.1</a> of
The Java Language Specification, except that underscores are not accepted between digits.
<para/>
The sequence of characters following an optional sign and/or radix specifier (<c>"0x"</c>, <c>"0X"</c>, <c>"#"</c>, or leading zero) is
parsed as by the <see cref="M:J2N.Numerics.SByte.Parse(System.String,System.Int32)"/> method with the indicated radix (10, 16, or 8).
The sequence of characters must represent a positive value.
The result is negated if the first character of the specified <see cref="T:System.String"/> is
the ASCII character \u002d ('-'). No whitespace characters are permitted in the <see cref="T:System.String"/>.
</summary>
<param name="s">A <see cref="T:System.String"/> that contains the number to convert.</param>
<param name="result">When this method returns, contains the 8-bit signed integer value equivalent to the number contained in <paramref name="s"/>,
if the conversion succeeded, or zero if the conversion failed. The conversion fails if the <paramref name="s"/> parameter is <c>null</c> or
<see cref="F:System.String.Empty"/>, is not of the correct format, or represents a number less than <see cref="F:System.SByte.MinValue"/> or greater than
<see cref="F:System.SByte.MaxValue"/>. This parameter is passed uninitialized; any value originally supplied in result will be overwritten.</param>
<returns><c>true</c> if <paramref name="s"/> was converted successfully; otherwise, <c>false</c>.</returns>
</member>
<member name="M:J2N.Numerics.SByte.Equals(J2N.Numerics.SByte)">
<summary>
Returns a value indicating whether this instance is equal to a specified <see cref="T:J2N.Numerics.SByte"/> value.
</summary>
<param name="obj">A <see cref="T:J2N.Numerics.SByte"/> value to compare to this instance.</param>
<returns><c>true</c> if <paramref name="obj"/> has the same value as this instance; otherwise, <c>false</c>.</returns>
<remarks>This method implements the <see cref="T:System.IEquatable`1"/> interface, and performs slightly better than
<see cref="M:J2N.Numerics.SByte.Equals(System.Object)"/> because it does not have to convert the <paramref name="obj"/> parameter to an object.</remarks>
</member>
<member name="M:J2N.Numerics.SByte.Equals(System.Object)">
<summary>
Returns a value indicating whether this instance is equal to a specified object.
</summary>
<param name="obj">An object to compare with this instance.</param>
<returns><c>true</c> if <paramref name="obj"/> is an instance of <see cref="T:J2N.Numerics.SByte"/> and equals the value of
this instance; otherwise, <c>false</c>.</returns>
</member>
<member name="M:J2N.Numerics.SByte.GetHashCode">
<summary>
Returns the hash code for this instance.
</summary>
<returns>A 32-bit signed integer hash code.</returns>
</member>
<member name="M:J2N.Numerics.SByte.Parse(System.ReadOnlySpan{System.Char},System.Int32,System.Int32,System.Int32)">
<summary>
Parses the <see cref="T:System.ReadOnlySpan`1"/> argument as a <see cref="T:System.SByte"/> in the specified <paramref name="radix"/>, beginning at the
specified <paramref name="startIndex"/> with the specified number of characters in <paramref name="length"/>.
<para/>
IMPORTANT: This method has .NET semantics. That is, the <paramref name="length"/> parameter
is a length rather than an exclusive end index as would be the case in Java. To translate from
Java, use <c>endIndex - beginIndex</c> to obtain the <paramref name="length"/>.
<para/>
Usage Note: This method is similar to the <see cref="M:System.Convert.ToSByte(System.String,System.Int32)"/> method, however it allows conversion
of the value without allocating a substring. It also differs in that it allows the use of the ASCII character \u002d ('-')
or \u002B ('+') in any <paramref name="radix"/> and allows any <paramref name="radix"/> value from
<see cref="F:J2N.Character.MinRadix"/> to <see cref="F:J2N.Character.MaxRadix"/> inclusive.
<para/>
Supports any BMP (Basic Multilingual Plane) or SMP (Supplementary Mulitlingual Plane) digit as defined by Unicode 10.0.
</summary>
<param name="s">The <see cref="T:System.ReadOnlySpan`1"/> containing the <see cref="T:System.SByte"/> representation to be parsed.</param>
<param name="startIndex">The zero-based starting character position of a region in <paramref name="s"/>.</param>
<param name="length">The number of characters in the region to parse.</param>
<param name="radix">The radix (or base) to use when parsing <paramref name="s"/>. The value must be in the range
<see cref="F:J2N.Character.MinRadix"/> - <see cref="F:J2N.Character.MaxRadix"/> inclusive.</param>
<returns>The <see cref="T:System.SByte"/> represented by the subsequence in the specified <paramref name="radix"/>.</returns>
<remarks>
If <paramref name="radix"/> is 16, you can prefix the number specified by the <paramref name="s"/> parameter with "0x" or "0X".
<para/>
To specify a negative value for base (radix) 10 numeric representations, use the ASCII character \u002d ('-').
<para/>
For any other <paramref name="radix"/>, negative values may either be specified with ASCII character \u002d ('-')
(as in Java) or by specifying the two's complement representation (as in .NET), but not both.
In the latter case, the highest-order binary bit of an integer (bit 7) is interpreted as the sign bit.
As a result, it is possible to write code in which a non-base 10 number that is out of the range of the <see cref="T:System.SByte"/>
data type is converted to a <see cref="T:System.SByte"/> value without the method throwing an exception.
</remarks>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="startIndex"/> or <paramref name="length"/> is less than zero.
<para/>
-or-
<para/>
<paramref name="startIndex"/> and <paramref name="length"/> refer to a location outside of <paramref name="s"/>.
<para/>
-or-
<para/>
<paramref name="radix"/> is less than <see cref="F:J2N.Character.MinRadix"/> or greater than <see cref="F:J2N.Character.MaxRadix"/>.
</exception>
<exception cref="T:System.FormatException">
The range of characters in <paramref name="s"/> specified by <paramref name="startIndex"/> and <paramref name="length"/>
contains a character that is not a valid digit in the base specified by <paramref name="radix"/>.
The exception message indicates that there are no digits to convert if the first character specified by
<paramref name="startIndex"/> is invalid; otherwise, the message indicates that the range of characters in
<paramref name="s"/> specified by <paramref name="startIndex"/> and <paramref name="length"/> contains invalid trailing characters.
<para/>
-or-
<para/>
The range of characters in <paramref name="s"/> specified by <paramref name="startIndex"/> and <paramref name="length"/>
contain only a the ASCII character \u002d ('-') or \u002B ('+') sign and/or hexadecimal prefix 0X or 0x with no digits.
<para/>
-or-
<para/>
<paramref name="length"/> is zero.
</exception>
<exception cref="T:System.OverflowException">
The range of characters in <paramref name="s"/> specified by <paramref name="startIndex"/> and <paramref name="length"/>
represents a number that is less than <see cref="F:System.SByte.MinValue"/> or greater than <see cref="F:System.SByte.MaxValue"/>.
</exception>
<seealso cref="M:J2N.Numerics.SByte.TryParse(System.ReadOnlySpan{System.Char},System.Int32,System.Int32,System.Int32,System.SByte@)"/>
<seealso cref="M:J2N.Numerics.SByte.Parse(System.String,System.Int32)"/>
</member>
<member name="M:J2N.Numerics.SByte.Parse(System.String,System.Int32,System.Int32,System.Int32)">
<summary>
Parses the <see cref="T:System.String"/> argument as a <see cref="T:System.SByte"/> in the specified <paramref name="radix"/>, beginning at the
specified <paramref name="startIndex"/> with the specified number of characters in <paramref name="length"/>.
<para/>
IMPORTANT: This method has .NET semantics. That is, the <paramref name="length"/> parameter
is a length rather than an exclusive end index as would be the case in Java. To translate from
Java, use <c>endIndex - beginIndex</c> to obtain the <paramref name="length"/>.
<para/>
Usage Note: This method is similar to the <see cref="M:System.Convert.ToSByte(System.String,System.Int32)"/> method, however it allows conversion
of the value without allocating a substring. It also differs in that it allows the use of the ASCII character \u002d ('-')
or \u002B ('+') in any <paramref name="radix"/> and allows any <paramref name="radix"/> value from
<see cref="F:J2N.Character.MinRadix"/> to <see cref="F:J2N.Character.MaxRadix"/> inclusive.
<para/>
Supports any BMP (Basic Multilingual Plane) or SMP (Supplementary Mulitlingual Plane) digit as defined by Unicode 10.0.
</summary>
<param name="s">The <see cref="T:System.String"/> containing the <see cref="T:System.SByte"/> representation to be parsed.</param>
<param name="startIndex">The zero-based starting character position of a region in <paramref name="s"/>.</param>
<param name="length">The number of characters in the region to parse.</param>
<param name="radix">The radix (or base) to use when parsing <paramref name="s"/>. The value must be in the range
<see cref="F:J2N.Character.MinRadix"/> - <see cref="F:J2N.Character.MaxRadix"/> inclusive.</param>
<returns>The <see cref="T:System.SByte"/> represented by the subsequence in the specified <paramref name="radix"/>.</returns>
<remarks>
If <paramref name="radix"/> is 16, you can prefix the number specified by the <paramref name="s"/> parameter with "0x" or "0X".
<para/>
To specify a negative value for base (radix) 10 numeric representations, use the ASCII character \u002d ('-').
<para/>
For any other <paramref name="radix"/>, negative values may either be specified with ASCII character \u002d ('-')
(as in Java) or by specifying the two's complement representation (as in .NET), but not both.
In the latter case, the highest-order binary bit of an integer (bit 7) is interpreted as the sign bit.
As a result, it is possible to write code in which a non-base 10 number that is out of the range of the <see cref="T:System.SByte"/>
data type is converted to a <see cref="T:System.SByte"/> value without the method throwing an exception.
</remarks>
<exception cref="T:System.ArgumentNullException"><paramref name="s"/> is <c>null</c>.</exception>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="startIndex"/> or <paramref name="length"/> is less than zero.
<para/>
-or-
<para/>
<paramref name="startIndex"/> and <paramref name="length"/> refer to a location outside of <paramref name="s"/>.
<para/>
-or-
<para/>
<paramref name="radix"/> is less than <see cref="F:J2N.Character.MinRadix"/> or greater than <see cref="F:J2N.Character.MaxRadix"/>.
</exception>
<exception cref="T:System.FormatException">
The range of characters in <paramref name="s"/> specified by <paramref name="startIndex"/> and <paramref name="length"/>
contains a character that is not a valid digit in the base specified by <paramref name="radix"/>.
The exception message indicates that there are no digits to convert if the first character specified by
<paramref name="startIndex"/> is invalid; otherwise, the message indicates that the range of characters in
<paramref name="s"/> specified by <paramref name="startIndex"/> and <paramref name="length"/> contains invalid trailing characters.
<para/>
-or-
<para/>
The range of characters in <paramref name="s"/> specified by <paramref name="startIndex"/> and <paramref name="length"/>
contain only a the ASCII character \u002d ('-') or \u002B ('+') sign and/or hexadecimal prefix 0X or 0x with no digits.
<para/>
-or-
<para/>
<paramref name="length"/> is zero.
</exception>
<exception cref="T:System.OverflowException">
The range of characters in <paramref name="s"/> specified by <paramref name="startIndex"/> and <paramref name="length"/>
represents a number that is less than <see cref="F:System.SByte.MinValue"/> or greater than <see cref="F:System.SByte.MaxValue"/>.
</exception>
<seealso cref="M:J2N.Numerics.SByte.TryParse(System.String,System.Int32,System.Int32,System.Int32,System.SByte@)"/>
<seealso cref="M:J2N.Numerics.SByte.Parse(System.String,System.Int32)"/>
</member>
<member name="M:J2N.Numerics.SByte.Parse(System.Char[],System.Int32,System.Int32,System.Int32)">
<summary>
Parses the <see cref="T:char[]"/> argument as a <see cref="T:System.SByte"/> in the specified <paramref name="radix"/>, beginning at the
specified <paramref name="startIndex"/> with the specified number of characters in <paramref name="length"/>.
<para/>
IMPORTANT: This method has .NET semantics. That is, the <paramref name="length"/> parameter
is a length rather than an exclusive end index as would be the case in Java. To translate from
Java, use <c>endIndex - beginIndex</c> to obtain the <paramref name="length"/>.
<para/>
Usage Note: This method is similar to the <see cref="M:System.Convert.ToSByte(System.String,System.Int32)"/> method, however it allows conversion
of the value without allocating a substring. It also differs in that it allows the use of the ASCII character \u002d ('-')
or \u002B ('+') in any <paramref name="radix"/> and allows any <paramref name="radix"/> value from
<see cref="F:J2N.Character.MinRadix"/> to <see cref="F:J2N.Character.MaxRadix"/> inclusive.
<para/>
Supports any BMP (Basic Multilingual Plane) or SMP (Supplementary Mulitlingual Plane) digit as defined by Unicode 10.0.
</summary>
<param name="s">The <see cref="T:char[]"/> containing the <see cref="T:System.SByte"/> representation to be parsed.</param>
<param name="startIndex">The zero-based starting character position of a region in <paramref name="s"/>.</param>
<param name="length">The number of characters in the region to parse.</param>
<param name="radix">The radix (or base) to use when parsing <paramref name="s"/>. The value must be in the range
<see cref="F:J2N.Character.MinRadix"/> - <see cref="F:J2N.Character.MaxRadix"/> inclusive.</param>
<returns>The <see cref="T:System.SByte"/> represented by the subsequence in the specified <paramref name="radix"/>.</returns>
<remarks>
If <paramref name="radix"/> is 16, you can prefix the number specified by the <paramref name="s"/> parameter with "0x" or "0X".
<para/>
To specify a negative value for base (radix) 10 numeric representations, use the ASCII character \u002d ('-').
<para/>
For any other <paramref name="radix"/>, negative values may either be specified with ASCII character \u002d ('-')
(as in Java) or by specifying the two's complement representation (as in .NET), but not both.
In the latter case, the highest-order binary bit of an integer (bit 7) is interpreted as the sign bit.
As a result, it is possible to write code in which a non-base 10 number that is out of the range of the <see cref="T:System.SByte"/>
data type is converted to a <see cref="T:System.SByte"/> value without the method throwing an exception.
</remarks>
<exception cref="T:System.ArgumentNullException"><paramref name="s"/> is <c>null</c>.</exception>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="startIndex"/> or <paramref name="length"/> is less than zero.
<para/>
-or-
<para/>
<paramref name="startIndex"/> and <paramref name="length"/> refer to a location outside of <paramref name="s"/>.
<para/>
-or-
<para/>
<paramref name="radix"/> is less than <see cref="F:J2N.Character.MinRadix"/> or greater than <see cref="F:J2N.Character.MaxRadix"/>.
</exception>
<exception cref="T:System.FormatException">
The range of characters in <paramref name="s"/> specified by <paramref name="startIndex"/> and <paramref name="length"/>
contains a character that is not a valid digit in the base specified by <paramref name="radix"/>.
The exception message indicates that there are no digits to convert if the first character specified by
<paramref name="startIndex"/> is invalid; otherwise, the message indicates that the range of characters in
<paramref name="s"/> specified by <paramref name="startIndex"/> and <paramref name="length"/> contains invalid trailing characters.
<para/>
-or-
<para/>
The range of characters in <paramref name="s"/> specified by <paramref name="startIndex"/> and <paramref name="length"/>
contain only a the ASCII character \u002d ('-') or \u002B ('+') sign and/or hexadecimal prefix 0X or 0x with no digits.
<para/>
-or-
<para/>
<paramref name="length"/> is zero.
</exception>
<exception cref="T:System.OverflowException">
The range of characters in <paramref name="s"/> specified by <paramref name="startIndex"/> and <paramref name="length"/>
represents a number that is less than <see cref="F:System.SByte.MinValue"/> or greater than <see cref="F:System.SByte.MaxValue"/>.
</exception>
<seealso cref="M:J2N.Numerics.SByte.TryParse(System.Char[],System.Int32,System.Int32,System.Int32,System.SByte@)"/>
<seealso cref="M:J2N.Numerics.SByte.Parse(System.String,System.Int32)"/>
</member>
<member name="M:J2N.Numerics.SByte.Parse(System.Text.StringBuilder,System.Int32,System.Int32,System.Int32)">
<summary>
Parses the <see cref="T:System.Text.StringBuilder"/> argument as a <see cref="T:System.SByte"/> in the specified <paramref name="radix"/>, beginning at the
specified <paramref name="startIndex"/> with the specified number of characters in <paramref name="length"/>.
<para/>
IMPORTANT: This method has .NET semantics. That is, the <paramref name="length"/> parameter
is a length rather than an exclusive end index as would be the case in Java. To translate from
Java, use <c>endIndex - beginIndex</c> to obtain the <paramref name="length"/>.
<para/>
Usage Note: This method is similar to the <see cref="M:System.Convert.ToSByte(System.String,System.Int32)"/> method, however it allows conversion
of the value without allocating a substring. It also differs in that it allows the use of the ASCII character \u002d ('-')
or \u002B ('+') in any <paramref name="radix"/> and allows any <paramref name="radix"/> value from
<see cref="F:J2N.Character.MinRadix"/> to <see cref="F:J2N.Character.MaxRadix"/> inclusive.
<para/>
Supports any BMP (Basic Multilingual Plane) or SMP (Supplementary Mulitlingual Plane) digit as defined by Unicode 10.0.
</summary>
<param name="s">The <see cref="T:System.Text.StringBuilder"/> containing the <see cref="T:System.SByte"/> representation to be parsed.</param>
<param name="startIndex">The zero-based starting character position of a region in <paramref name="s"/>.</param>
<param name="length">The number of characters in the region to parse.</param>
<param name="radix">The radix (or base) to use when parsing <paramref name="s"/>. The value must be in the range
<see cref="F:J2N.Character.MinRadix"/> - <see cref="F:J2N.Character.MaxRadix"/> inclusive.</param>
<returns>The <see cref="T:System.SByte"/> represented by the subsequence in the specified <paramref name="radix"/>.</returns>
<remarks>
If <paramref name="radix"/> is 16, you can prefix the number specified by the <paramref name="s"/> parameter with "0x" or "0X".
<para/>
To specify a negative value for base (radix) 10 numeric representations, use the ASCII character \u002d ('-').
<para/>
For any other <paramref name="radix"/>, negative values may either be specified with ASCII character \u002d ('-')
(as in Java) or by specifying the two's complement representation (as in .NET), but not both.
In the latter case, the highest-order binary bit of an integer (bit 7) is interpreted as the sign bit.
As a result, it is possible to write code in which a non-base 10 number that is out of the range of the <see cref="T:System.SByte"/>
data type is converted to a <see cref="T:System.SByte"/> value without the method throwing an exception.
</remarks>
<exception cref="T:System.ArgumentNullException"><paramref name="s"/> is <c>null</c>.</exception>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="startIndex"/> or <paramref name="length"/> is less than zero.
<para/>
-or-
<para/>
<paramref name="startIndex"/> and <paramref name="length"/> refer to a location outside of <paramref name="s"/>.
<para/>
-or-
<para/>
<paramref name="radix"/> is less than <see cref="F:J2N.Character.MinRadix"/> or greater than <see cref="F:J2N.Character.MaxRadix"/>.
</exception>
<exception cref="T:System.FormatException">
The range of characters in <paramref name="s"/> specified by <paramref name="startIndex"/> and <paramref name="length"/>
contains a character that is not a valid digit in the base specified by <paramref name="radix"/>.
The exception message indicates that there are no digits to convert if the first character specified by
<paramref name="startIndex"/> is invalid; otherwise, the message indicates that the range of characters in
<paramref name="s"/> specified by <paramref name="startIndex"/> and <paramref name="length"/> contains invalid trailing characters.
<para/>
-or-
<para/>
The range of characters in <paramref name="s"/> specified by <paramref name="startIndex"/> and <paramref name="length"/>
contain only a the ASCII character \u002d ('-') or \u002B ('+') sign and/or hexadecimal prefix 0X or 0x with no digits.
<para/>
-or-
<para/>
<paramref name="length"/> is zero.
</exception>
<exception cref="T:System.OverflowException">
The range of characters in <paramref name="s"/> specified by <paramref name="startIndex"/> and <paramref name="length"/>
represents a number that is less than <see cref="F:System.SByte.MinValue"/> or greater than <see cref="F:System.SByte.MaxValue"/>.
</exception>
<seealso cref="M:J2N.Numerics.SByte.TryParse(System.Text.StringBuilder,System.Int32,System.Int32,System.Int32,System.SByte@)"/>
<seealso cref="M:J2N.Numerics.SByte.Parse(System.String,System.Int32)"/>
</member>
<member name="M:J2N.Numerics.SByte.Parse(J2N.Text.ICharSequence,System.Int32,System.Int32,System.Int32)">
<summary>
Parses the <see cref="T:J2N.Text.ICharSequence"/> argument as a <see cref="T:System.SByte"/> in the specified <paramref name="radix"/>, beginning at the
specified <paramref name="startIndex"/> with the specified number of characters in <paramref name="length"/>.
<para/>
IMPORTANT: This method has .NET semantics. That is, the <paramref name="length"/> parameter
is a length rather than an exclusive end index as would be the case in Java. To translate from
Java, use <c>endIndex - beginIndex</c> to obtain the <paramref name="length"/>.
<para/>
Usage Note: This method is similar to the <see cref="M:System.Convert.ToSByte(System.String,System.Int32)"/> method, however it allows conversion
of the value without allocating a substring. It also differs in that it allows the use of the ASCII character \u002d ('-')
or \u002B ('+') in any <paramref name="radix"/> and allows any <paramref name="radix"/> value from
<see cref="F:J2N.Character.MinRadix"/> to <see cref="F:J2N.Character.MaxRadix"/> inclusive.
<para/>
Supports any BMP (Basic Multilingual Plane) or SMP (Supplementary Mulitlingual Plane) digit as defined by Unicode 10.0.
</summary>
<param name="s">The <see cref="T:J2N.Text.ICharSequence"/> containing the <see cref="T:System.SByte"/> representation to be parsed.</param>
<param name="startIndex">The zero-based starting character position of a region in <paramref name="s"/>.</param>
<param name="length">The number of characters in the region to parse.</param>
<param name="radix">The radix (or base) to use when parsing <paramref name="s"/>. The value must be in the range
<see cref="F:J2N.Character.MinRadix"/> - <see cref="F:J2N.Character.MaxRadix"/> inclusive.</param>
<returns>The <see cref="T:System.SByte"/> represented by the subsequence in the specified <paramref name="radix"/>.</returns>
<remarks>
If <paramref name="radix"/> is 16, you can prefix the number specified by the <paramref name="s"/> parameter with "0x" or "0X".
<para/>
To specify a negative value for base (radix) 10 numeric representations, use the ASCII character \u002d ('-').
<para/>
For any other <paramref name="radix"/>, negative values may either be specified with ASCII character \u002d ('-')
(as in Java) or by specifying the two's complement representation (as in .NET), but not both.
In the latter case, the highest-order binary bit of an integer (bit 7) is interpreted as the sign bit.
As a result, it is possible to write code in which a non-base 10 number that is out of the range of the <see cref="T:System.SByte"/>
data type is converted to a <see cref="T:System.SByte"/> value without the method throwing an exception.
</remarks>
<exception cref="T:System.ArgumentNullException"><paramref name="s"/> is <c>null</c> or its <see cref="P:J2N.Text.ICharSequence.HasValue"/> property returns <c>false</c>.</exception>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="startIndex"/> or <paramref name="length"/> is less than zero.
<para/>
-or-
<para/>
<paramref name="startIndex"/> and <paramref name="length"/> refer to a location outside of <paramref name="s"/>.
<para/>
-or-
<para/>
<paramref name="radix"/> is less than <see cref="F:J2N.Character.MinRadix"/> or greater than <see cref="F:J2N.Character.MaxRadix"/>.
</exception>
<exception cref="T:System.FormatException">
The range of characters in <paramref name="s"/> specified by <paramref name="startIndex"/> and <paramref name="length"/>
contains a character that is not a valid digit in the base specified by <paramref name="radix"/>.
The exception message indicates that there are no digits to convert if the first character specified by
<paramref name="startIndex"/> is invalid; otherwise, the message indicates that the range of characters in
<paramref name="s"/> specified by <paramref name="startIndex"/> and <paramref name="length"/> contains invalid trailing characters.
<para/>
-or-
<para/>
The range of characters in <paramref name="s"/> specified by <paramref name="startIndex"/> and <paramref name="length"/>
contain only a the ASCII character \u002d ('-') or \u002B ('+') sign and/or hexadecimal prefix 0X or 0x with no digits.
<para/>
-or-
<para/>
<paramref name="length"/> is zero.
</exception>
<exception cref="T:System.OverflowException">
The range of characters in <paramref name="s"/> specified by <paramref name="startIndex"/> and <paramref name="length"/>
represents a number that is less than <see cref="F:System.SByte.MinValue"/> or greater than <see cref="F:System.SByte.MaxValue"/>.
</exception>
<seealso cref="M:J2N.Numerics.SByte.TryParse(J2N.Text.ICharSequence,System.Int32,System.Int32,System.Int32,System.SByte@)"/>
<seealso cref="M:J2N.Numerics.SByte.Parse(System.String,System.Int32)"/>
</member>
<member name="M:J2N.Numerics.SByte.TryParse(System.ReadOnlySpan{System.Char},System.Int32,System.Int32,System.Int32,System.SByte@)">
<summary>
Parses the <see cref="T:System.ReadOnlySpan`1"/> argument as a <see cref="T:System.SByte"/> in the specified <paramref name="radix"/>, beginning at the
specified <paramref name="startIndex"/> with the specified number of characters in <paramref name="length"/>.
<para/>
IMPORTANT: This method has .NET semantics. That is, the <paramref name="length"/> parameter
is a length rather than an exclusive end index as would be the case in Java. To translate from
Java, use <c>endIndex - beginIndex</c> to obtain the <paramref name="length"/>.
<para/>
Usage Note: This method is similar to the <see cref="M:System.Convert.ToSByte(System.String,System.Int32)"/> method, however it allows conversion
of the value without allocating a substring. It also differs in that it allows the use of the ASCII character \u002d ('-')
or \u002B ('+') in any <paramref name="radix"/> and allows any <paramref name="radix"/> value from
<see cref="F:J2N.Character.MinRadix"/> to <see cref="F:J2N.Character.MaxRadix"/> inclusive.
<para/>
Supports any BMP (Basic Multilingual Plane) or SMP (Supplementary Mulitlingual Plane) digit as defined by Unicode 10.0.
<para/>
Since <see cref="M:J2N.Numerics.SByte.Parse(System.ReadOnlySpan{System.Char},System.Int32,System.Int32,System.Int32)"/> throws many different exception types and in Java they are all normalized to
<c>NumberFormatException</c>, this method can be used to mimic the same behavior by throwing <see cref="T:System.FormatException"/>
when this method returns <c>false</c>.
</summary>
<param name="s">The <see cref="T:System.ReadOnlySpan`1"/> containing the <see cref="T:System.SByte"/> representation to be parsed.</param>
<param name="startIndex">The zero-based starting character position of a region in <paramref name="s"/>.</param>
<param name="length">The number of characters in the region to parse.</param>
<param name="radix">The radix (or base) to use when parsing <paramref name="s"/>. The value must be in the range
<see cref="F:J2N.Character.MinRadix"/> - <see cref="F:J2N.Character.MaxRadix"/> inclusive.</param>
<param name="result">The <see cref="T:System.SByte"/> represented by the subsequence in the specified <paramref name="radix"/>.</param>
<returns><c>true</c> if <paramref name="s"/> was converted successfully; otherwise, <c>false</c>.</returns>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="startIndex"/> or <paramref name="length"/> is less than zero.
<para/>
-or-
<para/>
<paramref name="startIndex"/> and <paramref name="length"/> refer to a location outside of <paramref name="s"/>.
<para/>
-or-
<para/>
<paramref name="radix"/> is less than <see cref="F:J2N.Character.MinRadix"/> or greater than <see cref="F:J2N.Character.MaxRadix"/>.
</exception>
<remarks>
If <paramref name="radix"/> is 16, you can prefix the number specified by the <paramref name="s"/> parameter with "0x" or "0X".
<para/>
To specify a negative value for base (radix) 10 numeric representations, use the ASCII character \u002d ('-').
<para/>
For any other <paramref name="radix"/>, negative values may either be specified with ASCII character \u002d ('-')
(as in Java) or by specifying the two's complement representation (as in .NET), but not both.
In the latter case, the highest-order binary bit of an integer (bit 7) is interpreted as the sign bit.
As a result, it is possible to write code in which a non-base 10 number that is out of the range of the <see cref="T:System.SByte"/>
data type is converted to a <see cref="T:System.SByte"/> value without the method throwing an exception.
</remarks>
<seealso cref="M:J2N.Numerics.SByte.Parse(System.ReadOnlySpan{System.Char},System.Int32,System.Int32,System.Int32)"/>
<seealso cref="M:J2N.Numerics.SByte.Parse(System.String,System.Int32)"/>
</member>
<member name="M:J2N.Numerics.SByte.TryParse(System.String,System.Int32,System.Int32,System.Int32,System.SByte@)">
<summary>
Parses the <see cref="T:System.String"/> argument as a <see cref="T:System.SByte"/> in the specified <paramref name="radix"/>, beginning at the
specified <paramref name="startIndex"/> with the specified number of characters in <paramref name="length"/>.
<para/>
IMPORTANT: This method has .NET semantics. That is, the <paramref name="length"/> parameter
is a length rather than an exclusive end index as would be the case in Java. To translate from
Java, use <c>endIndex - beginIndex</c> to obtain the <paramref name="length"/>.
<para/>
Usage Note: This method is similar to the <see cref="M:System.Convert.ToSByte(System.String,System.Int32)"/> method, however it allows conversion
of the value without allocating a substring. It also differs in that it allows the use of the ASCII character \u002d ('-')
or \u002B ('+') in any <paramref name="radix"/> and allows any <paramref name="radix"/> value from
<see cref="F:J2N.Character.MinRadix"/> to <see cref="F:J2N.Character.MaxRadix"/> inclusive.
<para/>
Supports any BMP (Basic Multilingual Plane) or SMP (Supplementary Mulitlingual Plane) digit as defined by Unicode 10.0.
<para/>
Since <see cref="M:J2N.Numerics.SByte.Parse(System.String,System.Int32,System.Int32,System.Int32)"/> throws many different exception types and in Java they are all normalized to
<c>NumberFormatException</c>, this method can be used to mimic the same behavior by throwing <see cref="T:System.FormatException"/>
when this method returns <c>false</c>.
</summary>
<param name="s">The <see cref="T:System.String"/> containing the <see cref="T:System.SByte"/> representation to be parsed.</param>
<param name="startIndex">The zero-based starting character position of a region in <paramref name="s"/>.</param>
<param name="length">The number of characters in the region to parse.</param>
<param name="radix">The radix (or base) to use when parsing <paramref name="s"/>. The value must be in the range
<see cref="F:J2N.Character.MinRadix"/> - <see cref="F:J2N.Character.MaxRadix"/> inclusive.</param>
<param name="result">The <see cref="T:System.SByte"/> represented by the subsequence in the specified <paramref name="radix"/>.</param>
<returns><c>true</c> if <paramref name="s"/> was converted successfully; otherwise, <c>false</c>.</returns>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="startIndex"/> or <paramref name="length"/> is less than zero.
<para/>
-or-
<para/>
<paramref name="startIndex"/> and <paramref name="length"/> refer to a location outside of <paramref name="s"/>.
<para/>
-or-
<para/>
<paramref name="radix"/> is less than <see cref="F:J2N.Character.MinRadix"/> or greater than <see cref="F:J2N.Character.MaxRadix"/>.
</exception>
<remarks>
If <paramref name="radix"/> is 16, you can prefix the number specified by the <paramref name="s"/> parameter with "0x" or "0X".
<para/>
To specify a negative value for base (radix) 10 numeric representations, use the ASCII character \u002d ('-').
<para/>
For any other <paramref name="radix"/>, negative values may either be specified with ASCII character \u002d ('-')
(as in Java) or by specifying the two's complement representation (as in .NET), but not both.
In the latter case, the highest-order binary bit of an integer (bit 7) is interpreted as the sign bit.
As a result, it is possible to write code in which a non-base 10 number that is out of the range of the <see cref="T:System.SByte"/>
data type is converted to a <see cref="T:System.SByte"/> value without the method throwing an exception.
</remarks>
<seealso cref="M:J2N.Numerics.SByte.Parse(System.String,System.Int32,System.Int32,System.Int32)"/>
<seealso cref="M:J2N.Numerics.SByte.Parse(System.String,System.Int32)"/>
</member>
<member name="M:J2N.Numerics.SByte.TryParse(System.Char[],System.Int32,System.Int32,System.Int32,System.SByte@)">
<summary>
Parses the <see cref="T:char[]"/> argument as a <see cref="T:System.SByte"/> in the specified <paramref name="radix"/>, beginning at the
specified <paramref name="startIndex"/> with the specified number of characters in <paramref name="length"/>.
<para/>
IMPORTANT: This method has .NET semantics. That is, the <paramref name="length"/> parameter
is a length rather than an exclusive end index as would be the case in Java. To translate from
Java, use <c>endIndex - beginIndex</c> to obtain the <paramref name="length"/>.
<para/>
Usage Note: This method is similar to the <see cref="M:System.Convert.ToSByte(System.String,System.Int32)"/> method, however it allows conversion
of the value without allocating a substring. It also differs in that it allows the use of the ASCII character \u002d ('-')
or \u002B ('+') in any <paramref name="radix"/> and allows any <paramref name="radix"/> value from
<see cref="F:J2N.Character.MinRadix"/> to <see cref="F:J2N.Character.MaxRadix"/> inclusive.
<para/>
Supports any BMP (Basic Multilingual Plane) or SMP (Supplementary Mulitlingual Plane) digit as defined by Unicode 10.0.
<para/>
Since <see cref="M:J2N.Numerics.SByte.Parse(System.Char[],System.Int32,System.Int32,System.Int32)"/> throws many different exception types and in Java they are all normalized to
<c>NumberFormatException</c>, this method can be used to mimic the same behavior by throwing <see cref="T:System.FormatException"/>
when this method returns <c>false</c>.
</summary>
<param name="s">The <see cref="T:char[]"/> containing the <see cref="T:System.SByte"/> representation to be parsed.</param>
<param name="startIndex">The zero-based starting character position of a region in <paramref name="s"/>.</param>
<param name="length">The number of characters in the region to parse.</param>
<param name="radix">The radix (or base) to use when parsing <paramref name="s"/>. The value must be in the range
<see cref="F:J2N.Character.MinRadix"/> - <see cref="F:J2N.Character.MaxRadix"/> inclusive.</param>
<param name="result">The <see cref="T:System.SByte"/> represented by the subsequence in the specified <paramref name="radix"/>.</param>
<returns><c>true</c> if <paramref name="s"/> was converted successfully; otherwise, <c>false</c>.</returns>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="startIndex"/> or <paramref name="length"/> is less than zero.
<para/>
-or-
<para/>
<paramref name="startIndex"/> and <paramref name="length"/> refer to a location outside of <paramref name="s"/>.
<para/>
-or-
<para/>
<paramref name="radix"/> is less than <see cref="F:J2N.Character.MinRadix"/> or greater than <see cref="F:J2N.Character.MaxRadix"/>.
</exception>
<remarks>
If <paramref name="radix"/> is 16, you can prefix the number specified by the <paramref name="s"/> parameter with "0x" or "0X".
<para/>
To specify a negative value for base (radix) 10 numeric representations, use the ASCII character \u002d ('-').
<para/>
For any other <paramref name="radix"/>, negative values may either be specified with ASCII character \u002d ('-')
(as in Java) or by specifying the two's complement representation (as in .NET), but not both.
In the latter case, the highest-order binary bit of an integer (bit 7) is interpreted as the sign bit.
As a result, it is possible to write code in which a non-base 10 number that is out of the range of the <see cref="T:System.SByte"/>
data type is converted to a <see cref="T:System.SByte"/> value without the method throwing an exception.
</remarks>
<seealso cref="M:J2N.Numerics.SByte.Parse(System.Char[],System.Int32,System.Int32,System.Int32)"/>
<seealso cref="M:J2N.Numerics.SByte.Parse(System.String,System.Int32)"/>
</member>
<member name="M:J2N.Numerics.SByte.TryParse(System.Text.StringBuilder,System.Int32,System.Int32,System.Int32,System.SByte@)">
<summary>
Parses the <see cref="T:System.Text.StringBuilder"/> argument as a <see cref="T:System.SByte"/> in the specified <paramref name="radix"/>, beginning at the
specified <paramref name="startIndex"/> with the specified number of characters in <paramref name="length"/>.
<para/>
IMPORTANT: This method has .NET semantics. That is, the <paramref name="length"/> parameter
is a length rather than an exclusive end index as would be the case in Java. To translate from
Java, use <c>endIndex - beginIndex</c> to obtain the <paramref name="length"/>.
<para/>
Usage Note: This method is similar to the <see cref="M:System.Convert.ToSByte(System.String,System.Int32)"/> method, however it allows conversion
of the value without allocating a substring. It also differs in that it allows the use of the ASCII character \u002d ('-')
or \u002B ('+') in any <paramref name="radix"/> and allows any <paramref name="radix"/> value from
<see cref="F:J2N.Character.MinRadix"/> to <see cref="F:J2N.Character.MaxRadix"/> inclusive.
<para/>
Supports any BMP (Basic Multilingual Plane) or SMP (Supplementary Mulitlingual Plane) digit as defined by Unicode 10.0.
<para/>
Since <see cref="M:J2N.Numerics.SByte.Parse(System.Text.StringBuilder,System.Int32,System.Int32,System.Int32)"/> throws many different exception types and in Java they are all normalized to
<c>NumberFormatException</c>, this method can be used to mimic the same behavior by throwing <see cref="T:System.FormatException"/>
when this method returns <c>false</c>.
</summary>
<param name="s">The <see cref="T:System.Text.StringBuilder"/> containing the <see cref="T:System.SByte"/> representation to be parsed.</param>
<param name="startIndex">The zero-based starting character position of a region in <paramref name="s"/>.</param>
<param name="length">The number of characters in the region to parse.</param>
<param name="radix">The radix (or base) to use when parsing <paramref name="s"/>. The value must be in the range
<see cref="F:J2N.Character.MinRadix"/> - <see cref="F:J2N.Character.MaxRadix"/> inclusive.</param>
<param name="result">The <see cref="T:System.SByte"/> represented by the subsequence in the specified <paramref name="radix"/>.</param>
<returns><c>true</c> if <paramref name="s"/> was converted successfully; otherwise, <c>false</c>.</returns>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="startIndex"/> or <paramref name="length"/> is less than zero.
<para/>
-or-
<para/>
<paramref name="startIndex"/> and <paramref name="length"/> refer to a location outside of <paramref name="s"/>.
<para/>
-or-
<para/>
<paramref name="radix"/> is less than <see cref="F:J2N.Character.MinRadix"/> or greater than <see cref="F:J2N.Character.MaxRadix"/>.
</exception>
<remarks>
If <paramref name="radix"/> is 16, you can prefix the number specified by the <paramref name="s"/> parameter with "0x" or "0X".
<para/>
To specify a negative value for base (radix) 10 numeric representations, use the ASCII character \u002d ('-').
<para/>
For any other <paramref name="radix"/>, negative values may either be specified with ASCII character \u002d ('-')
(as in Java) or by specifying the two's complement representation (as in .NET), but not both.
In the latter case, the highest-order binary bit of an integer (bit 7) is interpreted as the sign bit.
As a result, it is possible to write code in which a non-base 10 number that is out of the range of the <see cref="T:System.SByte"/>
data type is converted to a <see cref="T:System.SByte"/> value without the method throwing an exception.
</remarks>
<seealso cref="M:J2N.Numerics.SByte.Parse(System.Text.StringBuilder,System.Int32,System.Int32,System.Int32)"/>
<seealso cref="M:J2N.Numerics.SByte.Parse(System.String,System.Int32)"/>
</member>
<member name="M:J2N.Numerics.SByte.TryParse(J2N.Text.ICharSequence,System.Int32,System.Int32,System.Int32,System.SByte@)">
<summary>
Parses the <see cref="T:J2N.Text.ICharSequence"/> argument as a <see cref="T:System.SByte"/> in the specified <paramref name="radix"/>, beginning at the
specified <paramref name="startIndex"/> with the specified number of characters in <paramref name="length"/>.
<para/>
IMPORTANT: This method has .NET semantics. That is, the <paramref name="length"/> parameter
is a length rather than an exclusive end index as would be the case in Java. To translate from
Java, use <c>endIndex - beginIndex</c> to obtain the <paramref name="length"/>.
<para/>
Usage Note: This method is similar to the <see cref="M:System.Convert.ToSByte(System.String,System.Int32)"/> method, however it allows conversion
of the value without allocating a substring. It also differs in that it allows the use of the ASCII character \u002d ('-')
or \u002B ('+') in any <paramref name="radix"/> and allows any <paramref name="radix"/> value from
<see cref="F:J2N.Character.MinRadix"/> to <see cref="F:J2N.Character.MaxRadix"/> inclusive.
<para/>
Supports any BMP (Basic Multilingual Plane) or SMP (Supplementary Mulitlingual Plane) digit as defined by Unicode 10.0.
<para/>
Since <see cref="M:J2N.Numerics.SByte.Parse(J2N.Text.ICharSequence,System.Int32,System.Int32,System.Int32)"/> throws many different exception types and in Java they are all normalized to
<c>NumberFormatException</c>, this method can be used to mimic the same behavior by throwing <see cref="T:System.FormatException"/>
when this method returns <c>false</c>.
</summary>
<param name="s">The <see cref="T:J2N.Text.ICharSequence"/> containing the <see cref="T:System.SByte"/> representation to be parsed.</param>
<param name="startIndex">The zero-based starting character position of a region in <paramref name="s"/>.</param>
<param name="length">The number of characters in the region to parse.</param>
<param name="radix">The radix (or base) to use when parsing <paramref name="s"/>. The value must be in the range
<see cref="F:J2N.Character.MinRadix"/> - <see cref="F:J2N.Character.MaxRadix"/> inclusive.</param>
<param name="result">The <see cref="T:System.SByte"/> represented by the subsequence in the specified <paramref name="radix"/>.</param>
<returns><c>true</c> if <paramref name="s"/> was converted successfully; otherwise, <c>false</c>.</returns>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="startIndex"/> or <paramref name="length"/> is less than zero.
<para/>
-or-
<para/>
<paramref name="startIndex"/> and <paramref name="length"/> refer to a location outside of <paramref name="s"/>.
<para/>
-or-
<para/>
<paramref name="radix"/> is less than <see cref="F:J2N.Character.MinRadix"/> or greater than <see cref="F:J2N.Character.MaxRadix"/>.
</exception>
<remarks>
If <paramref name="radix"/> is 16, you can prefix the number specified by the <paramref name="s"/> parameter with "0x" or "0X".
<para/>
To specify a negative value for base (radix) 10 numeric representations, use the ASCII character \u002d ('-').
<para/>
For any other <paramref name="radix"/>, negative values may either be specified with ASCII character \u002d ('-')
(as in Java) or by specifying the two's complement representation (as in .NET), but not both.
In the latter case, the highest-order binary bit of an integer (bit 7) is interpreted as the sign bit.
As a result, it is possible to write code in which a non-base 10 number that is out of the range of the <see cref="T:System.SByte"/>
data type is converted to a <see cref="T:System.SByte"/> value without the method throwing an exception.
</remarks>
<seealso cref="M:J2N.Numerics.SByte.Parse(J2N.Text.ICharSequence,System.Int32,System.Int32,System.Int32)"/>
<seealso cref="M:J2N.Numerics.SByte.Parse(System.String,System.Int32)"/>
</member>
<member name="M:J2N.Numerics.SByte.Parse(System.ReadOnlySpan{System.Char},System.Int32)">
<summary>
Parses the <see cref="T:System.ReadOnlySpan`1"/> argument as a <see cref="T:System.SByte"/> in the specified <paramref name="radix"/>.
<para/>
Usage Note: This method is similar to the <see cref="M:System.Convert.ToSByte(System.String,System.Int32)"/> method. It differs in that
it allows the use of the ASCII character \u002d ('-') or \u002B ('+') in any <paramref name="radix"/>.
<para/>
Supports any BMP (Basic Multilingual Plane) or SMP (Supplementary Mulitlingual Plane) digit as defined by Unicode 10.0.
</summary>
<param name="s">The <see cref="T:System.ReadOnlySpan`1"/> containing the <see cref="T:System.SByte"/> representation to be parsed.</param>
<param name="radix">The radix (or base) to use when parsing <paramref name="s"/>. The value must be in the range
<see cref="F:J2N.Character.MinRadix"/> - <see cref="F:J2N.Character.MaxRadix"/> inclusive.</param>
<returns>An 8-bit signed integer that is equivalent to the number in <paramref name="s"/>, or 0 (zero) if
<paramref name="s"/> is <c>null</c>.</returns>
<remarks>
If <paramref name="radix"/> is 16, you can prefix the number specified by the <paramref name="s"/> parameter with "0x" or "0X".
<para/>
To specify a negative value for base (radix) 10 numeric representations, use the ASCII character \u002d ('-').
<para/>
For any other <paramref name="radix"/>, negative values may either be specified with ASCII character \u002d ('-')
(as in Java) or by specifying the two's complement representation (as in .NET), but not both.
In the latter case, the highest-order binary bit of a long integer (bit 7) is interpreted as the sign bit.
As a result, it is possible to write code in which a non-base 10 number that is out of the range of the <see cref="T:System.SByte"/>
data type is converted to a <see cref="T:System.SByte"/> value without the method throwing an exception.
</remarks>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="radix"/> is less than <see cref="F:J2N.Character.MinRadix"/> or greater than <see cref="F:J2N.Character.MaxRadix"/>.
</exception>
<exception cref="T:System.FormatException">
<paramref name="s"/> contains a character that is not a valid digit in the base specified by <paramref name="radix"/>.
The exception message indicates that there are no digits to convert if the first character in <paramref name="s"/> is invalid;
otherwise, the message indicates that <paramref name="s"/> contains invalid trailing characters.
<para/>
-or-
<para/>
<paramref name="s"/> contains only a the ASCII character \u002d ('-') or \u002B ('+') sign and/or hexadecimal
prefix 0X or 0x with no digits.
</exception>
<exception cref="T:System.OverflowException">
<paramref name="s"/> represents a number that is less than <see cref="F:System.SByte.MinValue"/> or greater than <see cref="F:System.SByte.MaxValue"/>.
</exception>
<seealso cref="M:J2N.Numerics.SByte.TryParse(System.ReadOnlySpan{System.Char},System.Int32,System.SByte@)"/>
<seealso cref="M:J2N.Numerics.SByte.Parse(System.ReadOnlySpan{System.Char},System.Int32)"/>
</member>
<member name="M:J2N.Numerics.SByte.Parse(System.String,System.Int32)">
<summary>
Parses the <see cref="T:System.String"/> argument as a <see cref="T:System.SByte"/> in the specified <paramref name="radix"/>.
<para/>
Usage Note: This method is similar to the <see cref="M:System.Convert.ToSByte(System.String,System.Int32)"/> method. It differs in that
it allows the use of the ASCII character \u002d ('-') or \u002B ('+') in any <paramref name="radix"/>.
<para/>
Supports any BMP (Basic Multilingual Plane) or SMP (Supplementary Mulitlingual Plane) digit as defined by Unicode 10.0.
</summary>
<param name="s">The <see cref="T:System.String"/> containing the <see cref="T:System.SByte"/> representation to be parsed.</param>
<param name="radix">The radix (or base) to use when parsing <paramref name="s"/>. The value must be in the range
<see cref="F:J2N.Character.MinRadix"/> - <see cref="F:J2N.Character.MaxRadix"/> inclusive.</param>
<returns>An 8-bit signed integer that is equivalent to the number in <paramref name="s"/>, or 0 (zero) if
<paramref name="s"/> is <c>null</c>.</returns>
<remarks>
If <paramref name="radix"/> is 16, you can prefix the number specified by the <paramref name="s"/> parameter with "0x" or "0X".
<para/>
To specify a negative value for base (radix) 10 numeric representations, use the ASCII character \u002d ('-').
<para/>
For any other <paramref name="radix"/>, negative values may either be specified with ASCII character \u002d ('-')
(as in Java) or by specifying the two's complement representation (as in .NET), but not both.
In the latter case, the highest-order binary bit of a long integer (bit 7) is interpreted as the sign bit.
As a result, it is possible to write code in which a non-base 10 number that is out of the range of the <see cref="T:System.SByte"/>
data type is converted to a <see cref="T:System.SByte"/> value without the method throwing an exception.
</remarks>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="radix"/> is less than <see cref="F:J2N.Character.MinRadix"/> or greater than <see cref="F:J2N.Character.MaxRadix"/>.
</exception>
<exception cref="T:System.FormatException">
<paramref name="s"/> contains a character that is not a valid digit in the base specified by <paramref name="radix"/>.
The exception message indicates that there are no digits to convert if the first character in <paramref name="s"/> is invalid;
otherwise, the message indicates that <paramref name="s"/> contains invalid trailing characters.
<para/>
-or-
<para/>
<paramref name="s"/> contains only a the ASCII character \u002d ('-') or \u002B ('+') sign and/or hexadecimal
prefix 0X or 0x with no digits.
</exception>
<exception cref="T:System.OverflowException">
<paramref name="s"/> represents a number that is less than <see cref="F:System.SByte.MinValue"/> or greater than <see cref="F:System.SByte.MaxValue"/>.
</exception>
<seealso cref="M:J2N.Numerics.SByte.TryParse(System.String,System.Int32,System.SByte@)"/>
<seealso cref="M:J2N.Numerics.SByte.Parse(System.String,System.Int32)"/>
</member>
<member name="M:J2N.Numerics.SByte.TryParse(System.ReadOnlySpan{System.Char},System.Int32,System.SByte@)">
<summary>
Parses the <see cref="T:System.ReadOnlySpan`1"/> argument as a <see cref="T:System.SByte"/> in the specified <paramref name="radix"/>.
<para/>
Usage Note: This method is similar to the <see cref="M:System.Convert.ToSByte(System.String,System.Int32)"/> method. It differs in that it
allows the use of the ASCII character \u002d ('-') or \u002B ('+') in any <paramref name="radix"/> and allows any
<paramref name="radix"/> value from <see cref="F:J2N.Character.MinRadix"/> to <see cref="F:J2N.Character.MaxRadix"/> inclusive.
<para/>
Supports any BMP (Basic Multilingual Plane) or SMP (Supplementary Mulitlingual Plane) digit as defined by Unicode 10.0.
<para/>
Since <see cref="M:J2N.Numerics.SByte.Parse(System.ReadOnlySpan{System.Char},System.Int32)"/> throws many different exception types and in Java they are all normalized to
<c>NumberFormatException</c>, this method can be used to mimic the same behavior by throwing <see cref="T:System.FormatException"/>
when this method returns <c>false</c>.
</summary>
<param name="s">The <see cref="T:System.String"/> containing the <see cref="T:System.SByte"/> representation to be parsed.</param>
<param name="radix">The radix (or base) to use when parsing <paramref name="s"/>. The value must be in the range
<see cref="F:J2N.Character.MinRadix"/> - <see cref="F:J2N.Character.MaxRadix"/> inclusive.</param>
<param name="result">The <see cref="T:System.SByte"/> represented by the subsequence in the specified <paramref name="radix"/>.</param>
<returns><c>true</c> if <paramref name="s"/> was converted successfully; otherwise, <c>false</c>.</returns>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="radix"/> is less than <see cref="F:J2N.Character.MinRadix"/> or greater than <see cref="F:J2N.Character.MaxRadix"/>.
</exception>
<remarks>
If <paramref name="radix"/> is 16, you can prefix the number specified by the <paramref name="s"/> parameter with "0x" or "0X".
<para/>
To specify a negative value for base (radix) 10 numeric representations, use the ASCII character \u002d ('-').
<para/>
For any other <paramref name="radix"/>, negative values may either be specified with ASCII character \u002d ('-')
(as in Java) or by specifying the two's complement representation (as in .NET), but not both.
In the latter case, the highest-order binary bit of an integer (bit 7) is interpreted as the sign bit.
As a result, it is possible to write code in which a non-base 10 number that is out of the range of the <see cref="T:System.SByte"/>
data type is converted to a <see cref="T:System.SByte"/> value without the method throwing an exception.
</remarks>
<seealso cref="M:J2N.Numerics.SByte.Parse(System.ReadOnlySpan{System.Char},System.Int32,System.Int32,System.Int32)"/>
<seealso cref="M:J2N.Numerics.SByte.Parse(System.ReadOnlySpan{System.Char},System.Int32)"/>
</member>
<member name="M:J2N.Numerics.SByte.TryParse(System.String,System.Int32,System.SByte@)">
<summary>
Parses the <see cref="T:System.String"/> argument as a <see cref="T:System.SByte"/> in the specified <paramref name="radix"/>.
<para/>
Usage Note: This method is similar to the <see cref="M:System.Convert.ToSByte(System.String,System.Int32)"/> method. It differs in that it
allows the use of the ASCII character \u002d ('-') or \u002B ('+') in any <paramref name="radix"/> and allows any
<paramref name="radix"/> value from <see cref="F:J2N.Character.MinRadix"/> to <see cref="F:J2N.Character.MaxRadix"/> inclusive.
<para/>
Supports any BMP (Basic Multilingual Plane) or SMP (Supplementary Mulitlingual Plane) digit as defined by Unicode 10.0.
<para/>
Since <see cref="M:J2N.Numerics.SByte.Parse(System.String,System.Int32)"/> throws many different exception types and in Java they are all normalized to
<c>NumberFormatException</c>, this method can be used to mimic the same behavior by throwing <see cref="T:System.FormatException"/>
when this method returns <c>false</c>.
</summary>
<param name="s">The <see cref="T:System.String"/> containing the <see cref="T:System.SByte"/> representation to be parsed.</param>
<param name="radix">The radix (or base) to use when parsing <paramref name="s"/>. The value must be in the range
<see cref="F:J2N.Character.MinRadix"/> - <see cref="F:J2N.Character.MaxRadix"/> inclusive.</param>
<param name="result">The <see cref="T:System.SByte"/> represented by the subsequence in the specified <paramref name="radix"/>.</param>
<returns><c>true</c> if <paramref name="s"/> was converted successfully; otherwise, <c>false</c>.</returns>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="radix"/> is less than <see cref="F:J2N.Character.MinRadix"/> or greater than <see cref="F:J2N.Character.MaxRadix"/>.
</exception>
<remarks>
If <paramref name="radix"/> is 16, you can prefix the number specified by the <paramref name="s"/> parameter with "0x" or "0X".
<para/>
To specify a negative value for base (radix) 10 numeric representations, use the ASCII character \u002d ('-').
<para/>
For any other <paramref name="radix"/>, negative values may either be specified with ASCII character \u002d ('-')
(as in Java) or by specifying the two's complement representation (as in .NET), but not both.
In the latter case, the highest-order binary bit of an integer (bit 7) is interpreted as the sign bit.
As a result, it is possible to write code in which a non-base 10 number that is out of the range of the <see cref="T:System.SByte"/>
data type is converted to a <see cref="T:System.SByte"/> value without the method throwing an exception.
</remarks>
<seealso cref="M:J2N.Numerics.SByte.Parse(System.String,System.Int32,System.Int32,System.Int32)"/>
<seealso cref="M:J2N.Numerics.SByte.Parse(System.String,System.Int32)"/>
</member>
<member name="M:J2N.Numerics.SByte.Parse(System.String,System.IFormatProvider)">
<summary>
Converts the string representation of a number in a specified style and culture-specific format to its <see cref="T:System.SByte"/> equivalent.
</summary>
<param name="s">A string containing the characters representing the value to convert.
The string is interpreted using the <see cref="F:J2N.Globalization.NumberStyle.Integer"/> style.</param>
<param name="provider">An object that supplies culture-specific information about the format of <paramref name="s"/>. If provider is <c>null</c>,
the thread current culture is used.</param>
<returns>A sbyte value that is equivalent to the number contained in <paramref name="s"/>.</returns>
<exception cref="T:System.ArgumentNullException"><paramref name="s"/> is <c>null</c>.</exception>
<exception cref="T:System.FormatException"><paramref name="s"/> is not of the correct format.</exception>
<exception cref="T:System.OverflowException">
<paramref name="s"/> represents a number less than <see cref="F:System.SByte.MinValue"/> or <see cref="F:System.SByte.MaxValue"/>.
</exception>
<remarks>
The s parameter contains a number of the form:
<para/>
[ws][sign]digits[ws]
<para/>
Elements framed in square brackets ([ and ]) are optional. The following table describes each element.
<para/>
<list type="table">
<listheader>
<term>Element</term>
<term>Description</term>
</listheader>
<item>
<term><i>ws</i></term>
<term>A series of white-space characters.</term>
</item>
<item>
<term><i>sign</i></term>
<term>A negative sign symbol (-) or a positive sign symbol (+).</term>
</item>
<item>
<term><i>digits</i></term>
<term>A series of digits ranging from 0 to 9.</term>
</item>
</list>
<para/>
NOTE: Any terminating NUL (U+0000) characters in <paramref name="s"/> are ignored by the parsing operation.
<para/>
The <paramref name="s"/> parameter is interpreted using the <see cref="F:J2N.Globalization.NumberStyle.Integer"/> style. In addition to the sbyte value's
decimal digits, only leading and trailing spaces together with a leading sign are allowed. To explicitly define the style elements
together with the culture-specific formatting information that can be present in <paramref name="s"/>, use the
<see cref="M:J2N.Numerics.SByte.Parse(System.String,J2N.Globalization.NumberStyle,System.IFormatProvider)"/> method.
<para/>
The <paramref name="provider"/> parameter is an <see cref="T:System.IFormatProvider"/> implementation, such as a <see cref="T:System.Globalization.CultureInfo"/> object,
a <see cref="T:System.Globalization.NumberFormatInfo"/> object or a <see cref="T:J2N.Text.StringFormatter"/> object, whose <see cref="M:System.IFormatProvider.GetFormat(System.Type)"/>
method returns a <see cref="T:System.Globalization.NumberFormatInfo"/> object. The <see cref="T:System.Globalization.NumberFormatInfo"/> object provides culture-specific information about
the format of <paramref name="s"/>. When the <see cref="M:J2N.Numerics.SByte.Parse(System.String,System.IFormatProvider)"/> method is invoked, it calls the provider parameter's
<see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> method and passes it a <see cref="T:System.Type"/> object that represents the <see cref="T:System.Globalization.NumberFormatInfo"/> type.
The <see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> method then returns the <see cref="T:System.Globalization.NumberFormatInfo"/> object that provides information about the
format of the <paramref name="s"/> parameter. There are three ways to use the <paramref name="provider"/> parameter to supply custom formatting
information to the parse operation:
<list type="bullet">
<item><description>You can pass a <see cref="T:System.Globalization.CultureInfo"/> object that represents the culture that supplies formatting information. Its
<see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> method returns the <see cref="T:System.Globalization.NumberFormatInfo"/> object that provides numeric formatting
information for that culture.</description></item>
<item><description>You can pass the actual <see cref="T:System.Globalization.NumberFormatInfo"/> object that provides numeric formatting information. (Its
implementation of <see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> just returns itself.)</description></item>
<item><description>You can pass a custom object that implements <see cref="T:System.IFormatProvider"/>. Its <see cref="M:System.IFormatProvider.GetFormat(System.Type)"/>
method instantiates and returns the <see cref="T:System.Globalization.NumberFormatInfo"/> object that provides formatting information.</description></item>
</list>
If <paramref name="provider"/> is <c>null</c> or a <see cref="T:System.Globalization.NumberFormatInfo"/> object cannot be obtained, the <see cref="T:System.Globalization.NumberFormatInfo"/>
object for the current culture is used.
</remarks>
<seealso cref="M:J2N.Numerics.SByte.TryParse(System.String,J2N.Globalization.NumberStyle,System.IFormatProvider,System.SByte@)"/>
</member>
<member name="M:J2N.Numerics.SByte.TryParse(System.String,System.SByte@)">
<summary>
Converts the string representation of a number in a specified style and culture-specific format to its 8-bit signed
integer equivalent. A return value indicates whether the conversion succeeded.
<para/>
Usage Note: When porting from Java, note that this is a culture-sensitive method. Java uses the invariant
culture in the Byte class, so call <see cref="M:J2N.Numerics.SByte.TryParse(System.String,J2N.Globalization.NumberStyle,System.IFormatProvider,System.SByte@)"/>
and pass <see cref="F:J2N.Globalization.NumberStyle.AllowLeadingSign"/> and <see cref="P:System.Globalization.NumberFormatInfo.InvariantInfo"/> to exactly match the Java parsing behavior.
<para/>
Using that overload also allows you to normalize the exception behavior. The <see cref="M:J2N.Numerics.SByte.Parse(System.String,System.IFormatProvider)"/>
method may throw <see cref="T:System.ArgumentNullException"/>, <see cref="T:System.OverflowException"/>, or <see cref="T:System.FormatException"/>,
but Java only ever throws NumberFormatException in any of those cases. Using <see cref="M:J2N.Numerics.SByte.TryParse(System.String,J2N.Globalization.NumberStyle,System.IFormatProvider,System.SByte@)"/>
means a <see cref="T:System.FormatException"/> can be thrown in any of those error condtions when it returns <c>false</c>.
</summary>
<param name="s">A string containing the characters that represent the number to convert.</param>
<param name="result">When this method returns, contains the 8-bit signed integer value equivalent of
the number contained in <paramref name="s"/>, if the conversion succeeded, or zero if the conversion failed.
The conversion fails if the s parameter is <c>null</c> or <see cref="F:System.String.Empty"/>, is not of the correct format,
or represents a number less than <see cref="F:System.SByte.MinValue"/> or greater than <see cref="F:System.SByte.MaxValue"/>. This parameter
is passed uninitialized; any value originally supplied in <paramref name="result"/> will be overwritten.</param>
<returns><c>true</c> if <paramref name="s"/> was converted successfully; otherwise, <c>false</c>.</returns>
<remarks>
The <see cref="M:J2N.Numerics.SByte.TryParse(System.String,System.SByte@)"/> method is like the <see cref="M:J2N.Numerics.SByte.Parse(System.String,J2N.Globalization.NumberStyle,System.IFormatProvider)"/> method,
except the <see cref="M:J2N.Numerics.SByte.TryParse(System.String,System.SByte@)"/> method does not throw an exception if the
conversion fails. It eliminates the need to use exception handling to test for a <see cref="T:System.FormatException"/>
in the event that <paramref name="s"/> is invalid and cannot be successfully parsed.
<para/>
The <paramref name="s"/> parameter contains a number of the form:
<code>
[ws][sign]digits[ws]
</code>
Items in square brackets ([ and ]) are optional. The following table describes each element.
<list type="table">
<listheader>
<term>Element</term>
<term>Description</term>
</listheader>
<item>
<term><i>ws</i></term>
<term>Optional white space.</term>
</item>
<item>
<term><i>sign</i></term>
<term>An optional sign.</term>
</item>
<item>
<term><i>digits</i></term>
<term>A sequence of digits ranging from 0 to 9.</term>
</item>
</list>
<para/>
The <paramref name="s"/> parameter is interpreted using the <see cref="F:J2N.Globalization.NumberStyle.Integer"/> style.
In addition to the decimal digits, only leading and trailing spaces together with a leading sign are
allowed. To explicitly define the style elements together with the culture-specific formatting
information that can be present in <paramref name="s"/>, use the <see cref="M:J2N.Numerics.SByte.TryParse(System.String,J2N.Globalization.NumberStyle,System.IFormatProvider,System.SByte@)"/> method.
<para/>
The <paramref name="s"/> parameter is parsed using the formatting information in a <see cref="T:System.Globalization.NumberFormatInfo"/>
object initialized for the current system culture. For more information, see <see cref="P:System.Globalization.NumberFormatInfo.CurrentInfo"/>.
<para/>
This overload of the <see cref="M:J2N.Numerics.SByte.TryParse(System.String,System.SByte@)"/> method interprets all digits in the <paramref name="s"/> parameter
as decimal digits. To parse the string representation of a hexadecimal number, call the
<see cref="M:J2N.Numerics.SByte.TryParse(System.String,J2N.Globalization.NumberStyle,System.IFormatProvider,System.SByte@)"/> overload.
</remarks>
<seealso cref="M:J2N.Numerics.SByte.Parse(System.String,System.IFormatProvider)"/>
<seealso cref="M:J2N.Numerics.SByte.TryParse(System.String,J2N.Globalization.NumberStyle,System.IFormatProvider,System.SByte@)"/>
<seealso cref="M:J2N.Numerics.Number.ToString"/>
</member>
<member name="M:J2N.Numerics.SByte.TryParse(System.ReadOnlySpan{System.Char},System.SByte@)">
<summary>
Converts the span representation of a number in a specified style and culture-specific format to its 8-bit signed
integer equivalent. A return value indicates whether the conversion succeeded.
<para/>
Usage Note: When porting from Java, note that this is a culture-sensitive method. Java uses the invariant
culture in the Byte class, so call <see cref="M:J2N.Numerics.SByte.TryParse(System.ReadOnlySpan{System.Char},J2N.Globalization.NumberStyle,System.IFormatProvider,System.SByte@)"/>
and pass <see cref="F:J2N.Globalization.NumberStyle.AllowLeadingSign"/> and <see cref="P:System.Globalization.NumberFormatInfo.InvariantInfo"/> to exactly match the Java parsing behavior.
<para/>
Using that overload also allows you to normalize the exception behavior. The <see cref="M:J2N.Numerics.SByte.Parse(System.String,System.IFormatProvider)"/>
method may throw <see cref="T:System.ArgumentNullException"/>, <see cref="T:System.OverflowException"/>, or <see cref="T:System.FormatException"/>,
but Java only ever throws NumberFormatException in any of those cases. Using <see cref="M:J2N.Numerics.SByte.TryParse(System.ReadOnlySpan{System.Char},J2N.Globalization.NumberStyle,System.IFormatProvider,System.SByte@)"/>
means a <see cref="T:System.FormatException"/> can be thrown in any of those error condtions when it returns <c>false</c>.
</summary>
<param name="s">A span containing the characters that represent the number to convert.</param>
<param name="result">When this method returns, contains the 8-bit signed integer value equivalent of
the number contained in <paramref name="s"/>, if the conversion succeeded, or zero if the conversion failed.
The conversion fails if the s parameter is <c>null</c> or <see cref="F:System.String.Empty"/>, is not of the correct format,
or represents a number less than <see cref="F:System.SByte.MinValue"/> or greater than <see cref="F:System.SByte.MaxValue"/>. This parameter
is passed uninitialized; any value originally supplied in <paramref name="result"/> will be overwritten.</param>
<returns><c>true</c> if <paramref name="s"/> was converted successfully; otherwise, <c>false</c>.</returns>
<remarks>
The <see cref="M:J2N.Numerics.SByte.TryParse(System.ReadOnlySpan{System.Char},System.SByte@)"/> method is like the <see cref="M:J2N.Numerics.SByte.Parse(System.ReadOnlySpan{System.Char},J2N.Globalization.NumberStyle,System.IFormatProvider)"/> method,
except the <see cref="M:J2N.Numerics.SByte.TryParse(System.ReadOnlySpan{System.Char},System.SByte@)"/> method does not throw an exception if the
conversion fails. It eliminates the need to use exception handling to test for a <see cref="T:System.FormatException"/>
in the event that <paramref name="s"/> is invalid and cannot be successfully parsed.
<para/>
The <paramref name="s"/> parameter contains a number of the form:
<code>
[ws][sign]digits[ws]
</code>
Items in square brackets ([ and ]) are optional. The following table describes each element.
<list type="table">
<listheader>
<term>Element</term>
<term>Description</term>
</listheader>
<item>
<term><i>ws</i></term>
<term>Optional white space.</term>
</item>
<item>
<term><i>sign</i></term>
<term>An optional sign.</term>
</item>
<item>
<term><i>digits</i></term>
<term>A sequence of digits ranging from 0 to 9.</term>
</item>
</list>
<para/>
The <paramref name="s"/> parameter is interpreted using the <see cref="F:J2N.Globalization.NumberStyle.Integer"/> style.
In addition to the decimal digits, only leading and trailing spaces together with a leading sign are
allowed. To explicitly define the style elements together with the culture-specific formatting
information that can be present in <paramref name="s"/>, use the <see cref="M:J2N.Numerics.SByte.TryParse(System.ReadOnlySpan{System.Char},J2N.Globalization.NumberStyle,System.IFormatProvider,System.SByte@)"/> method.
<para/>
The <paramref name="s"/> parameter is parsed using the formatting information in a <see cref="T:System.Globalization.NumberFormatInfo"/>
object initialized for the current system culture. For more information, see <see cref="P:System.Globalization.NumberFormatInfo.CurrentInfo"/>.
<para/>
This overload of the <see cref="M:J2N.Numerics.SByte.TryParse(System.ReadOnlySpan{System.Char},System.SByte@)"/> method interprets all digits in the <paramref name="s"/> parameter
as decimal digits. To parse the string representation of a hexadecimal number, call the
<see cref="M:J2N.Numerics.SByte.TryParse(System.ReadOnlySpan{System.Char},J2N.Globalization.NumberStyle,System.IFormatProvider,System.SByte@)"/> overload.
</remarks>
<seealso cref="M:J2N.Numerics.SByte.Parse(System.ReadOnlySpan{System.Char},J2N.Globalization.NumberStyle,System.IFormatProvider)"/>
<seealso cref="M:J2N.Numerics.SByte.TryParse(System.String,System.SByte@)"/>
<seealso cref="M:J2N.Numerics.Number.ToString"/>
</member>
<member name="M:J2N.Numerics.SByte.Parse(System.String,J2N.Globalization.NumberStyle,System.IFormatProvider)">
<summary>
Converts the string representation of a number in a specified style and culture-specific format to its <see cref="T:System.SByte"/> equivalent.
</summary>
<param name="s">A string containing the characters representing the value to convert.</param>
<param name="style">A bitwise combination of enumeration values that indicates the style elements that can be present in <paramref name="s"/>.
A typical value to specify is <see cref="F:J2N.Globalization.NumberStyle.Integer"/>.</param>
<param name="provider">An object that supplies culture-specific information about the format of <paramref name="s"/>. If provider is <c>null</c>,
the thread current culture is used.</param>
<returns>A sbyte value that is equivalent to the number contained in <paramref name="s"/>.</returns>
<exception cref="T:System.ArgumentNullException"><paramref name="s"/> is <c>null</c>.</exception>
<exception cref="T:System.FormatException"><paramref name="s"/> is not of the correct format.</exception>
<exception cref="T:System.OverflowException">
<paramref name="s"/> represents a number less than <see cref="F:System.SByte.MinValue"/> or <see cref="F:System.SByte.MaxValue"/>.
<para/>
-or-
<para/>
<paramref name="s"/> includes non-zero, fractional digits.
</exception>
<exception cref="T:System.ArgumentException">
<paramref name="style"/> is not a <see cref="T:J2N.Globalization.NumberStyle"/> value.
<para/>
-or-
<para/>
<paramref name="style"/> is not a combination of <see cref="F:J2N.Globalization.NumberStyle.AllowHexSpecifier"/> and <see cref="F:J2N.Globalization.NumberStyle.HexNumber"/> values.
</exception>
<remarks>
The <paramref name="style"/> parameter defines the style elements (such as white space or the positive sign) that are allowed in the
<paramref name="s"/> parameter for the parse operation to succeed. It must be a combination of bit flags from the <see cref="T:J2N.Globalization.NumberStyle"/>
enumeration. Depending on the value of <paramref name="style"/>, the <paramref name="s"/> parameter may include the following elements:
<para/>
[ws][$][sign]digits[.fractional-digits][e[sign]exponential-digits][type][ws]
<para/>
Or, if the <paramref name="style"/> parameter includes <see cref="F:J2N.Globalization.NumberStyle.AllowHexSpecifier"/>:
<para/>
[ws][0x]hexdigits[hextype][ws]
<para/>
Elements framed in square brackets ([ and ]) are optional. The following table describes each element.
<para/>
<list type="table">
<listheader>
<term>Element</term>
<term>Description</term>
</listheader>
<item>
<term><i>ws</i></term>
<term>A series of white-space characters. White space can appear at the beginning of <paramref name="s"/> if style includes the
<see cref="F:J2N.Globalization.NumberStyle.AllowLeadingWhite"/> flag, and it can appear at the end of <paramref name="s"/> if style includes the
<see cref="F:J2N.Globalization.NumberStyle.AllowTrailingWhite"/> flag.</term>
</item>
<item>
<term><i>$</i></term>
<term>A culture-specific currency symbol. Its position in the string is defined by the <see cref="P:System.Globalization.NumberFormatInfo.CurrencyNegativePattern"/>
and <see cref="P:System.Globalization.NumberFormatInfo.CurrencyPositivePattern"/> properties of the <see cref="T:System.Globalization.NumberFormatInfo"/> object returned by the
<see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> method of the <paramref name="provider"/> parameter. The current culture's currency symbol can
appear in <paramref name="s"/> if style includes the <see cref="F:J2N.Globalization.NumberStyle.AllowCurrencySymbol"/> flag.</term>
</item>
<item>
<term><i>sign</i></term>
<term>A negative sign symbol (-) or a positive sign symbol (+). The sign can appear at the beginning of <paramref name="s"/> if
<paramref name="style"/> includes the <see cref="F:J2N.Globalization.NumberStyle.AllowLeadingSign"/> flag, and it can appear at the end of <paramref name="s"/>
if <paramref name="style"/> includes the <see cref="F:J2N.Globalization.NumberStyle.AllowTrailingSign"/> flag. Parentheses can be used in <paramref name="s"/>
to indicate a negative value if <paramref name="style"/> includes the <see cref="F:J2N.Globalization.NumberStyle.AllowParentheses"/> flag.</term>
</item>
<item>
<term><i>digits</i></term>
<term>A series of digits ranging from 0 to 9.</term>
</item>
<item>
<term><i>.</i></term>
<term>A culture-specific decimal point symbol. The decimal point symbol of the culture specified by <paramref name="provider"/>
can appear in <paramref name="s"/> if <paramref name="style"/> includes the <see cref="F:J2N.Globalization.NumberStyle.AllowDecimalPoint"/> flag.</term>
</item>
<item>
<term><i>fractional-digits</i>
</term>
<term>A series of digits ranging from 0 to 9 that specify the fractional part of the number. Fractional digits can appear in
<paramref name="s"/> if <paramref name="style"/> includes the <see cref="F:J2N.Globalization.NumberStyle.AllowDecimalPoint"/> flag.</term>
</item>
<item>
<term><i>e</i></term>
<term>The 'e' or 'E' character, which indicates that the value is represented in exponential notation. The <paramref name="s"/>
parameter can represent a number in exponential notation if <paramref name="style"/> includes the <see cref="F:J2N.Globalization.NumberStyle.AllowExponent"/> flag.</term>
</item>
<item>
<term><i>exponential-digits</i></term>
<term>A sequence of decimal digits from 0 through 9 that specify an exponent.</term>
</item>
<item>
<term><i>0x</i>/></term>
<term>The '0x' or '0X' characters, which indicate a hexadecimal number is to immediately follow.</term>
</item>
<item>
<term><i>hexdigits</i></term>
<term>A sequence of hexadecimal digits from 0 through f, or 0 through F. Hexadecimal digits can appear in <paramref name="s"/>
if <paramref name="style"/> includes the <see cref="F:J2N.Globalization.NumberStyle.AllowHexSpecifier"/> flag.</term>
</item>
<item>
<term><i>type</i></term>
<term>The 'UL', 'Ul', 'uL', 'ul', 'LU', 'Lu', 'lU', or 'lu', which is the
<a href="https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/language-specification/lexical-structure#6453-integer-literals">integral type suffix</a>
or 'f', 'F', 'd', 'D', 'm' or 'M' character, which is the
<a href="https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/language-specification/lexical-structure#6454-real-literals">real type suffix</a>
of the number as specified in the C# language specification. The type suffix can appear in <paramref name="s"/> if <paramref name="style"/>
includes the <see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/> flag.</term>
</item>
<item>
<term><i>hextype</i></term>
<term>The 'UL', 'Ul', 'uL', 'ul', 'LU', 'Lu', 'lU', or 'lu', which is the
<a href="https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/language-specification/lexical-structure#6453-integer-literals">integral type suffix</a>
of the number as specified in the C# language specification. The type suffix can appear in <paramref name="s"/> if <paramref name="style"/>
includes the <see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/> flag. Real type suffixes are not supported.</term>
</item>
</list>
<para/>
NOTE: Any terminating NUL (U+0000) characters in <paramref name="s"/> are ignored by the parsing operation, regardless of
the value of the <paramref name="style"/> argument.
<para/>
A string with decimal digits only (which corresponds to the <see cref="F:J2N.Globalization.NumberStyle.None"/> flag) always parses successfully.
Most of the remaining <see cref="T:J2N.Globalization.NumberStyle"/> members control elements that may be but are not required to be present in
this input string. The following table indicates how individual <see cref="T:J2N.Globalization.NumberStyle"/> members affect the elements that may
be present in <paramref name="s"/>.
<list type="table">
<listheader>
<term>Non-composite NumberStyle values</term>
<term>Elements permitted in <paramref name="s"/> in addition to digits</term>
</listheader>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.None"/></term>
<term>Decimal digits only.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowDecimalPoint"/></term>
<term>The decimal point (.) and <i>fractional-digits</i> elements. However, <i>fractional-digits</i> must consist
of only one or more 0 digits or the method returns <c>false</c>.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowExponent"/></term>
<term>The <paramref name="s"/> parameter can also use exponential notation. If <paramref name="s"/> represents a
number in exponential notation, it must represent an integer within the range of the <see cref="T:System.SByte"/> data type
without a non-zero, fractional component.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowLeadingWhite"/></term>
<term>The <i>ws</i> element at the beginning of <paramref name="s"/>.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowTrailingWhite"/></term>
<term>The <i>ws</i> element at the end of <paramref name="s"/>.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowLeadingSign"/></term>
<term>A sign can appear before <i>digits</i>.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowTrailingSign"/></term>
<term>A sign can appear after <i>digits</i>.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowParentheses"/></term>
<term>The <i>sign</i> element in the form of parentheses enclosing the numeric value.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowThousands"/></term>
<term>The thousands separator (,) element.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowCurrencySymbol"/></term>
<term>The <i>$</i> element.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/></term>
<term>The literal <i>type</i> suffix used in the literal identifier syntax of C# (suffixed with one of
'D', 'd', 'F', 'f', 'M', 'm', 'L', 'l', 'U', 'u', 'UL', 'ul', 'LU', or 'lu').</term>
</item>
</list>
<para/>
The <see cref="T:J2N.Globalization.NumberStyle"/> enum can be converted to the .NET <see cref="T:System.Globalization.NumberStyles"/> enum by using the
<see cref="M:J2N.Globalization.NumberStyleExtensions.ToNumberStyles(J2N.Globalization.NumberStyle)"/> extension method.
Similarly, <see cref="T:System.Globalization.NumberStyles"/> enum can be converted to the J2N <see cref="T:J2N.Globalization.NumberStyle"/> enum by using
the <see cref="M:J2N.Globalization.NumberStyleExtensions.ToNumberStyle(System.Globalization.NumberStyles)"/> extension method.
<para/>
If the <see cref="F:J2N.Globalization.NumberStyle.AllowHexSpecifier"/> flag is used, <paramref name="s"/> must be a hexadecimal value with or without a <c>0x</c> prefix.
For example, "F3" and "0xF3" both parse successfully. The only other flags that can be present in <paramref name="style"/> are
<see cref="F:J2N.Globalization.NumberStyle.AllowLeadingWhite"/>, <see cref="F:J2N.Globalization.NumberStyle.AllowTrailingWhite"/> and <see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/>.
(The <see cref="T:J2N.Globalization.NumberStyle"/> enumeration has a composite number style, <see cref="F:J2N.Globalization.NumberStyle.HexNumber"/>, that includes both white space
flags.)
The <see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/> only allows 'L', 'l', 'U', 'u', 'UL', 'ul', 'LU', or 'lu' for hexadecimal numbers.
<para/>
The <paramref name="provider"/> parameter is an <see cref="T:System.IFormatProvider"/> implementation, such as a <see cref="T:System.Globalization.CultureInfo"/> object,
a <see cref="T:System.Globalization.NumberFormatInfo"/> object or a <see cref="T:J2N.Text.StringFormatter"/> object, whose <see cref="M:System.IFormatProvider.GetFormat(System.Type)"/>
method returns a <see cref="T:System.Globalization.NumberFormatInfo"/> object. The <see cref="T:System.Globalization.NumberFormatInfo"/> object provides culture-specific information about
the format of <paramref name="s"/>. When the <see cref="M:J2N.Numerics.SByte.Parse(System.String,System.IFormatProvider)"/> method is invoked, it calls the provider parameter's
<see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> method and passes it a <see cref="T:System.Type"/> object that represents the <see cref="T:System.Globalization.NumberFormatInfo"/> type.
The <see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> method then returns the <see cref="T:System.Globalization.NumberFormatInfo"/> object that provides information about the
format of the <paramref name="s"/> parameter. There are three ways to use the <paramref name="provider"/> parameter to supply custom formatting
information to the parse operation:
<list type="bullet">
<item><description>You can pass a <see cref="T:System.Globalization.CultureInfo"/> object that represents the culture that supplies formatting information. Its
<see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> method returns the <see cref="T:System.Globalization.NumberFormatInfo"/> object that provides numeric formatting
information for that culture.</description></item>
<item><description>You can pass the actual <see cref="T:System.Globalization.NumberFormatInfo"/> object that provides numeric formatting information. (Its
implementation of <see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> just returns itself.)</description></item>
<item><description>You can pass a custom object that implements <see cref="T:System.IFormatProvider"/>. Its <see cref="M:System.IFormatProvider.GetFormat(System.Type)"/>
method instantiates and returns the <see cref="T:System.Globalization.NumberFormatInfo"/> object that provides formatting information.</description></item>
</list>
If <paramref name="provider"/> is <c>null</c> or a <see cref="T:System.Globalization.NumberFormatInfo"/> object cannot be obtained, the <see cref="T:System.Globalization.NumberFormatInfo"/>
object for the current culture is used.
</remarks>
<seealso cref="M:J2N.Numerics.SByte.TryParse(System.String,J2N.Globalization.NumberStyle,System.IFormatProvider,System.SByte@)"/>
</member>
<member name="M:J2N.Numerics.SByte.Parse(System.ReadOnlySpan{System.Char},J2N.Globalization.NumberStyle,System.IFormatProvider)">
<summary>
Converts the span representation of a number in a specified style and culture-specific format to its <see cref="T:System.SByte"/> equivalent.
</summary>
<param name="s">A span containing the characters representing the value to convert.</param>
<param name="style">A bitwise combination of enumeration values that indicates the style elements that can be present in <paramref name="s"/>.
A typical value to specify is <see cref="F:J2N.Globalization.NumberStyle.Integer"/>.</param>
<param name="provider">An object that supplies culture-specific information about the format of <paramref name="s"/>. If provider is <c>null</c>,
the thread current culture is used.</param>
<returns>A sbyte value that is equivalent to the number contained in <paramref name="s"/>.</returns>
<exception cref="T:System.FormatException"><paramref name="s"/> is not of the correct format.</exception>
<exception cref="T:System.OverflowException">
<paramref name="s"/> represents a number less than <see cref="F:System.SByte.MinValue"/> or <see cref="F:System.SByte.MaxValue"/>.
<para/>
-or-
<para/>
<paramref name="s"/> includes non-zero, fractional digits.
</exception>
<exception cref="T:System.ArgumentException">
<paramref name="style"/> is not a <see cref="T:J2N.Globalization.NumberStyle"/> value.
<para/>
-or-
<para/>
<paramref name="style"/> is not a combination of <see cref="F:J2N.Globalization.NumberStyle.AllowHexSpecifier"/> and <see cref="F:J2N.Globalization.NumberStyle.HexNumber"/> values.
</exception>
<remarks>
The <paramref name="style"/> parameter defines the style elements (such as white space or the positive sign) that are allowed in the
<paramref name="s"/> parameter for the parse operation to succeed. It must be a combination of bit flags from the <see cref="T:J2N.Globalization.NumberStyle"/>
enumeration. Depending on the value of <paramref name="style"/>, the <paramref name="s"/> parameter may include the following elements:
<para/>
[ws][$][sign]digits[.fractional-digits][e[sign]exponential-digits][type][ws]
<para/>
Or, if the <paramref name="style"/> parameter includes <see cref="F:J2N.Globalization.NumberStyle.AllowHexSpecifier"/>:
<para/>
[ws][0x]hexdigits[hextype][ws]
<para/>
Elements framed in square brackets ([ and ]) are optional. The following table describes each element.
<para/>
<list type="table">
<listheader>
<term>Element</term>
<term>Description</term>
</listheader>
<item>
<term><i>ws</i></term>
<term>A series of white-space characters. White space can appear at the beginning of <paramref name="s"/> if style includes the
<see cref="F:J2N.Globalization.NumberStyle.AllowLeadingWhite"/> flag, and it can appear at the end of <paramref name="s"/> if style includes the
<see cref="F:J2N.Globalization.NumberStyle.AllowTrailingWhite"/> flag.</term>
</item>
<item>
<term><i>$</i></term>
<term>A culture-specific currency symbol. Its position in the string is defined by the <see cref="P:System.Globalization.NumberFormatInfo.CurrencyNegativePattern"/>
and <see cref="P:System.Globalization.NumberFormatInfo.CurrencyPositivePattern"/> properties of the <see cref="T:System.Globalization.NumberFormatInfo"/> object returned by the
<see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> method of the <paramref name="provider"/> parameter. The current culture's currency symbol can
appear in <paramref name="s"/> if style includes the <see cref="F:J2N.Globalization.NumberStyle.AllowCurrencySymbol"/> flag.</term>
</item>
<item>
<term><i>sign</i></term>
<term>A negative sign symbol (-) or a positive sign symbol (+). The sign can appear at the beginning of <paramref name="s"/> if
<paramref name="style"/> includes the <see cref="F:J2N.Globalization.NumberStyle.AllowLeadingSign"/> flag, and it can appear at the end of <paramref name="s"/>
if <paramref name="style"/> includes the <see cref="F:J2N.Globalization.NumberStyle.AllowTrailingSign"/> flag. Parentheses can be used in <paramref name="s"/>
to indicate a negative value if <paramref name="style"/> includes the <see cref="F:J2N.Globalization.NumberStyle.AllowParentheses"/> flag.</term>
</item>
<item>
<term><i>digits</i></term>
<term>A series of digits ranging from 0 to 9.</term>
</item>
<item>
<term><i>.</i></term>
<term>A culture-specific decimal point symbol. The decimal point symbol of the culture specified by <paramref name="provider"/>
can appear in <paramref name="s"/> if <paramref name="style"/> includes the <see cref="F:J2N.Globalization.NumberStyle.AllowDecimalPoint"/> flag.</term>
</item>
<item>
<term><i>fractional-digits</i>
</term>
<term>A series of digits ranging from 0 to 9 that specify the fractional part of the number. Fractional digits can appear in
<paramref name="s"/> if <paramref name="style"/> includes the <see cref="F:J2N.Globalization.NumberStyle.AllowDecimalPoint"/> flag.</term>
</item>
<item>
<term><i>e</i></term>
<term>The 'e' or 'E' character, which indicates that the value is represented in exponential notation. The <paramref name="s"/>
parameter can represent a number in exponential notation if <paramref name="style"/> includes the <see cref="F:J2N.Globalization.NumberStyle.AllowExponent"/> flag.</term>
</item>
<item>
<term><i>exponential-digits</i></term>
<term>A sequence of decimal digits from 0 through 9 that specify an exponent.</term>
</item>
<item>
<term><i>0x</i>/></term>
<term>The '0x' or '0X' characters, which indicate a hexadecimal number is to immediately follow.</term>
</item>
<item>
<term><i>hexdigits</i></term>
<term>A sequence of hexadecimal digits from 0 through f, or 0 through F. Hexadecimal digits can appear in <paramref name="s"/>
if <paramref name="style"/> includes the <see cref="F:J2N.Globalization.NumberStyle.AllowHexSpecifier"/> flag.</term>
</item>
<item>
<term><i>type</i></term>
<term>The 'UL', 'Ul', 'uL', 'ul', 'LU', 'Lu', 'lU', or 'lu', which is the
<a href="https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/language-specification/lexical-structure#6453-integer-literals">integral type suffix</a>
or 'f', 'F', 'd', 'D', 'm' or 'M' character, which is the
<a href="https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/language-specification/lexical-structure#6454-real-literals">real type suffix</a>
of the number as specified in the C# language specification. The type suffix can appear in <paramref name="s"/> if <paramref name="style"/>
includes the <see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/> flag.</term>
</item>
<item>
<term><i>hextype</i></term>
<term>The 'UL', 'Ul', 'uL', 'ul', 'LU', 'Lu', 'lU', or 'lu', which is the
<a href="https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/language-specification/lexical-structure#6453-integer-literals">integral type suffix</a>
of the number as specified in the C# language specification. The type suffix can appear in <paramref name="s"/> if <paramref name="style"/>
includes the <see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/> flag. Real type suffixes are not supported.</term>
</item>
</list>
<para/>
NOTE: Any terminating NUL (U+0000) characters in <paramref name="s"/> are ignored by the parsing operation, regardless of
the value of the <paramref name="style"/> argument.
<para/>
A string with decimal digits only (which corresponds to the <see cref="F:J2N.Globalization.NumberStyle.None"/> flag) always parses successfully.
Most of the remaining <see cref="T:J2N.Globalization.NumberStyle"/> members control elements that may be but are not required to be present in
this input string. The following table indicates how individual <see cref="T:J2N.Globalization.NumberStyle"/> members affect the elements that may
be present in <paramref name="s"/>.
<list type="table">
<listheader>
<term>Non-composite NumberStyle values</term>
<term>Elements permitted in <paramref name="s"/> in addition to digits</term>
</listheader>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.None"/></term>
<term>Decimal digits only.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowDecimalPoint"/></term>
<term>The decimal point (.) and <i>fractional-digits</i> elements. However, <i>fractional-digits</i> must consist
of only one or more 0 digits or the method returns <c>false</c>.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowExponent"/></term>
<term>The <paramref name="s"/> parameter can also use exponential notation. If <paramref name="s"/> represents a
number in exponential notation, it must represent an integer within the range of the <see cref="T:System.SByte"/> data type
without a non-zero, fractional component.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowLeadingWhite"/></term>
<term>The <i>ws</i> element at the beginning of <paramref name="s"/>.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowTrailingWhite"/></term>
<term>The <i>ws</i> element at the end of <paramref name="s"/>.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowLeadingSign"/></term>
<term>A sign can appear before <i>digits</i>.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowTrailingSign"/></term>
<term>A sign can appear after <i>digits</i>.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowParentheses"/></term>
<term>The <i>sign</i> element in the form of parentheses enclosing the numeric value.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowThousands"/></term>
<term>The thousands separator (,) element.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowCurrencySymbol"/></term>
<term>The <i>$</i> element.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/></term>
<term>The literal <i>type</i> suffix used in the literal identifier syntax of C# (suffixed with one of
'D', 'd', 'F', 'f', 'M', 'm', 'L', 'l', 'U', 'u', 'UL', 'ul', 'LU', or 'lu').</term>
</item>
</list>
<para/>
The <see cref="T:J2N.Globalization.NumberStyle"/> enum can be converted to the .NET <see cref="T:System.Globalization.NumberStyles"/> enum by using the
<see cref="M:J2N.Globalization.NumberStyleExtensions.ToNumberStyles(J2N.Globalization.NumberStyle)"/> extension method.
Similarly, <see cref="T:System.Globalization.NumberStyles"/> enum can be converted to the J2N <see cref="T:J2N.Globalization.NumberStyle"/> enum by using
the <see cref="M:J2N.Globalization.NumberStyleExtensions.ToNumberStyle(System.Globalization.NumberStyles)"/> extension method.
<para/>
If the <see cref="F:J2N.Globalization.NumberStyle.AllowHexSpecifier"/> flag is used, <paramref name="s"/> must be a hexadecimal value with or without a <c>0x</c> prefix.
For example, "F3" and "0xF3" both parse successfully. The only other flags that can be present in <paramref name="style"/> are
<see cref="F:J2N.Globalization.NumberStyle.AllowLeadingWhite"/>, <see cref="F:J2N.Globalization.NumberStyle.AllowTrailingWhite"/> and <see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/>.
(The <see cref="T:J2N.Globalization.NumberStyle"/> enumeration has a composite number style, <see cref="F:J2N.Globalization.NumberStyle.HexNumber"/>, that includes both white space
flags.)
The <see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/> only allows 'L', 'l', 'U', 'u', 'UL', 'ul', 'LU', or 'lu' for hexadecimal numbers.
<para/>
The <paramref name="provider"/> parameter is an <see cref="T:System.IFormatProvider"/> implementation, such as a <see cref="T:System.Globalization.CultureInfo"/> object,
a <see cref="T:System.Globalization.NumberFormatInfo"/> object or a <see cref="T:J2N.Text.StringFormatter"/> object, whose <see cref="M:System.IFormatProvider.GetFormat(System.Type)"/>
method returns a <see cref="T:System.Globalization.NumberFormatInfo"/> object. The <see cref="T:System.Globalization.NumberFormatInfo"/> object provides culture-specific information about
the format of <paramref name="s"/>. When the <see cref="M:J2N.Numerics.SByte.Parse(System.String,System.IFormatProvider)"/> method is invoked, it calls the provider parameter's
<see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> method and passes it a <see cref="T:System.Type"/> object that represents the <see cref="T:System.Globalization.NumberFormatInfo"/> type.
The <see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> method then returns the <see cref="T:System.Globalization.NumberFormatInfo"/> object that provides information about the
format of the <paramref name="s"/> parameter. There are three ways to use the <paramref name="provider"/> parameter to supply custom formatting
information to the parse operation:
<list type="bullet">
<item><description>You can pass a <see cref="T:System.Globalization.CultureInfo"/> object that represents the culture that supplies formatting information. Its
<see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> method returns the <see cref="T:System.Globalization.NumberFormatInfo"/> object that provides numeric formatting
information for that culture.</description></item>
<item><description>You can pass the actual <see cref="T:System.Globalization.NumberFormatInfo"/> object that provides numeric formatting information. (Its
implementation of <see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> just returns itself.)</description></item>
<item><description>You can pass a custom object that implements <see cref="T:System.IFormatProvider"/>. Its <see cref="M:System.IFormatProvider.GetFormat(System.Type)"/>
method instantiates and returns the <see cref="T:System.Globalization.NumberFormatInfo"/> object that provides formatting information.</description></item>
</list>
If <paramref name="provider"/> is <c>null</c> or a <see cref="T:System.Globalization.NumberFormatInfo"/> object cannot be obtained, the <see cref="T:System.Globalization.NumberFormatInfo"/>
object for the current culture is used.
</remarks>
<seealso cref="M:J2N.Numerics.SByte.TryParse(System.ReadOnlySpan{System.Char},J2N.Globalization.NumberStyle,System.IFormatProvider,System.SByte@)"/>
</member>
<member name="M:J2N.Numerics.SByte.TryParse(System.String,J2N.Globalization.NumberStyle,System.IFormatProvider,System.SByte@)">
<summary>
Converts the span representation of a number in a specified style and culture-specific format to its 8-bit signed integer equivalent.
A return value indicates whether the conversion succeeded.
<para/>
Usage Note: To exactly match Java, use <see cref="F:J2N.Globalization.NumberStyle.AllowLeadingSign"/> for <paramref name="style"/> and
<see cref="P:System.Globalization.NumberFormatInfo.InvariantInfo"/> for <paramref name="provider"/>. We recommend factoring out
exceptions when parsing, but if the Java code depends on exceptions, throw <see cref="T:System.FormatException"/>
when this method returns <c>false</c>.
</summary>
<param name="s">A span containing the characters that represent the number to convert. The span is interpreted using
the style specified by <paramref name="style"/>.</param>
<param name="style">A bitwise combination of enumeration values that indicates the style elements that can be present in <paramref name="s"/>.
A typical value to specify is <see cref="F:J2N.Globalization.NumberStyle.Integer"/>.</param>
<param name="provider">An object that supplies culture-specific formatting information about <paramref name="s"/>.</param>
<param name="result">When this method returns, contains the 8-bit signed integer value equivalent of
the number contained in <paramref name="s"/>, if the conversion succeeded, or zero if the conversion failed.
The conversion fails if the s parameter is <c>null</c> or <see cref="F:System.String.Empty"/>, is not of the correct format,
or represents a number less than <see cref="F:System.SByte.MinValue"/> or greater than <see cref="F:System.SByte.MaxValue"/>. This parameter
is passed uninitialized; any value originally supplied in <paramref name="result"/> will be overwritten.</param>
<returns><c>true</c> if <paramref name="s"/> was converted successfully; otherwise, <c>false</c>.</returns>
<exception cref="T:System.ArgumentException">
<paramref name="style"/> is not a <see cref="T:J2N.Globalization.NumberStyle"/> value.
<para/>
-or-
<para/>
<paramref name="style"/> is not a combination of <see cref="F:J2N.Globalization.NumberStyle.AllowHexSpecifier"/> and <see cref="F:J2N.Globalization.NumberStyle.HexNumber"/> values.
</exception>
<remarks>
The <see cref="M:J2N.Numerics.SByte.TryParse(System.String,J2N.Globalization.NumberStyle,System.IFormatProvider,System.SByte@)"/> method is like the <see cref="M:J2N.Numerics.SByte.Parse(System.String,J2N.Globalization.NumberStyle,System.IFormatProvider)"/> method,
except the <see cref="M:J2N.Numerics.SByte.TryParse(System.String,J2N.Globalization.NumberStyle,System.IFormatProvider,System.SByte@)"/> method does not throw an exception if the
conversion fails. It eliminates the need to use exception handling to test for a <see cref="T:System.FormatException"/>
in the event that <paramref name="s"/> is invalid and cannot be successfully parsed.
<para/>
The <paramref name="style"/> parameter defines the style elements (such as white space or a positive or negative sign)
that are allowed in the <paramref name="s"/> parameter for the parse operation to succeed. It must be a combination of
bit flags from the <see cref="T:J2N.Globalization.NumberStyle"/> enumeration. Depending on the value of <paramref name="style"/>, the <paramref name="s"/>
parameter may include the following elements:
<code>
[ws][$][sign][digits,]digits[.fractional-digits][e[sign]exponential-digits][type][ws]
</code>
Or, if the <paramref name="style"/> parameter includes <see cref="F:J2N.Globalization.NumberStyle.AllowHexSpecifier"/>:
<code>
[ws][0x]hexdigits[hextype][ws]
</code>
Items in square brackets ([ and ]) are optional. The following table describes each element.
<list type="table">
<listheader>
<term>Element</term>
<term>Description</term>
</listheader>
<item>
<term><i>ws</i></term>
<term>Optional white space.</term>
</item>
<item>
<term><i>$</i></term>
<term>A culture-specific currency symbol. Its position in the string is defined by the <see cref="P:System.Globalization.NumberFormatInfo.CurrencyPositivePattern"/>
property of the <see cref="T:System.Globalization.NumberFormatInfo"/> object returned by the <see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> method of the
<paramref name="provider"/> parameter. The currency symbol can appear in <paramref name="s"/> if style includes the
<see cref="F:J2N.Globalization.NumberStyle.AllowCurrencySymbol"/> flag.</term>
</item>
<item>
<term><i>sign</i></term>
<term>An optional sign.</term>
</item>
<item>
<term><i>digits</i></term>
<term>A sequence of digits ranging from 0 to 9.</term>
</item>
<item>
<term><i>,</i></term>
<term>A culture-specific thousands separator. The thousands separator of the culture specified by <paramref name="provider"/>
can appear in <paramref name="s"/> if <paramref name="style"/> includes the <see cref="F:J2N.Globalization.NumberStyle.AllowThousands"/> flag.</term>
</item>
<item>
<term><i>.</i></term>
<term>A culture-specific decimal point symbol. The decimal point symbol of the culture specified by <paramref name="provider"/>
can appear in <paramref name="s"/> if <paramref name="style"/> includes the <see cref="F:J2N.Globalization.NumberStyle.AllowDecimalPoint"/> flag.</term>
</item>
<item>
<term><i>fractional-digits</i></term>
<term>One or more occurrences of the digit 0. Fractional digits can appear in <paramref name="s"/> only if style includes
the <see cref="F:J2N.Globalization.NumberStyle.AllowDecimalPoint"/> flag.</term>
</item>
<item>
<term><i>e</i></term>
<term>The 'e' or 'E' character, which indicates that the value is represented in exponential notation. The <paramref name="s"/>
parameter can represent a number in exponential notation if style includes the <see cref="F:J2N.Globalization.NumberStyle.AllowExponent"/> flag.</term>
</item>
<item>
<term><i>exponential-digits</i></term>
<term>A sequence of decimal digits from 0 through 9 that specify an exponent.</term>
</item>
<item>
<term><i>0x</i>/></term>
<term>The '0x' or '0X' characters, which indicate a hexadecimal number is to immediately follow.</term>
</item>
<item>
<term><i>hexdigits</i></term>
<term>A sequence of hexadecimal digits from 0 through f, or 0 through F.</term>
</item>
<item>
<term><i>type</i></term>
<term>The 'UL', 'Ul', 'uL', 'ul', 'LU', 'Lu', 'lU', or 'lu', which is the
<a href="https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/language-specification/lexical-structure#6453-integer-literals">integral type suffix</a>
or 'f', 'F', 'd', 'D', 'm' or 'M' character, which is the
<a href="https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/language-specification/lexical-structure#6454-real-literals">real type suffix</a>
of the number as specified in the C# language specification. The type suffix can appear in <paramref name="s"/> if <paramref name="style"/>
includes the <see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/> flag.</term>
</item>
<item>
<term><i>hextype</i></term>
<term>The 'UL', 'Ul', 'uL', 'ul', 'LU', 'Lu', 'lU', or 'lu', which is the
<a href="https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/language-specification/lexical-structure#6453-integer-literals">integral type suffix</a>
of the number as specified in the C# language specification. The type suffix can appear in <paramref name="s"/> if <paramref name="style"/>
includes the <see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/> flag. Real type suffixes are not supported.</term>
</item>
</list>
<para/>
NOTE: Any terminating NUL (U+0000) characters in <paramref name="s"/> are ignored by the parsing operation, regardless of
the value of the <paramref name="style"/> argument.
<para/>
A string with decimal digits only (which corresponds to the <see cref="F:J2N.Globalization.NumberStyle.None"/> flag) always parses successfully.
Most of the remaining <see cref="T:J2N.Globalization.NumberStyle"/> members control elements that may be but are not required to be present in
this input string. The following table indicates how individual <see cref="T:J2N.Globalization.NumberStyle"/> members affect the elements that may
be present in <paramref name="s"/>.
<list type="table">
<listheader>
<term>Non-composite NumberStyle values</term>
<term>Elements permitted in <paramref name="s"/> in addition to digits</term>
</listheader>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.None"/></term>
<term>Decimal digits only.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowDecimalPoint"/></term>
<term>The decimal point (.) and <i>fractional-digits</i> elements. However, <i>fractional-digits</i> must consist
of only one or more 0 digits or the method returns <c>false</c>.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowExponent"/></term>
<term>The <paramref name="s"/> parameter can also use exponential notation. If <paramref name="s"/> represents a
number in exponential notation, it must represent an integer within the range of the <see cref="T:System.SByte"/> data type
without a non-zero, fractional component.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowLeadingWhite"/></term>
<term>The <i>ws</i> element at the beginning of <paramref name="s"/>.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowTrailingWhite"/></term>
<term>The <i>ws</i> element at the end of <paramref name="s"/>.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowLeadingSign"/></term>
<term>A sign can appear before <i>digits</i>.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowTrailingSign"/></term>
<term>A sign can appear after <i>digits</i>.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowParentheses"/></term>
<term>The <i>sign</i> element in the form of parentheses enclosing the numeric value.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowThousands"/></term>
<term>The thousands separator (,) element.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowCurrencySymbol"/></term>
<term>The <i>$</i> element.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/></term>
<term>The literal <i>type</i> suffix used in the literal identifier syntax of C# (suffixed with one of
'D', 'd', 'F', 'f', 'M', 'm', 'L', 'l', 'U', 'u', 'UL', 'ul', 'LU', or 'lu').</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.Currency"/></term>
<term>All elements. The <paramref name="s"/> parameter cannot represent a hexadecimal
number or a number in exponential notation.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.Float"/></term>
<term>The <i>ws</i> element at the beginning or end of <paramref name="s"/>, sign at
the beginning of <paramref name="s"/>, and the decimal point (.) symbol. The <paramref name="s"/>
parameter can also use exponential notation.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.Number"/></term>
<term>The <i>ws</i>, <i>sign</i>, thousands separator (,), and decimal point (.) elements.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.Any"/></term>
<term>All styles, except <paramref name="s"/> cannot represent a hexadecimal number.</term>
</item>
</list>
<para/>
The <see cref="T:J2N.Globalization.NumberStyle"/> enum is a match in both symbol and value for the .NET <see cref="T:System.Globalization.NumberStyles"/> enum.
Therefore, simply casting the value will convert it properly between the two in both directions.
<para/>
If the <see cref="F:J2N.Globalization.NumberStyle.AllowHexSpecifier"/> flag is used, <paramref name="s"/> must be a hexadecimal value with or without a <c>0x</c> prefix.
For example, "F3" and "0xF3" both parse successfully. The only other flags that can be present in <paramref name="style"/> are
<see cref="F:J2N.Globalization.NumberStyle.AllowLeadingWhite"/>, <see cref="F:J2N.Globalization.NumberStyle.AllowTrailingWhite"/> and <see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/>.
(The <see cref="T:J2N.Globalization.NumberStyle"/> enumeration has a composite number style, <see cref="F:J2N.Globalization.NumberStyle.HexNumber"/>, that includes both white space
flags.)
The <see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/> only allows 'L', 'l', 'U', 'u', 'UL', 'ul', 'LU', or 'lu' for hexadecimal numbers.
<para/>
The <paramref name="provider"/> parameter is an <see cref="T:System.IFormatProvider"/> implementation, such as a <see cref="T:System.Globalization.CultureInfo"/> object,
a <see cref="T:System.Globalization.NumberFormatInfo"/> object or a <see cref="T:J2N.Text.StringFormatter"/> object, whose <see cref="M:System.IFormatProvider.GetFormat(System.Type)"/>
method returns a <see cref="T:System.Globalization.NumberFormatInfo"/> object. The <see cref="T:System.Globalization.NumberFormatInfo"/> object provides culture-specific information about
the format of <paramref name="s"/>. If <paramref name="provider"/> is <c>null</c>, the <see cref="T:System.Globalization.NumberFormatInfo"/> object for the current
culture is used.
</remarks>
<seealso cref="M:J2N.Numerics.SByte.Parse(System.String,J2N.Globalization.NumberStyle,System.IFormatProvider)"/>
<seealso cref="M:J2N.Numerics.SByte.TryParse(System.String,System.SByte@)"/>
<seealso cref="M:J2N.Numerics.Number.ToString"/>
<seealso cref="T:J2N.Globalization.NumberStyle"/>
</member>
<member name="M:J2N.Numerics.SByte.TryParse(System.ReadOnlySpan{System.Char},J2N.Globalization.NumberStyle,System.IFormatProvider,System.SByte@)">
<summary>
Converts the span representation of a number in a specified style and culture-specific format to its 8-bit signed integer equivalent.
A return value indicates whether the conversion succeeded.
<para/>
Usage Note: To exactly match Java, use <see cref="F:J2N.Globalization.NumberStyle.AllowLeadingSign"/> for <paramref name="style"/> and
<see cref="P:System.Globalization.NumberFormatInfo.InvariantInfo"/> for <paramref name="provider"/>. We recommend factoring out
exceptions when parsing, but if the Java code depends on exceptions, throw <see cref="T:System.FormatException"/>
when this method returns <c>false</c>.
</summary>
<param name="s">A span containing the characters that represent the number to convert. The span is interpreted using
the style specified by <paramref name="style"/>.</param>
<param name="style">A bitwise combination of enumeration values that indicates the style elements that can be present in <paramref name="s"/>.
A typical value to specify is <see cref="F:J2N.Globalization.NumberStyle.Integer"/>.</param>
<param name="provider">An object that supplies culture-specific formatting information about <paramref name="s"/>.</param>
<param name="result">When this method returns, contains the 8-bit signed integer value equivalent of
the number contained in <paramref name="s"/>, if the conversion succeeded, or zero if the conversion failed.
The conversion fails if the s parameter is <c>null</c> or <see cref="F:System.String.Empty"/>, is not of the correct format,
or represents a number less than <see cref="F:System.SByte.MinValue"/> or greater than <see cref="F:System.SByte.MaxValue"/>. This parameter
is passed uninitialized; any value originally supplied in <paramref name="result"/> will be overwritten.</param>
<returns><c>true</c> if <paramref name="s"/> was converted successfully; otherwise, <c>false</c>.</returns>
<exception cref="T:System.ArgumentException">
<paramref name="style"/> is not a <see cref="T:J2N.Globalization.NumberStyle"/> value.
<para/>
-or-
<para/>
<paramref name="style"/> is not a combination of <see cref="F:J2N.Globalization.NumberStyle.AllowHexSpecifier"/> and <see cref="F:J2N.Globalization.NumberStyle.HexNumber"/> values.
</exception>
<remarks>
The <see cref="M:J2N.Numerics.SByte.TryParse(System.ReadOnlySpan{System.Char},J2N.Globalization.NumberStyle,System.IFormatProvider,System.SByte@)"/> method is like the <see cref="M:J2N.Numerics.SByte.Parse(System.ReadOnlySpan{System.Char},J2N.Globalization.NumberStyle,System.IFormatProvider)"/> method,
except the <see cref="M:J2N.Numerics.SByte.TryParse(System.ReadOnlySpan{System.Char},J2N.Globalization.NumberStyle,System.IFormatProvider,System.SByte@)"/> method does not throw an exception if the
conversion fails. It eliminates the need to use exception handling to test for a <see cref="T:System.FormatException"/>
in the event that <paramref name="s"/> is invalid and cannot be successfully parsed.
<para/>
The <paramref name="style"/> parameter defines the style elements (such as white space or a positive or negative sign)
that are allowed in the <paramref name="s"/> parameter for the parse operation to succeed. It must be a combination of
bit flags from the <see cref="T:J2N.Globalization.NumberStyle"/> enumeration. Depending on the value of <paramref name="style"/>, the <paramref name="s"/>
parameter may include the following elements:
<code>
[ws][$][sign][digits,]digits[.fractional-digits][e[sign]exponential-digits][type][ws]
</code>
Or, if the <paramref name="style"/> parameter includes <see cref="F:J2N.Globalization.NumberStyle.AllowHexSpecifier"/>:
<code>
[ws][0x]hexdigits[hextype][ws]
</code>
Items in square brackets ([ and ]) are optional. The following table describes each element.
<list type="table">
<listheader>
<term>Element</term>
<term>Description</term>
</listheader>
<item>
<term><i>ws</i></term>
<term>Optional white space.</term>
</item>
<item>
<term><i>$</i></term>
<term>A culture-specific currency symbol. Its position in the string is defined by the <see cref="P:System.Globalization.NumberFormatInfo.CurrencyPositivePattern"/>
property of the <see cref="T:System.Globalization.NumberFormatInfo"/> object returned by the <see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> method of the
<paramref name="provider"/> parameter. The currency symbol can appear in <paramref name="s"/> if style includes the
<see cref="F:J2N.Globalization.NumberStyle.AllowCurrencySymbol"/> flag.</term>
</item>
<item>
<term><i>sign</i></term>
<term>An optional sign.</term>
</item>
<item>
<term><i>digits</i></term>
<term>A sequence of digits ranging from 0 to 9.</term>
</item>
<item>
<term><i>,</i></term>
<term>A culture-specific thousands separator. The thousands separator of the culture specified by <paramref name="provider"/>
can appear in <paramref name="s"/> if <paramref name="style"/> includes the <see cref="F:J2N.Globalization.NumberStyle.AllowThousands"/> flag.</term>
</item>
<item>
<term><i>.</i></term>
<term>A culture-specific decimal point symbol. The decimal point symbol of the culture specified by <paramref name="provider"/>
can appear in <paramref name="s"/> if <paramref name="style"/> includes the <see cref="F:J2N.Globalization.NumberStyle.AllowDecimalPoint"/> flag.</term>
</item>
<item>
<term><i>fractional-digits</i></term>
<term>One or more occurrences of the digit 0. Fractional digits can appear in <paramref name="s"/> only if style includes
the <see cref="F:J2N.Globalization.NumberStyle.AllowDecimalPoint"/> flag.</term>
</item>
<item>
<term><i>The 'e' or 'E' character, which indicates that the value is represented in exponential notation. The <paramref name="s"/>
parameter can represent a number in exponential notation if style includes the <see cref="F:J2N.Globalization.NumberStyle.AllowExponent"/> flag.</i></term>
<term></term>
</item>
<item>
<term><i>exponential-digits</i></term>
<term>A sequence of decimal digits from 0 through 9 that specify an exponent.</term>
</item>
<item>
<term><i>0x</i>/></term>
<term>The '0x' or '0X' characters, which indicate a hexadecimal number is to immediately follow.</term>
</item>
<item>
<term><i>hexdigits</i></term>
<term>A sequence of hexadecimal digits from 0 through f, or 0 through F.</term>
</item>
<item>
<term><i>type</i></term>
<term>The 'UL', 'Ul', 'uL', 'ul', 'LU', 'Lu', 'lU', or 'lu', which is the
<a href="https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/language-specification/lexical-structure#6453-integer-literals">integral type suffix</a>
or 'f', 'F', 'd', 'D', 'm' or 'M' character, which is the
<a href="https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/language-specification/lexical-structure#6454-real-literals">real type suffix</a>
of the number as specified in the C# language specification. The type suffix can appear in <paramref name="s"/> if <paramref name="style"/>
includes the <see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/> flag.</term>
</item>
<item>
<term><i>hextype</i></term>
<term>The 'UL', 'Ul', 'uL', 'ul', 'LU', 'Lu', 'lU', or 'lu', which is the
<a href="https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/language-specification/lexical-structure#6453-integer-literals">integral type suffix</a>
of the number as specified in the C# language specification. The type suffix can appear in <paramref name="s"/> if <paramref name="style"/>
includes the <see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/> flag. Real type suffixes are not supported.</term>
</item>
</list>
<para/>
NOTE: Any terminating NUL (U+0000) characters in <paramref name="s"/> are ignored by the parsing operation, regardless of
the value of the <paramref name="style"/> argument.
<para/>
A string with decimal digits only (which corresponds to the <see cref="F:J2N.Globalization.NumberStyle.None"/> flag) always parses successfully.
Most of the remaining <see cref="T:J2N.Globalization.NumberStyle"/> members control elements that may be but are not required to be present in
this input string. The following table indicates how individual <see cref="T:J2N.Globalization.NumberStyle"/> members affect the elements that may
be present in <paramref name="s"/>.
<list type="table">
<listheader>
<term>Non-composite NumberStyle values</term>
<term>Elements permitted in <paramref name="s"/> in addition to digits</term>
</listheader>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.None"/></term>
<term>Decimal digits only.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowDecimalPoint"/></term>
<term>The decimal point (.) and <i>fractional-digits</i> elements. However, <i>fractional-digits</i> must consist
of only one or more 0 digits or the method returns <c>false</c>.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowExponent"/></term>
<term>The <paramref name="s"/> parameter can also use exponential notation. If <paramref name="s"/> represents a
number in exponential notation, it must represent an integer within the range of the <see cref="T:System.SByte"/> data type
without a non-zero, fractional component.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowLeadingWhite"/></term>
<term>The <i>ws</i> element at the beginning of <paramref name="s"/>.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowTrailingWhite"/></term>
<term>The <i>ws</i> element at the end of <paramref name="s"/>.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowLeadingSign"/></term>
<term>A sign can appear before <i>digits</i>.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowTrailingSign"/></term>
<term>A sign can appear after <i>digits</i>.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowParentheses"/></term>
<term>The <i>sign</i> element in the form of parentheses enclosing the numeric value.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowThousands"/></term>
<term>The thousands separator (,) element.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowCurrencySymbol"/></term>
<term>The <i>$</i> element.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/></term>
<term>The literal <i>type</i> suffix used in the literal identifier syntax of C# (suffixed with one of
'D', 'd', 'F', 'f', 'M', 'm', 'L', 'l', 'U', 'u', 'UL', 'ul', 'LU', or 'lu').</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.Currency"/></term>
<term>All elements. The <paramref name="s"/> parameter cannot represent a hexadecimal
number or a number in exponential notation.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.Float"/></term>
<term>The <i>ws</i> element at the beginning or end of <paramref name="s"/>, sign at
the beginning of <paramref name="s"/>, and the decimal point (.) symbol. The <paramref name="s"/>
parameter can also use exponential notation.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.Number"/></term>
<term>The <i>ws</i>, <i>sign</i>, thousands separator (,), and decimal point (.) elements.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.Any"/></term>
<term>All styles, except <paramref name="s"/> cannot represent a hexadecimal number.</term>
</item>
</list>
<para/>
The <see cref="T:J2N.Globalization.NumberStyle"/> enum can be converted to the .NET <see cref="T:System.Globalization.NumberStyles"/> enum by using the
<see cref="M:J2N.Globalization.NumberStyleExtensions.ToNumberStyles(J2N.Globalization.NumberStyle)"/> extension method.
Similarly, <see cref="T:System.Globalization.NumberStyles"/> enum can be converted to the J2N <see cref="T:J2N.Globalization.NumberStyle"/> enum by using
the <see cref="M:J2N.Globalization.NumberStyleExtensions.ToNumberStyle(System.Globalization.NumberStyles)"/> extension method.
<para/>
If the <see cref="F:J2N.Globalization.NumberStyle.AllowHexSpecifier"/> flag is used, <paramref name="s"/> must be a hexadecimal value with or without a <c>0x</c> prefix.
For example, "F3" and "0xF3" both parse successfully. The only other flags that can be present in <paramref name="style"/> are
<see cref="F:J2N.Globalization.NumberStyle.AllowLeadingWhite"/>, <see cref="F:J2N.Globalization.NumberStyle.AllowTrailingWhite"/> and <see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/>.
(The <see cref="T:J2N.Globalization.NumberStyle"/> enumeration has a composite number style, <see cref="F:J2N.Globalization.NumberStyle.HexNumber"/>, that includes both white space
flags.)
The <see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/> only allows 'L', 'l', 'U', 'u', 'UL', 'ul', 'LU', or 'lu' for hexadecimal numbers.
<para/>
The <paramref name="provider"/> parameter is an <see cref="T:System.IFormatProvider"/> implementation, such as a <see cref="T:System.Globalization.CultureInfo"/> object,
a <see cref="T:System.Globalization.NumberFormatInfo"/> object or a <see cref="T:J2N.Text.StringFormatter"/> object, whose <see cref="M:System.IFormatProvider.GetFormat(System.Type)"/>
method returns a <see cref="T:System.Globalization.NumberFormatInfo"/> object. The <see cref="T:System.Globalization.NumberFormatInfo"/> object provides culture-specific information about
the format of <paramref name="s"/>. If <paramref name="provider"/> is <c>null</c>, the <see cref="T:System.Globalization.NumberFormatInfo"/> object for the current
culture is used.
</remarks>
<seealso cref="M:J2N.Numerics.SByte.Parse(System.ReadOnlySpan{System.Char},J2N.Globalization.NumberStyle,System.IFormatProvider)"/>
<seealso cref="M:J2N.Numerics.SByte.TryParse(System.ReadOnlySpan{System.Char},System.SByte@)"/>
<seealso cref="M:J2N.Numerics.Number.ToString"/>
<seealso cref="T:J2N.Globalization.NumberStyle"/>
</member>
<member name="M:J2N.Numerics.SByte.ToString">
<summary>
Converts the value of the current <see cref="T:J2N.Numerics.SByte"/> object to its equivalent string representation.
</summary>
<returns>The string representation of the value of this object, which consists of a sequence of digits
that range from 0 to 9 with no leading zeroes.</returns>
<remarks>
The <see cref="M:J2N.Numerics.SByte.ToString"/> method formats the current instance in the default ("J", or Java)
format of the current culture. If you want to specify a different format, precision, or culture, use the
other overloads of the <see cref="M:J2N.Numerics.SByte.ToString(System.String,System.IFormatProvider)"/> method, as follows:
<list type="table">
<listheader>
<term>To use format</term>
<term>For culture</term>
<term>Use the overload</term>
</listheader>
<item>
<term>Default ("J") format</term>
<term>A specific culture</term>
<term><see cref="M:J2N.Numerics.SByte.ToString(System.SByte,System.IFormatProvider)"/> or <see cref="M:J2N.Numerics.SByte.ToString(System.IFormatProvider)"/></term>
</item>
<item>
<term>A specific format or precision</term>
<term>Default (current) culture</term>
<term><see cref="M:J2N.Numerics.SByte.ToString(System.SByte,System.String)"/> or <see cref="M:J2N.Numerics.SByte.ToString(System.String)"/></term>
</item>
<item>
<term>A specific format or precision</term>
<term>A specific culture</term>
<term><see cref="M:J2N.Numerics.SByte.ToString(System.SByte,System.String,System.IFormatProvider)"/> or <see cref="M:J2N.Numerics.SByte.ToString(System.String,System.IFormatProvider)"/></term>
</item>
</list>
<para/>
.NET provides extensive formatting support, which is described in greater detail in the following formatting topics:
<list type="bullet">
<item><description>For more information about numeric format specifiers, see
<a href="https://docs.microsoft.com/en-us/dotnet/standard/base-types/standard-numeric-format-strings">Standard Numeric Format Strings</a>
and <a href="https://docs.microsoft.com/en-us/dotnet/standard/base-types/custom-numeric-format-strings">Custom Numeric Format Strings</a>.
</description></item>
<item><description>For more information about formatting, see
<a href="https://docs.microsoft.com/en-us/dotnet/standard/base-types/formatting-types">Formatting Types</a>.</description></item>
</list>
</remarks>
<seealso cref="M:J2N.Numerics.SByte.Parse(System.String,System.IFormatProvider)"/>
</member>
<member name="M:J2N.Numerics.SByte.ToString(System.String)">
<summary>
Converts the value of the current <see cref="T:J2N.Numerics.SByte"/> object to its equivalent string representation
using the specified format.
</summary>
<param name="format">A numeric format string.</param>
<returns>The string representation of the current <see cref="T:J2N.Numerics.SByte"/> object, formatted as specified by
the <paramref name="format"/> parameter.</returns>
<exception cref="T:System.FormatException">
<paramref name="format"/> includes an unsupported specifier. Supported format specifiers are listed in the Remarks section.
</exception>
<remarks>
The <see cref="M:J2N.Numerics.SByte.ToString(System.String)"/> method formats the current instance in
a specified format by using the conventions of the current culture. If you want to specify a different format or culture,
use the other overloads of the <see cref="M:J2N.Numerics.SByte.ToString(System.String,System.IFormatProvider)"/> method, as follows:
<list type="table">
<listheader>
<term>To use format</term>
<term>For culture</term>
<term>Use the overload</term>
</listheader>
<item>
<term>Default ("J") format</term>
<term>Default (current) culture</term>
<term><see cref="M:J2N.Numerics.SByte.ToString(System.SByte)"/> or <see cref="M:J2N.Numerics.SByte.ToString"/></term>
</item>
<item>
<term>Default ("J") format</term>
<term>A specific culture</term>
<term><see cref="M:J2N.Numerics.SByte.ToString(System.SByte,System.IFormatProvider)"/> or <see cref="M:J2N.Numerics.SByte.ToString(System.IFormatProvider)"/></term>
</item>
<item>
<term>A specific format or precision</term>
<term>A specific culture</term>
<term><see cref="M:J2N.Numerics.SByte.ToString(System.SByte,System.String,System.IFormatProvider)"/> or <see cref="M:J2N.Numerics.SByte.ToString(System.String,System.IFormatProvider)"/></term>
</item>
</list>
<para/>
The format parameter can be either a standard or a custom numeric format string. All standard numeric format strings other
than "R" (or "r") are supported, as are all custom numeric format characters. If format is <c>null</c> or an empty string (""),
the return value is formatted with the Java numeric format specifier ("J").
<para/>
The return value of this function is formatted using the <see cref="T:System.Globalization.NumberFormatInfo"/> object for the thread current culture.
For information about the thread current culture, see <see cref="P:System.Threading.Thread.CurrentCulture"/>. To provide formatting information
for cultures other than the current culture, call the <see cref="M:J2N.Numerics.SByte.ToString(System.String,System.IFormatProvider)"/> method.
<para/>
.NET provides extensive formatting support, which is described in greater detail in the following formatting topics:
<list type="bullet">
<item><description>For more information about numeric format specifiers, see
<a href="https://docs.microsoft.com/en-us/dotnet/standard/base-types/standard-numeric-format-strings">Standard Numeric Format Strings</a>
and <a href="https://docs.microsoft.com/en-us/dotnet/standard/base-types/custom-numeric-format-strings">Custom Numeric Format Strings</a>.
</description></item>
<item><description>For more information about formatting, see
<a href="https://docs.microsoft.com/en-us/dotnet/standard/base-types/formatting-types">Formatting Types</a>.</description></item>
</list>
</remarks>
<seealso cref="M:J2N.Numerics.SByte.Parse(System.String,System.IFormatProvider)"/>
</member>
<member name="M:J2N.Numerics.SByte.ToString(System.IFormatProvider)">
<summary>
Converts the numeric value of the current <see cref="T:J2N.Numerics.SByte"/> object to its equivalent string representation using the
specified culture-specific formatting information.
</summary>
<param name="provider">An object that supplies culture-specific formatting information.</param>
<returns>The string representation of the value of this object in the format specified by the <paramref name="provider"/> parameter.</returns>
<remarks>
The <see cref="M:J2N.Numerics.SByte.ToString(System.IFormatProvider)"/> method formats the current instance in
the default ("J") format of a specified culture. If you want to specify a different format or culture, use the
other overloads of the <see cref="M:J2N.Numerics.SByte.ToString(System.String,System.IFormatProvider)"/> method, as follows:
<list type="table">
<listheader>
<term>To use format</term>
<term>For culture</term>
<term>Use the overload</term>
</listheader>
<item>
<term>Default ("J") format</term>
<term>Default (current) culture</term>
<term><see cref="M:J2N.Numerics.SByte.ToString(System.SByte)"/> or <see cref="M:J2N.Numerics.SByte.ToString"/></term>
</item>
<item>
<term>A specific format or precision</term>
<term>Default (current) culture</term>
<term><see cref="M:J2N.Numerics.SByte.ToString(System.SByte,System.String)"/> or <see cref="M:J2N.Numerics.SByte.ToString(System.String)"/></term>
</item>
<item>
<term>A specific format or precision</term>
<term>A specific culture</term>
<term><see cref="M:J2N.Numerics.SByte.ToString(System.SByte,System.String,System.IFormatProvider)"/> or <see cref="M:J2N.Numerics.SByte.ToString(System.String,System.IFormatProvider)"/></term>
</item>
</list>
<para/>
The return value is formatted with the Java numeric format specifier ("J").
<para/>
The <paramref name="provider"/> parameter is an object that implements the <see cref="T:System.IFormatProvider"/> interface. Its <see cref="M:System.IFormatProvider.GetFormat(System.Type)"/>
method returns a <see cref="T:System.Globalization.NumberFormatInfo"/> object that provides culture-specific information about the format of the string that is
returned by this method. The object that implements <see cref="T:System.IFormatProvider"/> can be any of the following:
<list type="bullet">
<item><description>A <see cref="T:System.Globalization.CultureInfo"/> object that represents the culture whose formatting rules are to be used.</description></item>
<item><description>A <see cref="T:System.Globalization.NumberFormatInfo"/> object that contains specific numeric formatting information for this value.</description></item>
<item><description>A custom object that implements <see cref="T:System.IFormatProvider"/>.</description></item>
</list>
<para/>
If provider is <c>null</c> or a <see cref="T:System.Globalization.NumberFormatInfo"/> object cannot be obtained from provider, the return value is formatted
using the <see cref="T:System.Globalization.NumberFormatInfo"/> object for the thread current culture. For information about the thread current culture, see
<see cref="P:System.Threading.Thread.CurrentCulture"/>.
<para/>
.NET provides extensive formatting support, which is described in greater detail in the following formatting topics:
<list type="bullet">
<item><description>For more information about numeric format specifiers, see
<a href="https://docs.microsoft.com/en-us/dotnet/standard/base-types/standard-numeric-format-strings">Standard Numeric Format Strings</a>
and <a href="https://docs.microsoft.com/en-us/dotnet/standard/base-types/custom-numeric-format-strings">Custom Numeric Format Strings</a>.
</description></item>
<item><description>For more information about formatting, see
<a href="https://docs.microsoft.com/en-us/dotnet/standard/base-types/formatting-types">Formatting Types</a>.</description></item>
</list>
</remarks>
<seealso cref="M:J2N.Numerics.SByte.Parse(System.String,System.IFormatProvider)"/>
</member>
<member name="M:J2N.Numerics.SByte.ToString(System.String,System.IFormatProvider)">
<summary>
Converts the value of the current <see cref="T:J2N.Numerics.SByte"/> object to its equivalent string representation using the specified format
and culture-specific formatting information.
</summary>
<param name="format">A standard or custom numeric format string.</param>
<param name="provider">An object that supplies culture-specific formatting information.</param>
<returns>The string representation of the current <see cref="T:J2N.Numerics.SByte"/> object, formatted as specified by the <paramref name="format"/>
and <paramref name="provider"/> parameters.</returns>
<exception cref="T:System.FormatException"><paramref name="format"/> includes an unsupported specifier. Supported format specifiers are listed
in the Remarks section.</exception>
<remarks>
The <see cref="M:J2N.Numerics.SByte.ToString(System.String,System.IFormatProvider)"/> method formats the current instance in
a specified format of a specified culture. If you want to specify a different format or culture, use the
other overloads of the <see cref="M:J2N.Numerics.SByte.ToString(System.String,System.IFormatProvider)"/> method, as follows:
<list type="table">
<listheader>
<term>To use format</term>
<term>For culture</term>
<term>Use the overload</term>
</listheader>
<item>
<term>Default ("J") format</term>
<term>Default (current) culture</term>
<term><see cref="M:J2N.Numerics.SByte.ToString(System.SByte)"/> or <see cref="M:J2N.Numerics.SByte.ToString"/></term>
</item>
<item>
<term>Default ("J") format</term>
<term>A specific culture</term>
<term><see cref="M:J2N.Numerics.SByte.ToString(System.SByte,System.IFormatProvider)"/> or <see cref="M:J2N.Numerics.SByte.ToString(System.IFormatProvider)"/></term>
</item>
<item>
<term>A specific format or precision</term>
<term>Default (current) culture</term>
<term><see cref="M:J2N.Numerics.SByte.ToString(System.SByte,System.String)"/> or <see cref="M:J2N.Numerics.SByte.ToString(System.String)"/></term>
</item>
</list>
<para/>
The <see cref="M:J2N.Numerics.SByte.ToString(System.String,System.IFormatProvider)"/> method formats a <see cref="T:J2N.Numerics.SByte"/> value in a specified format
of a specified culture. To format a number by using the default ("J") format of the current culture, call the
<see cref="M:J2N.Numerics.SByte.ToString"/> method. To format a number by using a specified format of the current culture, call the
<see cref="M:J2N.Numerics.SByte.ToString(System.String)"/> method.
<para/>
The <paramref name="format"/> parameter can be either a standard or a custom numeric format string. All standard
numeric format strings other than "R" (or "r") are supported, as are all custom numeric format characters. If
<paramref name="format"/> is <c>null</c> or an empty string (""), the return value of this method is formatted
with the Java numeric format specifier ("J").
<para/>
The <paramref name="provider"/> parameter is an object that implements the <see cref="T:System.IFormatProvider"/> interface. Its <see cref="M:System.IFormatProvider.GetFormat(System.Type)"/>
method returns a <see cref="T:System.Globalization.NumberFormatInfo"/> object that provides culture-specific information about the format of the string that is
returned by this method. The object that implements <see cref="T:System.IFormatProvider"/> can be any of the following:
<list type="bullet">
<item><description>A <see cref="T:System.Globalization.CultureInfo"/> object that represents the culture whose formatting rules are to be used.</description></item>
<item><description>A <see cref="T:System.Globalization.NumberFormatInfo"/> object that contains specific numeric formatting information for this value.</description></item>
<item><description>A custom object that implements <see cref="T:System.IFormatProvider"/>.</description></item>
</list>
<para/>
If provider is <c>null</c> or a <see cref="T:System.Globalization.NumberFormatInfo"/> object cannot be obtained from provider, the return value is formatted
using the <see cref="T:System.Globalization.NumberFormatInfo"/> object for the thread current culture. For information about the thread current culture, see
<see cref="P:System.Threading.Thread.CurrentCulture"/>.
<para/>
.NET provides extensive formatting support, which is described in greater detail in the following formatting topics:
<list type="bullet">
<item><description>For more information about numeric format specifiers, see
<a href="https://docs.microsoft.com/en-us/dotnet/standard/base-types/standard-numeric-format-strings">Standard Numeric Format Strings</a>
and <a href="https://docs.microsoft.com/en-us/dotnet/standard/base-types/custom-numeric-format-strings">Custom Numeric Format Strings</a>.
</description></item>
<item><description>For more information about formatting, see
<a href="https://docs.microsoft.com/en-us/dotnet/standard/base-types/formatting-types">Formatting Types</a>.</description></item>
</list>
</remarks>
<seealso cref="M:J2N.Numerics.SByte.Parse(System.String,System.IFormatProvider)"/>
</member>
<member name="M:J2N.Numerics.SByte.ToString(System.SByte)">
<summary>
Converts the specified <paramref name="value"/> to its equivalent string representation.
</summary>
<param name="value">The <see cref="T:System.SByte"/> to convert.</param>
<returns>The string representation of the <paramref name="value"/> parameter, which consists of a sequence of digits
that range from 0 to 9 with no leading zeroes.</returns>
<remarks>
The <see cref="M:J2N.Numerics.SByte.ToString"/> method formats the current instance in the default ("J", or Java)
format of the current culture. If you want to specify a different format, precision, or culture, use the
other overloads of the <see cref="M:J2N.Numerics.SByte.ToString(System.SByte,System.String,System.IFormatProvider)"/> method, as follows:
<list type="table">
<listheader>
<term>To use format</term>
<term>For culture</term>
<term>Use the overload</term>
</listheader>
<item>
<term>Default ("J") format</term>
<term>A specific culture</term>
<term><see cref="M:J2N.Numerics.SByte.ToString(System.SByte,System.IFormatProvider)"/> or <see cref="M:J2N.Numerics.SByte.ToString(System.IFormatProvider)"/></term>
</item>
<item>
<term>A specific format or precision</term>
<term>Default (current) culture</term>
<term><see cref="M:J2N.Numerics.SByte.ToString(System.SByte,System.String)"/> or <see cref="M:J2N.Numerics.SByte.ToString(System.String)"/></term>
</item>
<item>
<term>A specific format or precision</term>
<term>A specific culture</term>
<term><see cref="M:J2N.Numerics.SByte.ToString(System.SByte,System.String,System.IFormatProvider)"/> or <see cref="M:J2N.Numerics.SByte.ToString(System.String,System.IFormatProvider)"/></term>
</item>
</list>
<para/>
.NET provides extensive formatting support, which is described in greater detail in the following formatting topics:
<list type="bullet">
<item><description>For more information about numeric format specifiers, see
<a href="https://docs.microsoft.com/en-us/dotnet/standard/base-types/standard-numeric-format-strings">Standard Numeric Format Strings</a>
and <a href="https://docs.microsoft.com/en-us/dotnet/standard/base-types/custom-numeric-format-strings">Custom Numeric Format Strings</a>.
</description></item>
<item><description>For more information about formatting, see
<a href="https://docs.microsoft.com/en-us/dotnet/standard/base-types/formatting-types">Formatting Types</a>.</description></item>
</list>
</remarks>
<seealso cref="M:J2N.Numerics.SByte.Parse(System.String,System.IFormatProvider)"/>
</member>
<member name="M:J2N.Numerics.SByte.ToString(System.SByte,System.String)">
<summary>
Converts the specified <paramref name="value"/> to its equivalent string representation
using the specified format.
</summary>
<param name="value">The <see cref="T:System.SByte"/> to convert.</param>
<param name="format">A numeric format string.</param>
<returns>The string representation of the <paramref name="value"/> parameter, formatted as specified by
the <paramref name="format"/> parameter.</returns>
<exception cref="T:System.FormatException">
<paramref name="format"/> includes an unsupported specifier. Supported format specifiers are listed in the Remarks section.
</exception>
<remarks>
The <see cref="M:J2N.Numerics.SByte.ToString(System.SByte,System.String)"/> method formats the current instance in
a specified format by using the conventions of the current culture. If you want to specify a different format or culture,
use the other overloads of the <see cref="M:J2N.Numerics.SByte.ToString(System.SByte,System.String,System.IFormatProvider)"/> method, as follows:
<list type="table">
<listheader>
<term>To use format</term>
<term>For culture</term>
<term>Use the overload</term>
</listheader>
<item>
<term>Default ("J") format</term>
<term>Default (current) culture</term>
<term><see cref="M:J2N.Numerics.SByte.ToString(System.SByte)"/> or <see cref="M:J2N.Numerics.SByte.ToString"/></term>
</item>
<item>
<term>Default ("J") format</term>
<term>A specific culture</term>
<term><see cref="M:J2N.Numerics.SByte.ToString(System.SByte,System.IFormatProvider)"/> or <see cref="M:J2N.Numerics.SByte.ToString(System.IFormatProvider)"/></term>
</item>
<item>
<term>A specific format or precision</term>
<term>A specific culture</term>
<term><see cref="M:J2N.Numerics.SByte.ToString(System.SByte,System.String,System.IFormatProvider)"/> or <see cref="M:J2N.Numerics.SByte.ToString(System.String,System.IFormatProvider)"/></term>
</item>
</list>
<para/>
The format parameter can be either a standard or a custom numeric format string. All standard numeric format strings other
than "R" (or "r") are supported, as are all custom numeric format characters. If format is <c>null</c> or an empty string (""),
the return value is formatted with the Java numeric format specifier ("J").
<para/>
The return value of this function is formatted using the <see cref="T:System.Globalization.NumberFormatInfo"/> object for the thread current culture.
For information about the thread current culture, see <see cref="P:System.Threading.Thread.CurrentCulture"/>. To provide formatting information
for cultures other than the current culture, call the <see cref="M:J2N.Numerics.SByte.ToString(System.SByte,System.String,System.IFormatProvider)"/> method.
<para/>
.NET provides extensive formatting support, which is described in greater detail in the following formatting topics:
<list type="bullet">
<item><description>For more information about numeric format specifiers, see
<a href="https://docs.microsoft.com/en-us/dotnet/standard/base-types/standard-numeric-format-strings">Standard Numeric Format Strings</a>
and <a href="https://docs.microsoft.com/en-us/dotnet/standard/base-types/custom-numeric-format-strings">Custom Numeric Format Strings</a>.
</description></item>
<item><description>For more information about formatting, see
<a href="https://docs.microsoft.com/en-us/dotnet/standard/base-types/formatting-types">Formatting Types</a>.</description></item>
</list>
</remarks>
<seealso cref="M:J2N.Numerics.SByte.Parse(System.String,System.IFormatProvider)"/>
</member>
<member name="M:J2N.Numerics.SByte.ToString(System.SByte,System.IFormatProvider)">
<summary>
Converts the specified <paramref name="value"/> to its equivalent string representation using the
specified culture-specific formatting information.
</summary>
<param name="value">The <see cref="T:System.SByte"/> to convert.</param>
<param name="provider">An object that supplies culture-specific formatting information.</param>
<returns>The string representation of the specified <paramref name="value"/> in the format specified
by the <paramref name="provider"/> parameter.</returns>
<remarks>
The <see cref="M:J2N.Numerics.SByte.ToString(System.SByte,System.IFormatProvider)"/> method formats the current instance in
the default ("J") format of a specified culture. If you want to specify a different format or culture, use the
other overloads of the <see cref="M:J2N.Numerics.SByte.ToString(System.SByte,System.String,System.IFormatProvider)"/> method, as follows:
<list type="table">
<listheader>
<term>To use format</term>
<term>For culture</term>
<term>Use the overload</term>
</listheader>
<item>
<term>Default ("J") format</term>
<term>Default (current) culture</term>
<term><see cref="M:J2N.Numerics.SByte.ToString(System.SByte)"/> or <see cref="M:J2N.Numerics.SByte.ToString"/></term>
</item>
<item>
<term>A specific format or precision</term>
<term>Default (current) culture</term>
<term><see cref="M:J2N.Numerics.SByte.ToString(System.SByte,System.String)"/> or <see cref="M:J2N.Numerics.SByte.ToString(System.String)"/></term>
</item>
<item>
<term>A specific format or precision</term>
<term>A specific culture</term>
<term><see cref="M:J2N.Numerics.SByte.ToString(System.SByte,System.String,System.IFormatProvider)"/> or <see cref="M:J2N.Numerics.SByte.ToString(System.String,System.IFormatProvider)"/></term>
</item>
</list>
<para/>
The return value is formatted with the Java numeric format specifier ("J").
<para/>
The <paramref name="provider"/> parameter is an object that implements the <see cref="T:System.IFormatProvider"/> interface. Its <see cref="M:System.IFormatProvider.GetFormat(System.Type)"/>
method returns a <see cref="T:System.Globalization.NumberFormatInfo"/> object that provides culture-specific information about the format of the string that is
returned by this method. The object that implements <see cref="T:System.IFormatProvider"/> can be any of the following:
<list type="bullet">
<item><description>A <see cref="T:System.Globalization.CultureInfo"/> object that represents the culture whose formatting rules are to be used.</description></item>
<item><description>A <see cref="T:System.Globalization.NumberFormatInfo"/> object that contains specific numeric formatting information for this value.</description></item>
<item><description>A custom object that implements <see cref="T:System.IFormatProvider"/>.</description></item>
</list>
<para/>
If provider is <c>null</c> or a <see cref="T:System.Globalization.NumberFormatInfo"/> object cannot be obtained from provider, the return value is formatted
using the <see cref="T:System.Globalization.NumberFormatInfo"/> object for the thread current culture. For information about the thread current culture, see
<see cref="P:System.Threading.Thread.CurrentCulture"/>.
<para/>
.NET provides extensive formatting support, which is described in greater detail in the following formatting topics:
<list type="bullet">
<item><description>For more information about numeric format specifiers, see
<a href="https://docs.microsoft.com/en-us/dotnet/standard/base-types/standard-numeric-format-strings">Standard Numeric Format Strings</a>
and <a href="https://docs.microsoft.com/en-us/dotnet/standard/base-types/custom-numeric-format-strings">Custom Numeric Format Strings</a>.
</description></item>
<item><description>For more information about formatting, see
<a href="https://docs.microsoft.com/en-us/dotnet/standard/base-types/formatting-types">Formatting Types</a>.</description></item>
</list>
</remarks>
<seealso cref="M:J2N.Numerics.SByte.Parse(System.String,System.IFormatProvider)"/>
</member>
<member name="M:J2N.Numerics.SByte.ToString(System.SByte,System.String,System.IFormatProvider)">
<summary>
Converts the specified <paramref name="value"/> to its equivalent string representation using the specified format
and culture-specific formatting information.
</summary>
<param name="value">The <see cref="T:System.SByte"/> to convert.</param>
<param name="format">A standard or custom numeric format string.</param>
<param name="provider">An object that supplies culture-specific formatting information.</param>
<returns>The string representation of the specified <paramref name="value"/> parameter, formatted as specified by the <paramref name="format"/>
and <paramref name="provider"/> parameters.</returns>
<exception cref="T:System.FormatException"><paramref name="format"/> includes an unsupported specifier. Supported format specifiers are listed
in the Remarks section.</exception>
<remarks>
The <see cref="M:J2N.Numerics.SByte.ToString(System.SByte,System.String,System.IFormatProvider)"/> method formats the current instance in
a specified format of a specified culture. If you want to specify a different format or culture, use the
other overloads of the <see cref="M:J2N.Numerics.SByte.ToString(System.SByte,System.String,System.IFormatProvider)"/> method, as follows:
<list type="table">
<listheader>
<term>To use format</term>
<term>For culture</term>
<term>Use the overload</term>
</listheader>
<item>
<term>Default ("J") format</term>
<term>Default (current) culture</term>
<term><see cref="M:J2N.Numerics.SByte.ToString(System.SByte)"/> or <see cref="M:J2N.Numerics.SByte.ToString"/></term>
</item>
<item>
<term>Default ("J") format</term>
<term>A specific culture</term>
<term><see cref="M:J2N.Numerics.SByte.ToString(System.SByte,System.IFormatProvider)"/> or <see cref="M:J2N.Numerics.SByte.ToString(System.IFormatProvider)"/></term>
</item>
<item>
<term>A specific format or precision</term>
<term>Default (current) culture</term>
<term><see cref="M:J2N.Numerics.SByte.ToString(System.SByte,System.String)"/> or <see cref="M:J2N.Numerics.SByte.ToString(System.String)"/></term>
</item>
</list>
<para/>
The <see cref="M:J2N.Numerics.SByte.ToString(System.SByte,System.String,System.IFormatProvider)"/> method formats a <see cref="T:System.SByte"/> value in a specified format
of a specified culture. To format a number by using the default ("J") format of the current culture, call the
<see cref="M:J2N.Numerics.SByte.ToString(System.SByte)"/> method. To format a number by using a specified format of the current culture, call the
<see cref="M:J2N.Numerics.SByte.ToString(System.SByte,System.String)"/> method.
<para/>
The <paramref name="format"/> parameter can be either a standard or a custom numeric format string. All standard
numeric format strings other than "R" (or "r") are supported, as are all custom numeric format characters. If
<paramref name="format"/> is <c>null</c> or an empty string (""), the return value of this method is formatted
with the Java numeric format specifier ("J").
<para/>
The <paramref name="provider"/> parameter is an object that implements the <see cref="T:System.IFormatProvider"/> interface. Its <see cref="M:System.IFormatProvider.GetFormat(System.Type)"/>
method returns a <see cref="T:System.Globalization.NumberFormatInfo"/> object that provides culture-specific information about the format of the string that is
returned by this method. The object that implements <see cref="T:System.IFormatProvider"/> can be any of the following:
<list type="bullet">
<item><description>A <see cref="T:System.Globalization.CultureInfo"/> object that represents the culture whose formatting rules are to be used.</description></item>
<item><description>A <see cref="T:System.Globalization.NumberFormatInfo"/> object that contains specific numeric formatting information for this value.</description></item>
<item><description>A custom object that implements <see cref="T:System.IFormatProvider"/>.</description></item>
</list>
<para/>
If provider is <c>null</c> or a <see cref="T:System.Globalization.NumberFormatInfo"/> object cannot be obtained from provider, the return value is formatted
using the <see cref="T:System.Globalization.NumberFormatInfo"/> object for the thread current culture. For information about the thread current culture, see
<see cref="P:System.Threading.Thread.CurrentCulture"/>.
<para/>
.NET provides extensive formatting support, which is described in greater detail in the following formatting topics:
<list type="bullet">
<item><description>For more information about numeric format specifiers, see
<a href="https://docs.microsoft.com/en-us/dotnet/standard/base-types/standard-numeric-format-strings">Standard Numeric Format Strings</a>
and <a href="https://docs.microsoft.com/en-us/dotnet/standard/base-types/custom-numeric-format-strings">Custom Numeric Format Strings</a>.
</description></item>
<item><description>For more information about formatting, see
<a href="https://docs.microsoft.com/en-us/dotnet/standard/base-types/formatting-types">Formatting Types</a>.</description></item>
</list>
</remarks>
<seealso cref="M:J2N.Numerics.SByte.Parse(System.String,System.IFormatProvider)"/>
</member>
<member name="M:J2N.Numerics.SByte.TryFormat(System.Span{System.Char},System.Int32@,System.ReadOnlySpan{System.Char},System.IFormatProvider)">
<summary>
Tries to format the value of the current 8-bit signed integer number instance into the provided span of characters.
</summary>
<param name="destination">The span in which to write this instance's value formatted as a span of characters.</param>
<param name="charsWritten">When this method returns, contains the number of characters that were written in
<paramref name="destination"/>.</param>
<param name="format">A span containing the characters that represent a standard or custom format string that
defines the acceptable format for <paramref name="destination"/>.</param>
<param name="provider">An optional object that supplies culture-specific formatting information for
<paramref name="destination"/>.</param>
<returns><c>true</c> if the formatting was successful; otherwise, <c>false</c>.</returns>
</member>
<member name="M:J2N.Numerics.SByte.TryFormat(System.SByte,System.Span{System.Char},System.Int32@,System.ReadOnlySpan{System.Char},System.IFormatProvider)">
<summary>
Tries to format the value of the <paramref name="value"/> into the provided span of characters.
</summary>
<param name="value">The 8-bit signed integer number to format.</param>
<param name="destination">The span in which to write this instance's value formatted as a span of characters.</param>
<param name="charsWritten">When this method returns, contains the number of characters that were written in
<paramref name="destination"/>.</param>
<param name="format">A span containing the characters that represent a standard or custom format string that
defines the acceptable format for <paramref name="destination"/>.</param>
<param name="provider">An optional object that supplies culture-specific formatting information for
<paramref name="destination"/>.</param>
<returns><c>true</c> if the formatting was successful; otherwise, <c>false</c>.</returns>
</member>
<member name="M:J2N.Numerics.SByte.GetInstance(System.String,System.IFormatProvider)">
<summary>
Converts the string representation of a number in a specified style and culture-specific format to its <see cref="T:J2N.Numerics.SByte"/> equivalent.
</summary>
<param name="s">A string containing the characters representing the value to convert.
The string is interpreted using the <see cref="F:J2N.Globalization.NumberStyle.Integer"/> style.</param>
<param name="provider">An object that supplies culture-specific information about the format of <paramref name="s"/>. If provider is <c>null</c>,
the thread current culture is used.</param>
<returns>An immutable <see cref="T:J2N.Numerics.SByte"/> instance that is equivalent to the number contained in <paramref name="s"/>.</returns>
<exception cref="T:System.ArgumentNullException"><paramref name="s"/> is <c>null</c>.</exception>
<exception cref="T:System.FormatException"><paramref name="s"/> is not of the correct format.</exception>
<exception cref="T:System.OverflowException">
<paramref name="s"/> represents a number less than <see cref="F:System.SByte.MinValue"/> or <see cref="F:System.SByte.MaxValue"/>.
</exception>
<remarks>
The s parameter contains a number of the form:
<para/>
[ws][sign]digits[ws]
<para/>
Elements framed in square brackets ([ and ]) are optional. The following table describes each element.
<para/>
<list type="table">
<listheader>
<term>Element</term>
<term>Description</term>
</listheader>
<item>
<term><i>ws</i></term>
<term>A series of white-space characters.</term>
</item>
<item>
<term><i>sign</i></term>
<term>A negative sign symbol (-) or a positive sign symbol (+).</term>
</item>
<item>
<term><i>digits</i></term>
<term>A series of digits ranging from 0 to 9.</term>
</item>
</list>
<para/>
NOTE: Any terminating NUL (U+0000) characters in <paramref name="s"/> are ignored by the parsing operation.
<para/>
The <paramref name="s"/> parameter is interpreted using the <see cref="F:J2N.Globalization.NumberStyle.Integer"/> style. In addition to the sbyte value's
decimal digits, only leading and trailing spaces together with a leading sign are allowed. To explicitly define the style elements
together with the culture-specific formatting information that can be present in <paramref name="s"/>, use the
<see cref="M:J2N.Numerics.SByte.GetInstance(System.String,J2N.Globalization.NumberStyle,System.IFormatProvider)"/> method.
<para/>
The <paramref name="provider"/> parameter is an <see cref="T:System.IFormatProvider"/> implementation, such as a <see cref="T:System.Globalization.CultureInfo"/> object,
a <see cref="T:System.Globalization.NumberFormatInfo"/> object or a <see cref="T:J2N.Text.StringFormatter"/> object, whose <see cref="M:System.IFormatProvider.GetFormat(System.Type)"/>
method returns a <see cref="T:System.Globalization.NumberFormatInfo"/> object. The <see cref="T:System.Globalization.NumberFormatInfo"/> object provides culture-specific information about
the format of <paramref name="s"/>. When the <see cref="M:J2N.Numerics.SByte.GetInstance(System.String,System.IFormatProvider)"/> method is invoked, it calls the provider parameter's
<see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> method and passes it a <see cref="T:System.Type"/> object that represents the <see cref="T:System.Globalization.NumberFormatInfo"/> type.
The <see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> method then returns the <see cref="T:System.Globalization.NumberFormatInfo"/> object that provides information about the
format of the <paramref name="s"/> parameter. There are three ways to use the <paramref name="provider"/> parameter to supply custom formatting
information to the parse operation:
<list type="bullet">
<item><description>You can pass a <see cref="T:System.Globalization.CultureInfo"/> object that represents the culture that supplies formatting information. Its
<see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> method returns the <see cref="T:System.Globalization.NumberFormatInfo"/> object that provides numeric formatting
information for that culture.</description></item>
<item><description>You can pass the actual <see cref="T:System.Globalization.NumberFormatInfo"/> object that provides numeric formatting information. (Its
implementation of <see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> just returns itself.)</description></item>
<item><description>You can pass a custom object that implements <see cref="T:System.IFormatProvider"/>. Its <see cref="M:System.IFormatProvider.GetFormat(System.Type)"/>
method instantiates and returns the <see cref="T:System.Globalization.NumberFormatInfo"/> object that provides formatting information.</description></item>
</list>
If <paramref name="provider"/> is <c>null</c> or a <see cref="T:System.Globalization.NumberFormatInfo"/> object cannot be obtained, the <see cref="T:System.Globalization.NumberFormatInfo"/>
object for the current culture is used.
</remarks>
<seealso cref="M:J2N.Numerics.SByte.TryParse(System.String,J2N.Globalization.NumberStyle,System.IFormatProvider,System.SByte@)"/>
<seealso cref="M:J2N.Numerics.SByte.Parse(System.String,System.IFormatProvider)"/>
</member>
<member name="M:J2N.Numerics.SByte.GetInstance(System.String,J2N.Globalization.NumberStyle,System.IFormatProvider)">
<summary>
Converts the string representation of a number in a specified style and culture-specific format to its <see cref="T:J2N.Numerics.SByte"/> equivalent.
</summary>
<param name="s">A string containing the characters representing the value to convert.</param>
<param name="style">A bitwise combination of enumeration values that indicates the style elements that can be present in <paramref name="s"/>.
A typical value to specify is <see cref="F:J2N.Globalization.NumberStyle.Integer"/>.</param>
<param name="provider">An object that supplies culture-specific information about the format of <paramref name="s"/>. If provider is <c>null</c>,
the thread current culture is used.</param>
<returns>An immutable <see cref="T:J2N.Numerics.SByte"/> instance that is equivalent to the number contained in <paramref name="s"/>.</returns>
<exception cref="T:System.ArgumentNullException"><paramref name="s"/> is <c>null</c>.</exception>
<exception cref="T:System.FormatException"><paramref name="s"/> is not of the correct format.</exception>
<exception cref="T:System.OverflowException">
<paramref name="s"/> represents a number less than <see cref="F:System.SByte.MinValue"/> or <see cref="F:System.SByte.MaxValue"/>.
<para/>
-or-
<para/>
<paramref name="s"/> includes non-zero, fractional digits.
</exception>
<exception cref="T:System.ArgumentException">
<paramref name="style"/> is not a <see cref="T:J2N.Globalization.NumberStyle"/> value.
<para/>
-or-
<para/>
<paramref name="style"/> is not a combination of <see cref="F:J2N.Globalization.NumberStyle.AllowHexSpecifier"/> and <see cref="F:J2N.Globalization.NumberStyle.HexNumber"/> values.
</exception>
<remarks>
The <paramref name="style"/> parameter defines the style elements (such as white space or the positive sign) that are allowed in the
<paramref name="s"/> parameter for the parse operation to succeed. It must be a combination of bit flags from the <see cref="T:J2N.Globalization.NumberStyle"/>
enumeration. Depending on the value of <paramref name="style"/>, the <paramref name="s"/> parameter may include the following elements:
<para/>
[ws][$][sign]digits[.fractional-digits][e[sign]exponential-digits][ws]
<para/>
Or, if the <paramref name="style"/> parameter includes <see cref="F:J2N.Globalization.NumberStyle.AllowHexSpecifier"/>:
<para/>
[ws]hexdigits[ws]
<para/>
Elements framed in square brackets ([ and ]) are optional. The following table describes each element.
<para/>
<list type="table">
<listheader>
<term>Element</term>
<term>Description</term>
</listheader>
<item>
<term><i>ws</i></term>
<term>A series of white-space characters. White space can appear at the beginning of <paramref name="s"/> if style includes the
<see cref="F:J2N.Globalization.NumberStyle.AllowLeadingWhite"/> flag, and it can appear at the end of <paramref name="s"/> if style includes the
<see cref="F:J2N.Globalization.NumberStyle.AllowTrailingWhite"/> flag.</term>
</item>
<item>
<term><i>$</i></term>
<term>A culture-specific currency symbol. Its position in the string is defined by the <see cref="P:System.Globalization.NumberFormatInfo.CurrencyNegativePattern"/>
and <see cref="P:System.Globalization.NumberFormatInfo.CurrencyPositivePattern"/> properties of the <see cref="T:System.Globalization.NumberFormatInfo"/> object returned by the
<see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> method of the <paramref name="provider"/> parameter. The current culture's currency symbol can
appear in <paramref name="s"/> if style includes the <see cref="F:J2N.Globalization.NumberStyle.AllowCurrencySymbol"/> flag.</term>
</item>
<item>
<term><i>sign</i></term>
<term>A negative sign symbol (-) or a positive sign symbol (+). The sign can appear at the beginning of <paramref name="s"/> if
<paramref name="style"/> includes the <see cref="F:J2N.Globalization.NumberStyle.AllowLeadingSign"/> flag, and it can appear at the end of <paramref name="s"/>
if <paramref name="style"/> includes the <see cref="F:J2N.Globalization.NumberStyle.AllowTrailingSign"/> flag. Parentheses can be used in <paramref name="s"/>
to indicate a negative value if <paramref name="style"/> includes the <see cref="F:J2N.Globalization.NumberStyle.AllowParentheses"/> flag.</term>
</item>
<item>
<term><i>digits</i></term>
<term>A series of digits ranging from 0 to 9.</term>
</item>
<item>
<term><i>.</i></term>
<term>A culture-specific decimal point symbol. The decimal point symbol of the culture specified by <paramref name="provider"/>
can appear in <paramref name="s"/> if <paramref name="style"/> includes the <see cref="F:J2N.Globalization.NumberStyle.AllowDecimalPoint"/> flag.</term>
</item>
<item>
<term><i>fractional-digits</i>
</term>
<term>A series of digits ranging from 0 to 9 that specify the fractional part of the number. Fractional digits can appear in
<paramref name="s"/> if <paramref name="style"/> includes the <see cref="F:J2N.Globalization.NumberStyle.AllowDecimalPoint"/> flag.</term>
</item>
<item>
<term><i>e</i></term>
<term>The 'e' or 'E' character, which indicates that the value is represented in exponential notation. The <paramref name="s"/>
parameter can represent a number in exponential notation if <paramref name="style"/> includes the <see cref="F:J2N.Globalization.NumberStyle.AllowExponent"/> flag.</term>
</item>
<item>
<term><i>exponential-digits</i></term>
<term>A sequence of decimal digits from 0 through 9 that specify an exponent.</term>
</item>
<item>
<term><i>hexdigits</i></term>
<term>A sequence of hexadecimal digits from 0 through f, or 0 through F. Hexadecimal digits can appear in <paramref name="s"/>
if <paramref name="style"/> includes the <see cref="F:J2N.Globalization.NumberStyle.AllowHexSpecifier"/> flag.</term>
</item>
</list>
<para/>
NOTE: Any terminating NUL (U+0000) characters in <paramref name="s"/> are ignored by the parsing operation, regardless of
the value of the <paramref name="style"/> argument.
<para/>
A string with decimal digits only (which corresponds to the <see cref="F:J2N.Globalization.NumberStyle.None"/> flag) always parses successfully.
Most of the remaining <see cref="T:J2N.Globalization.NumberStyle"/> members control elements that may be but are not required to be present in
this input string. The following table indicates how individual <see cref="T:J2N.Globalization.NumberStyle"/> members affect the elements that may
be present in <paramref name="s"/>.
<list type="table">
<listheader>
<term>Non-composite NumberStyle values</term>
<term>Elements permitted in <paramref name="s"/> in addition to digits</term>
</listheader>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.None"/></term>
<term>Decimal digits only.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowDecimalPoint"/></term>
<term>The decimal point (.) and <i>fractional-digits</i> elements. However, <i>fractional-digits</i> must consist
of only one or more 0 digits or the method returns <c>false</c>.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowExponent"/></term>
<term>The <paramref name="s"/> parameter can also use exponential notation. If <paramref name="s"/> represents a
number in exponential notation, it must represent an integer within the range of the <see cref="T:System.SByte"/> data type
without a non-zero, fractional component.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowLeadingWhite"/></term>
<term>The <i>ws</i> element at the beginning of <paramref name="s"/>.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowTrailingWhite"/></term>
<term>The <i>ws</i> element at the end of <paramref name="s"/>.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowLeadingSign"/></term>
<term>A sign can appear before <i>digits</i>.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowTrailingSign"/></term>
<term>A sign can appear after <i>digits</i>.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowParentheses"/></term>
<term>The <i>sign</i> element in the form of parentheses enclosing the numeric value.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowThousands"/></term>
<term>The thousands separator (,) element.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowCurrencySymbol"/></term>
<term>The <i>$</i> element.</term>
</item>
</list>
<para/>
The <see cref="T:J2N.Globalization.NumberStyle"/> enum can be converted to the .NET <see cref="T:System.Globalization.NumberStyles"/> enum by using the
<see cref="M:J2N.Globalization.NumberStyleExtensions.ToNumberStyles(J2N.Globalization.NumberStyle)"/> extension method.
Similarly, <see cref="T:System.Globalization.NumberStyles"/> enum can be converted to the J2N <see cref="T:J2N.Globalization.NumberStyle"/> enum by using
the <see cref="M:J2N.Globalization.NumberStyleExtensions.ToNumberStyle(System.Globalization.NumberStyles)"/> extension method.
<para/>
If the <see cref="F:J2N.Globalization.NumberStyle.AllowHexSpecifier"/> flag is used, <paramref name="s"/> must be a hexadecimal value without a prefix.
For example, "F3" parses successfully, but "0xF3" does not. The only other flags that can be present in <paramref name="style"/> are
<see cref="F:J2N.Globalization.NumberStyle.AllowLeadingWhite"/> and <see cref="F:J2N.Globalization.NumberStyle.AllowTrailingWhite"/>. (The <see cref="T:J2N.Globalization.NumberStyle"/> enumeration
has a composite number style, <see cref="F:J2N.Globalization.NumberStyle.HexNumber"/>, that includes both white space flags.)
<para/>
The <paramref name="provider"/> parameter is an <see cref="T:System.IFormatProvider"/> implementation, such as a <see cref="T:System.Globalization.CultureInfo"/> object,
a <see cref="T:System.Globalization.NumberFormatInfo"/> object or a <see cref="T:J2N.Text.StringFormatter"/> object, whose <see cref="M:System.IFormatProvider.GetFormat(System.Type)"/>
method returns a <see cref="T:System.Globalization.NumberFormatInfo"/> object. The <see cref="T:System.Globalization.NumberFormatInfo"/> object provides culture-specific information about
the format of <paramref name="s"/>. When the <see cref="M:J2N.Numerics.SByte.GetInstance(System.String,System.IFormatProvider)"/> method is invoked, it calls the provider parameter's
<see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> method and passes it a <see cref="T:System.Type"/> object that represents the <see cref="T:System.Globalization.NumberFormatInfo"/> type.
The <see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> method then returns the <see cref="T:System.Globalization.NumberFormatInfo"/> object that provides information about the
format of the <paramref name="s"/> parameter. There are three ways to use the <paramref name="provider"/> parameter to supply custom formatting
information to the parse operation:
<list type="bullet">
<item><description>You can pass a <see cref="T:System.Globalization.CultureInfo"/> object that represents the culture that supplies formatting information. Its
<see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> method returns the <see cref="T:System.Globalization.NumberFormatInfo"/> object that provides numeric formatting
information for that culture.</description></item>
<item><description>You can pass the actual <see cref="T:System.Globalization.NumberFormatInfo"/> object that provides numeric formatting information. (Its
implementation of <see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> just returns itself.)</description></item>
<item><description>You can pass a custom object that implements <see cref="T:System.IFormatProvider"/>. Its <see cref="M:System.IFormatProvider.GetFormat(System.Type)"/>
method instantiates and returns the <see cref="T:System.Globalization.NumberFormatInfo"/> object that provides formatting information.</description></item>
</list>
If <paramref name="provider"/> is <c>null</c> or a <see cref="T:System.Globalization.NumberFormatInfo"/> object cannot be obtained, the <see cref="T:System.Globalization.NumberFormatInfo"/>
object for the current culture is used.
</remarks>
<seealso cref="M:J2N.Numerics.SByte.TryParse(System.String,J2N.Globalization.NumberStyle,System.IFormatProvider,System.SByte@)"/>
<seealso cref="M:J2N.Numerics.SByte.Parse(System.String,J2N.Globalization.NumberStyle,System.IFormatProvider)"/>
</member>
<member name="M:J2N.Numerics.SByte.GetInstance(System.String,System.Int32)">
<summary>
Parses the <see cref="T:System.String"/> argument as a <see cref="T:J2N.Numerics.SByte"/> in the specified <paramref name="radix"/>.
<para/>
Usage Note: The conversion operation is similar to the <see cref="M:System.Convert.ToSByte(System.String,System.Int32)"/> method. It differs in that
it allows the use of the ASCII character \u002d ('-') or \u002B ('+') in any <paramref name="radix"/>.
<para/>
Supports any BMP (Basic Multilingual Plane) or SMP (Supplementary Mulitlingual Plane) digit as defined by Unicode 10.0.
<para/>
This is the same operation as Byte.valueOf(string) in the JDK when specifying a <paramref name="radix"/> of 10, or
Byte.valueOf(string, int) for any valid <paramref name="radix"/>.
</summary>
<param name="s">The <see cref="T:System.String"/> containing the <see cref="T:System.SByte"/> representation to be parsed.</param>
<param name="radix">The radix (or base) to use when parsing <paramref name="s"/>. The value must be in the range
<see cref="F:J2N.Character.MinRadix"/> - <see cref="F:J2N.Character.MaxRadix"/> inclusive.</param>
<returns>An immutable <see cref="T:J2N.Numerics.SByte"/> instance that is equivalent to the number in <paramref name="s"/>, or 0 (zero) if
<paramref name="s"/> is <c>null</c>.</returns>
<remarks>
If <paramref name="radix"/> is 16, you can prefix the number specified by the <paramref name="s"/> parameter with "0x" or "0X".
<para/>
To specify a negative value for base (radix) 10 numeric representations, use the ASCII character \u002d ('-').
<para/>
For any other <paramref name="radix"/>, negative values may either be specified with ASCII character \u002d ('-')
(as in Java) or by specifying the two's complement representation (as in .NET), but not both.
In the latter case, the highest-order binary bit of a long integer (bit 7) is interpreted as the sign bit.
As a result, it is possible to write code in which a non-base 10 number that is out of the range of the <see cref="T:System.SByte"/>
data type is converted to a <see cref="T:System.SByte"/> value without the method throwing an exception.
</remarks>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="radix"/> is less than <see cref="F:J2N.Character.MinRadix"/> or greater than <see cref="F:J2N.Character.MaxRadix"/>.
</exception>
<exception cref="T:System.FormatException">
<paramref name="s"/> contains a character that is not a valid digit in the base specified by <paramref name="radix"/>.
The exception message indicates that there are no digits to convert if the first character in <paramref name="s"/> is invalid;
otherwise, the message indicates that <paramref name="s"/> contains invalid trailing characters.
<para/>
-or-
<para/>
<paramref name="s"/> contains only a the ASCII character \u002d ('-') or \u002B ('+') sign and/or hexadecimal
prefix 0X or 0x with no digits.
</exception>
<exception cref="T:System.OverflowException">
<paramref name="s"/> represents a number that is less than <see cref="F:System.SByte.MinValue"/> or greater than <see cref="F:System.SByte.MaxValue"/>.
</exception>
<seealso cref="M:J2N.Numerics.SByte.TryParse(System.String,System.Int32,System.SByte@)"/>
<seealso cref="M:J2N.Numerics.SByte.Parse(System.String,System.Int32)"/>
</member>
<member name="M:J2N.Numerics.SByte.GetInstance(System.SByte)">
<summary>
Returns an immutable <see cref="T:J2N.Numerics.SByte"/> instance for the specified <paramref name="value"/>.
<para/>
Usage Note: This is the same operation as Byte.valueOf() in the JDK.
</summary>
<param name="value">The <see cref="T:System.SByte"/> value the returned instance represents.</param>
<returns>An immutable <see cref="T:J2N.Numerics.SByte"/> instance containing the <paramref name="value"/>,
which may be retrieved from a cache.</returns>
</member>
<member name="M:J2N.Numerics.SByte.op_Implicit(J2N.Numerics.SByte)~System.SByte">
<inheritdoc/>
</member>
<member name="M:J2N.Numerics.SByte.op_Implicit(System.SByte)~J2N.Numerics.SByte">
<inheritdoc/>
</member>
<member name="M:J2N.Numerics.SByte.ToByte">
<inheritdoc/>
</member>
<member name="M:J2N.Numerics.SByte.ToDouble">
<inheritdoc/>
</member>
<member name="M:J2N.Numerics.SByte.ToInt16">
<inheritdoc/>
</member>
<member name="M:J2N.Numerics.SByte.ToInt32">
<inheritdoc/>
</member>
<member name="M:J2N.Numerics.SByte.ToInt64">
<inheritdoc/>
</member>
<member name="M:J2N.Numerics.SByte.ToSByte">
<inheritdoc/>
</member>
<member name="M:J2N.Numerics.SByte.ToSingle">
<inheritdoc/>
</member>
<member name="M:J2N.Numerics.SByte.GetTypeCode">
<summary>
Returns the <see cref="T:System.TypeCode"/> for value type <see cref="T:System.SByte"/>.
</summary>
<returns>The enumerated constant, <see cref="F:System.TypeCode.SByte"/>.</returns>
</member>
<member name="T:J2N.Numerics.Single">
<summary>
An immutable reference type that wraps the primitive <see cref="T:System.Single"/> type.
<para/>
In addition, this class provides methods for converting a <see cref="T:System.Single"/> to a <see cref="T:System.String"/> and
a <see cref="T:System.String"/> to a <see cref="T:System.Single"/> that are compatible with Java. These methods provide better performance
for .NET Core 3.0 and higher as well as patch the broken round-trip behavior and add support for negative zero for
.NET platforms prior to .NET Core 3.0.
<para/>
Instances of this class can be produced implicitly by setting a <see cref="T:System.Single"/> value to a variable declared
as <see cref="T:J2N.Numerics.Single"/>
<code>
float value = 4.4f;
Single instance = value;
</code>
Or explicitly by calling one of the <see cref="M:J2N.Numerics.Single.GetInstance(System.Single)"/> methods.
<para/>
The <see cref="T:System.Single"/> value of a <see cref="T:J2N.Numerics.Single"/> can also be retrieved in several ways. For implicit
conversion, simply assign a <see cref="T:System.Single"/> variable an instance of <see cref="T:J2N.Numerics.Single"/>.
<code>
Single instance = Single.GetInstance(4.4f);
float value = instance;
</code>
To explicitly get the value, call <see cref="M:J2N.Numerics.Single.ToSingle"/> or use the <see cref="T:System.Convert"/> class.
<code>
float converted1 = instance.ToSingle();
float converted2 = Convert.ToSingle(instance, NumberFormatInfo.InvariantInfo);
</code>
<para/>
In most cases, the number types in .NET will suffice. The main reason for creating an object to wrap numeric types is to
provide a way to make strongly-typed instances that can co-exist in collections and arrays with reference types.
For example, when creating a table object that has columns with a mix of number and string data types.
When porting code from Java, there are sometimes cases where the design didn't factor in the use of value types,
so these classes can be used rather than reworking the design.
For more information about numbers classes, see
<a href="https://docs.oracle.com/javase/tutorial/java/data/numberclasses.html">The Numbers Classes</a>.
</summary>
<seealso cref="T:J2N.Numerics.Number"/>
<seealso cref="T:System.IConvertible"/>
<seealso cref="T:System.IFormattable"/>
<seealso cref="T:System.IComparable"/>
</member>
<member name="F:J2N.Numerics.Single.value">
<summary>
The value which the receiver represents.
</summary>
</member>
<member name="F:J2N.Numerics.Single.MaxExponent">
<summary>
Maximum exponent a finite <see cref="T:System.Single"/> variable may have.
</summary>
</member>
<member name="F:J2N.Numerics.Single.MinExponent">
<summary>
Minimum exponent a normalized <see cref="T:System.Single"/> variable may have.
</summary>
</member>
<member name="F:J2N.Numerics.Single.MinNormal">
<summary>
The smallest positive normal value of type <see cref="T:System.Single"/>, 2<sup>-126</sup>.
It is equal to the value <c>BitConversion.Int32BitsToSingle(0x00800000)</c>.
</summary>
</member>
<member name="F:J2N.Numerics.Single.Size">
<summary>
The number of bits needed to represent a <see cref="T:System.Single"/> in
two's complement form.
</summary>
</member>
<member name="M:J2N.Numerics.Single.#ctor(System.Single)">
<summary>
Initializes a new instance of the <see cref="T:J2N.Numerics.Single"/> class.
</summary>
<param name="value">The primitive <see cref="T:System.Single"/> value to store in the new instance.</param>
</member>
<member name="M:J2N.Numerics.Single.CompareTo(J2N.Numerics.Single)">
<summary>
Compares this instance to a specified <see cref="T:J2N.Numerics.Single"/> and returns an indication of their relative values.
</summary>
<param name="value">An <see cref="T:J2N.Numerics.Single"/> to compare, or <c>null</c>.</param>
<returns>
A signed integer that indicates the relative order of this instance and <paramref name="value"/>.
<list type="table">
<listheader>
<term>Return Value</term>
<term>Description </term>
</listheader>
<item>
<term>Less than zero</term>
<term>This instance is less than <paramref name="value"/>.</term>
</item>
<item>
<term>Zero</term>
<term>This instance is equal to <paramref name="value"/>.</term>
</item>
<item>
<term>Greater than zero</term>
<term>This instance is greater than <paramref name="value"/>, or <paramref name="value"/> is <c>null</c>.</term>
</item>
</list>
</returns>
<remarks>
There are two special cases:
<list type="table">
<item><description><see cref="F:System.Single.NaN"/> is equal to <see cref="F:System.Single.NaN"/> and it is greater
than any other double value, including <see cref="F:System.Single.PositiveInfinity"/></description></item>
<item><description>+0.0f (positive zero) is greater than -0.0f (negative zero).</description></item>
</list>
<para/>
This method implements the <see cref="T:System.IComparable`1"/> interface and performs slightly better than the <see cref="M:J2N.Numerics.Single.CompareTo(System.Object)"/>
method because it does not have to convert the <paramref name="value"/> parameter to an object.
</remarks>
</member>
<member name="M:J2N.Numerics.Single.CompareTo(System.Object)">
<summary>
Compares this instance to a specified object and returns an indication of their relative values.
</summary>
<param name="value">An object to compare, or <c>null</c>.</param>
<returns>
A signed integer that indicates the relative order of this instance and <paramref name="value"/>.
<list type="table">
<listheader>
<term>Return Value</term>
<term>Description </term>
</listheader>
<item>
<term>Less than zero</term>
<term>This instance is less than <paramref name="value"/>.</term>
</item>
<item>
<term>Zero</term>
<term>This instance is equal to <paramref name="value"/>.</term>
</item>
<item>
<term>Greater than zero</term>
<term>This instance is greater than <paramref name="value"/>, or <paramref name="value"/> is <c>null</c>.</term>
</item>
</list>
</returns>
<exception cref="T:System.ArgumentException"><paramref name="value"/> is not a <see cref="T:J2N.Numerics.Single"/>.</exception>
<remarks>
<paramref name="value"/> must be <c>null</c> or an instance of <see cref="T:J2N.Numerics.Single"/>; otherwise, an exception is thrown.
<para/>
Any instance of <see cref="T:J2N.Numerics.Single"/>, regardless of its value, is considered greater than <c>null</c>.
<para/>
There are two special cases:
<list type="table">
<item><description><see cref="F:System.Single.NaN"/> is equal to <see cref="F:System.Single.NaN"/> and it is greater
than any other double value, including <see cref="F:System.Single.PositiveInfinity"/></description></item>
<item><description>+0.0f (positive zero) is greater than -0.0f (negative zero).</description></item>
</list>
<para/>
This method is implemented to support the <see cref="T:System.IComparable"/> interface.
</remarks>
</member>
<member name="M:J2N.Numerics.Single.Equals(J2N.Numerics.Single)">
<summary>
Returns a value indicating whether this instance and a specified <see cref="T:J2N.Numerics.Single"/> object represent the same value.
</summary>
<param name="obj">An object to compare with this instance.</param>
<returns><c>true</c> if <paramref name="obj"/> is equal to this instance; otherwise, <c>false</c>.</returns>
<remarks>
This method implements the <see cref="T:System.IEquatable`1"/> interface, and performs slightly better than
<see cref="M:J2N.Numerics.Single.Equals(J2N.Numerics.Single)"/> because it does not have to convert the <paramref name="obj"/> parameter to an object.
<para/>
The <see cref="M:J2N.Numerics.Single.Equals(J2N.Numerics.Single)"/> method should be used with caution, because two apparently equivalent values
can be unequal due to the differing precision of the two values. The following example reports that the <see cref="T:J2N.Numerics.Single"/>
value .3333 and the <see cref="T:J2N.Numerics.Single"/> returned by dividing 1 by 3 are unequal.
<code>
// Initialize two floats with apparently identical values<br/>
Single float1 = .33333f;<br/>
Single float2 = (float)1 / 3;<br/>
// Compare them for equality<br/>
Console.WriteLine(float1.Equals(float2)); // displays false
</code>
<para/>
Rather than comparing for equality, one technique involves defining an acceptable relative margin of difference
between two values (such as .01% of one of the values). If the absolute value of the difference between the two
values is less than or equal to that margin, the difference is likely to be due to differences in precision and,
therefore, the values are likely to be equal. The following example uses this technique to compare .33333 and 1/3,
the two <see cref="T:J2N.Numerics.Single"/> values that the previous code example found to be unequal. In this case, the values are equal.
<code>
// Initialize two floats with apparently identical values<br/>
Single float1 = .333333f;<br/>
Single float2 = (float) 1/3;<br/>
// Define the tolerance for variation in their values<br/>
float difference = Math.Abs(float1 * .00001f);<br/>
<br/>
// Compare the values<br/>
// The output to the console indicates that the two values are equal<br/>
if (Math.Abs(float1 - float2) &lt;= difference)<br/>
Console.WriteLine("float1 and float2 are equal.");<br/>
else<br/>
Console.WriteLine("float1 and float2 are unequal.");
</code>
In this case, the values are equal.
<para/>
NOTE: Because <see cref="F:System.Single.Epsilon"/> defines the minimum expression of a positive value
whose range is near zero, the margin of difference between two similar values must be greater
than <see cref="F:System.Single.Epsilon"/>. Typically, it is many times greater than <see cref="F:System.Single.Epsilon"/>.
<para/>
A second technique involves comparing the difference between two floating-point numbers with some absolute value.
If the difference is less than or equal to that absolute value, the numbers are equal. If it is greater, the
numbers are not equal. One alternative is to arbitrarily select an absolute value. This is problematic, however,
because an acceptable margin of difference depends on the magnitude of the <see cref="T:J2N.Numerics.Single"/> values. A second
alternative takes advantage of a design feature of the floating-point format: The difference between the integer
representation of two floating-point values indicates the number of possible floating-point values that separates
them. For example, the difference between 0.0 and <see cref="F:System.Single.Epsilon"/> is 1, because <see cref="F:System.Single.Epsilon"/>
is the smallest representable value when working with a <see cref="T:J2N.Numerics.Single"/> whose value is zero. The following
example uses this technique to compare .33333 and 1/3, which are the two <see cref="T:J2N.Numerics.Single"/> values that the
previous code example with the <see cref="M:J2N.Numerics.Single.Equals(J2N.Numerics.Single)"/> method found to be unequal. Note that the example
uses <see cref="M:System.BitConverter.GetBytes(System.Single)"/> <see cref="M:System.BitConverter.ToInt32(System.Byte[],System.Int32)"/> method to convert
a double-precision floating-point value to its integer representation.
<code>
using System;<br/>
<br/>
public class Example<br/>
{<br/>
public static void Main()<br/>
{<br/>
Single value1 = .1f * 10f;<br/>
float value2x = 0f;<br/>
for (int ctr = 0; ctr &lt; 10; ctr++)<br/>
value2x += .1f;<br/>
Single value2 = Single.GetInstance(value2x);<br/>
<br/>
Console.WriteLine("{0:R} = {1:R}: {2}", value1, value2,<br/>
HasMinimalDifference(value1, value2, 1));<br/>
}<br/>
<br/>
public static bool HasMinimalDifference(float value1, float value2, int units)<br/>
{<br/>
byte[] bytes = BitConverter.GetBytes(value1);<br/>
int lValue1 = BitConverter.ToInt32(bytes, 0);<br/>
<br/>
bytes = BitConverter.GetBytes(value2);<br/>
int lValue2 = BitConverter.ToInt32(bytes, 0);<br/>
<br/>
// If the signs are different, return false except for +0 and -0.<br/>
if ((lValue1 &gt;&gt; 63) != (lValue2 &gt;&gt; 63))<br/>
{<br/>
if (value1 == value2)<br/>
return true;<br/>
<br/>
return false;<br/>
}<br/>
<br/>
int diff = Math.Abs(lValue1 - lValue2);<br/>
<br/>
if (diff &lt;= units)<br/>
return true;<br/>
<br/>
return false;<br/>
}<br/>
}<br/>
// The example displays the following output:<br/>
// 1 = 1.00000012: True
</code>
<para/>
If two <see cref="F:System.Single.NaN"/> values are tested for equality by calling the <see cref="M:J2N.Numerics.Single.Equals(J2N.Numerics.Single)"/>
method, the method returns <c>true</c>. However, if two <see cref="F:System.Single.NaN"/> values are tested for equality
by using the equality operator, the operator returns <c>false</c>. When you want to determine whether the value
of a <see cref="T:J2N.Numerics.Single"/> is not a number (NaN), an alternative is to call the <see cref="M:J2N.Numerics.Single.IsNaN"/> method.
</remarks>
</member>
<member name="M:J2N.Numerics.Single.Equals(System.Object)">
<summary>
Returns a value indicating whether this instance is equal to a specified object.
</summary>
<param name="obj">An object to compare with this instance.</param>
<returns><c>true</c> if <paramref name="obj"/> is an instance of <see cref="T:J2N.Numerics.Single"/> and equals the value of
this instance; otherwise, <c>false</c>.</returns>
<remarks>
The <see cref="M:J2N.Numerics.Single.Equals(System.Object)"/> method should be used with caution, because two apparently equivalent values
can be unequal due to the differing precision of the two values. The following example reports that the <see cref="T:J2N.Numerics.Single"/>
value .3333 and the <see cref="T:J2N.Numerics.Single"/> returned by dividing 1 by 3 are unequal.
<code>
// Initialize two singles with apparently identical values<br/>
Single float1 = Single.GetInstance(.33333f);<br/>
Single float2 = Single.GetInstance((float)1/3);<br/>
// Compare them for equality<br/>
Console.WriteLine(float1.Equals(float2)); // displays false
</code>
<para/>
NOTE: Because <see cref="F:System.Single.Epsilon"/> defines the minimum expression of a positive value
whose range is near zero, the margin of difference between two similar values must be greater
than <see cref="F:System.Single.Epsilon"/>. Typically, it is many times greater than <see cref="F:System.Single.Epsilon"/>.
<para/>
If two <see cref="F:System.Single.NaN"/> values are tested for equality by calling the <see cref="M:J2N.Numerics.Single.Equals(System.Object)"/>
method, the method returns <c>true</c>. However, if two <see cref="F:System.Single.NaN"/> values are tested for equality
by using the equality operator, the operator returns <c>false</c>. When you want to determine whether the value
of a <see cref="T:J2N.Numerics.Single"/> is not a number (NaN), an alternative is to call the <see cref="M:J2N.Numerics.Single.IsNaN"/> method.
</remarks>
</member>
<member name="M:J2N.Numerics.Single.SingleToInt32Bits(System.Single)">
<summary>
Returns a representation of the specified floating-point value
according to the IEEE 754 floating-point "single format" bit
layout.
<para/>Bit 31 (the bit that is selected by the mask
<c>0x80000000</c>) represents the sign of the floating-point
number.
Bits 30-23 (the bits that are selected by the mask
<c>0x7f800000</c>) represent the exponent.
Bits 22-0 (the bits that are selected by the mask
<c>0x007fffff</c>) represent the significand (sometimes called
the mantissa) of the floating-point number.
<para/>If the argument is positive infinity, the result is
<c>0x7f800000</c>.
<para/>If the argument is negative infinity, the result is
<c>0xff800000</c>.
<para/>If the argument is NaN, the result is <c>0x7fc00000</c>.
<para/>In all cases, the result is an integer that, when given to the
<see cref="M:J2N.Numerics.Single.Int32BitsToSingle(System.Int32)"/> method, will produce a floating-point
value the same as the argument to <see cref="M:J2N.Numerics.Single.SingleToInt32Bits(System.Single)"/>
(except all NaN values are collapsed to a single
"canonical" NaN value).
<para/>
NOTE: This corresponds to Float.floatToIntBits() in the JDK.
There is no corresponding method in .NET.
</summary>
<param name="value">A floating-point number.</param>
<returns>The bits that represent the floating-point number.</returns>
</member>
<member name="M:J2N.Numerics.Single.SingleToRawInt32Bits(System.Single)">
<summary>
Returns a representation of the specified floating-point value
according to the IEEE 754 floating-point "single format" bit
layout, preserving Not-a-Number (NaN) values.
<para/>Bit 31 (the bit that is selected by the mask
<c>0x80000000</c>) represents the sign of the floating-point
number.
Bits 30-23 (the bits that are selected by the mask
<c>0x7f800000</c>) represent the exponent.
Bits 22-0 (the bits that are selected by the mask
<c>0x007fffff</c>) represent the significand (sometimes called
the mantissa) of the floating-point number.
<para/>If the argument is positive infinity, the result is
<c>0x7f800000</c>.
<para/>If the argument is negative infinity, the result is
<c>0xff800000</c>.
<para/>If the argument is NaN, the result is the integer representing
the actual NaN value. Unlike the <see cref="M:J2N.Numerics.Single.SingleToInt32Bits(System.Single)"/>
method, <see cref="M:J2N.Numerics.Single.SingleToRawInt32Bits(System.Single)"/> does not collapse all the
bit patterns encoding a NaN to a single "canonical"
NaN value.
<para/>In all cases, the result is an integer that, when given to the
<see cref="M:J2N.Numerics.Single.Int32BitsToSingle(System.Int32)"/> method, will produce a
floating-point value the same as the argument to
<see cref="M:J2N.Numerics.Single.SingleToRawInt32Bits(System.Single)"/>.
<para/>
NOTE: This corresponds to Float.floatToRawIntBits(float) in the JDK
and BitConverter.SingleToInt32Bits(float) in .NET (where implemented).
</summary>
<param name="value">A floating-point number.</param>
<returns>The bits that represent the floating-point number.</returns>
</member>
<member name="M:J2N.Numerics.Single.GetHashCode">
<summary>
Returns the hash code for this instance.
</summary>
<returns>A 32-bit signed integer hash code.</returns>
</member>
<member name="M:J2N.Numerics.Single.Int32BitsToSingle(System.Int32)">
<summary>
Returns the <see cref="T:System.Single"/> value corresponding to a given
bit representation.
The argument is considered to be a representation of a
floating-point value according to the IEEE 754 floating-point
"single format" bit layout.
<para/>If the argument is <c>0x7f800000</c>, the result is positive
infinity.
<para/>If the argument is <c>0xff800000</c>, the result is negative
infinity.
<para/>If the argument is any value in the range
<c>0x7f800001</c> through <c>0x7fffffff</c> or in
the range <c>0xff800001</c> through
<c>0xffffffff</c>, the result is a NaN. No IEEE 754
floating-point operation provided by .NET can distinguish
between two NaN values of the same type with different bit
patterns. Distinct values of NaN are only distinguishable by
use of the <see cref="M:J2N.Numerics.Single.SingleToRawInt32Bits(System.Single)"/> method.
<para/>In all other cases, let <i>s</i>, <i>e</i>, and <i>m</i> be three
values that can be computed from the argument:
<code>
int s = ((bits &gt;&gt; 31) == 0) ? 1 : -1;
int e = ((bits &gt;&gt; 23) &amp; 0xff);
int m = (e == 0) ?
(bits &amp; 0x7fffff) &lt;&lt; 1 :
(bits &amp; 0x7fffff) | 0x800000;
</code>
Then the floating-point result equals the value of the mathematical
expression <i>s</i>&#183;<i>m</i>&#183;2<sup><i>e</i>-150</sup>.
<para/>Note that this method may not be able to return a
<see cref="F:System.Single.NaN"/> with exactly same bit pattern as the
<see cref="T:System.Int32"/> argument. IEEE 754 distinguishes between two
kinds of NaNs, quiet NaNs and <i>signaling NaNs</i>. The
differences between the two kinds of NaN are generally not
visible in .NET. Arithmetic operations on signaling NaNs turn
them into quiet NaNs with a different, but often similar, bit
pattern. However, on some processors merely copying a
signaling NaN also performs that conversion. In particular,
copying a signaling NaN to return it to the calling method may
perform this conversion. So <see cref="M:J2N.Numerics.Single.Int32BitsToSingle(System.Int32)"/> may
not be able to return a <see cref="T:System.Single"/> with a signaling NaN
bit pattern. Consequently, for some <see cref="T:System.Int32"/> values,
<c>BitConversion.SingleToRawInt32Bits(BitConversion.Int32BitsToSingle(start))</c> may
<i>not</i> equal <c>start</c>. Moreover, which
particular bit patterns represent signaling NaNs is platform
dependent; although all NaN bit patterns, quiet or signaling,
must be in the NaN range identified above.
<para/>
NOTE: This corresponds to Float.intBitsToFloat(int) in the JDK
and BitConverter.Int32BitsToSingle(int) in .NET (where implemented).
</summary>
<param name="value">The integer to convert.</param>
<returns>A single-precision floating-point value that represents the converted integer.</returns>
</member>
<member name="M:J2N.Numerics.Single.IsFinite">
<summary>
Determines whether this object's value is finite (zero, subnormal, or normal).
</summary>
<returns><c>true</c> if the value is finite (zero, subnormal or normal); otherwise <c>false</c>.</returns>
</member>
<member name="M:J2N.Numerics.Single.IsInfinity">
<summary>
Returns a value indicating whether this object's value evaluates to negative or positive infinity.
</summary>
<returns><c>true</c> if this object's value evaluates to <see cref="F:System.Single.PositiveInfinity"/> or
<see cref="F:System.Single.NegativeInfinity"/>; otherwise, <c>false</c>.</returns>
</member>
<member name="M:J2N.Numerics.Single.IsNaN">
<summary>
Returns a value that indicates whether this objects's value is not a number
(<see cref="F:System.Single.NaN"/>).
</summary>
<returns><c>true</c> if this object's' value evaluates to <see cref="F:System.Single.NaN"/>;
otherwise, <c>false</c>.</returns>
</member>
<member name="M:J2N.Numerics.Single.IsNegative">
<summary>
Determines whether this object's value value is negative.
</summary>
<returns><c>true</c> if the value is negative; otherwise, <c>false</c>.</returns>
</member>
<member name="M:J2N.Numerics.Single.IsNegativeInfinity">
<summary>
Returns a value indicating whether this object's value evaluates to negative
infinity.
</summary>
<returns><c>true</c> if the value evaluates to <see cref="F:System.Single.NegativeInfinity"/>;
otherwise, <c>false</c>.</returns>
</member>
<member name="M:J2N.Numerics.Single.IsNegativeZero">
<summary>
Gets a value indicating whether the current <see cref="T:System.Single"/> has the value negative zero (<c>-0.0f</c>).
While negative zero is supported by the <see cref="T:System.Single"/> datatype in .NET, comparisons and string formatting ignore
this feature. This method allows a simple way to check whether the current <see cref="T:System.Single"/> has the value negative zero.
</summary>
<returns><c>true</c> if the current value represents negative zero; otherwise, <c>false</c>.</returns>
</member>
<member name="M:J2N.Numerics.Single.IsNormal">
<summary>
Determines whether this object's value specified value is normal.
</summary>
<returns><c>true</c> if the value is normal; <c>false</c> otherwise.</returns>
</member>
<member name="M:J2N.Numerics.Single.IsPositiveInfinity">
<summary>
Returns a value indicating whether this object's value evaluates to positive infinity.
</summary>
<returns><c>true</c> if the value evaluates to <see cref="F:System.Single.PositiveInfinity"/>; otherwise, <c>false</c>.</returns>
</member>
<member name="M:J2N.Numerics.Single.IsSubnormal">
<summary>
Determines whether this object's value is subnormal.
</summary>
<returns><c>true</c> if the value is subnormal; <c>false</c> otherwise.</returns>
</member>
<member name="M:J2N.Numerics.Single.Parse(System.String,System.IFormatProvider)">
<summary>
Converts the string representation of a number in a specified style and culture-specific format to
its single-precision floating-point number equivalent.
<para/>
Usage Note: To approximately match the behavior of the JDK for decimal numbers, use <see cref="F:J2N.Globalization.NumberStyle.Float"/> combined with
<see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/> for <c>style</c> and <see cref="P:System.Globalization.NumberFormatInfo.InvariantInfo"/> for <paramref name="provider"/>.
To approximately match the behavior of the JDK for hexadecimal numbers, use <see cref="F:J2N.Globalization.NumberStyle.HexFloat"/> combined with
<see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/> for <c>style</c> and <see cref="P:System.Globalization.NumberFormatInfo.InvariantInfo"/> for <paramref name="provider"/>.
These options will parse any number that is supported by Java, but the hex specifier, exponent, and type suffix are all optional.
</summary>
<param name="s">A string that contains a number to convert.</param>
<param name="provider">An object that supplies culture-specific formatting information about <paramref name="s"/>.</param>
<returns>A single-precision floating-point number equivalent to the numeric value or symbol specified in <paramref name="s"/>.</returns>
<exception cref="T:System.ArgumentNullException"><paramref name="s"/> is <c>null</c>.</exception>
<exception cref="T:System.FormatException"><paramref name="s"/> does not represent a number in a valid format.</exception>
<remarks>
In .NET Core 3.0 and later, values that are too large to represent are rounded to <see cref="F:System.Single.PositiveInfinity"/> or
<see cref="F:System.Single.NegativeInfinity"/> as required by the IEEE 754 specification. In prior versions, including .NET Framework, parsing a
value that was too large to represent resulted in failure. This implementation uses the new parser, but patches it back to .NET Framework 4.0.
<para/>
This overload is typically used to convert text that can be formatted in a variety of ways to a <see cref="T:System.Single"/> value. For example,
it can be used to convert the text entered by a user into an HTML text box to a numeric value.
<para/>
The <paramref name="s"/> parameter is interpreted using a combination of the <see cref="F:J2N.Globalization.NumberStyle.Float"/> and <see cref="F:J2N.Globalization.NumberStyle.AllowThousands"/> flags.
The <paramref name="s"/> parameter can contain <see cref="P:System.Globalization.NumberFormatInfo.PositiveInfinitySymbol"/>, <see cref="P:System.Globalization.NumberFormatInfo.NegativeInfinitySymbol"/>, or
<see cref="P:System.Globalization.NumberFormatInfo.NaNSymbol"/> for the culture specified by <paramref name="provider"/>, or it can contain a string of the form:
<para/>
[ws][sign]integral-digits[.[fractional-digits]][E[sign]exponential-digits][ws]
<para/>
Elements framed in square brackets ([ and ]) are optional. Elements that contain the term "digits" consist of a series of numeric characters
ranging from 0 to 9. The following table describes each element.
<para/>
<list type="table">
<listheader>
<term>Element</term>
<term>Description</term>
</listheader>
<item>
<term><i>ws</i></term>
<term>A series of white-space characters.</term>
</item>
<item>
<term><i>sign</i></term>
<term>A negative sign symbol (-) or a positive sign symbol (+).</term>
</item>
<item>
<term><i>integral-digits</i></term>
<term>A series of digits ranging from 0 to 9 that specify the integral part of the number. Runs of <i>integral-digits</i> can be partitioned
by a group-separator symbol. For example, in some cultures a comma (,) separates groups of thousands. The <i>integral-digits</i> element can be absent
if the string contains the <i>fractional-digits</i> element.</term>
</item>
<item>
<term><i>.</i></term>
<term>A culture-specific decimal point symbol.</term>
</item>
<item>
<term><i>fractional-digits</i>
</term>
<term>A series of digits ranging from 0 to 9 that specify the fractional part of the number.</term>
</item>
<item>
<term><i>e</i></term>
<term>The 'e' or 'E' character, which indicates that the value is represented in exponential (scientific) notation.</term>
</item>
<item>
<term><i>exponential-digits</i></term>
<term>A sequence of decimal digits from 0 through 9 that specify an exponent.</term>
</item>
</list>
<para/>
For more information about numeric formats, see the <a href="https://docs.microsoft.com/en-us/dotnet/standard/base-types/formatting-types">
Formatting Types</a> topic.
<para/>
The <paramref name="provider"/> parameter is an <see cref="T:System.IFormatProvider"/> implementation, such as a <see cref="T:System.Globalization.CultureInfo"/> object,
a <see cref="T:System.Globalization.NumberFormatInfo"/> object or a <see cref="T:J2N.Text.StringFormatter"/> object, whose <see cref="M:System.IFormatProvider.GetFormat(System.Type)"/>
method returns a <see cref="T:System.Globalization.NumberFormatInfo"/> object. The <see cref="T:System.Globalization.NumberFormatInfo"/> object provides culture-specific information about
the format of <paramref name="s"/>. When the <see cref="M:J2N.Numerics.Single.Parse(System.String,System.IFormatProvider)"/> method is invoked, it calls the provider parameter's
<see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> method and passes it a <see cref="T:System.Type"/> object that represents the <see cref="T:System.Globalization.NumberFormatInfo"/> type.
The <see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> method then returns the <see cref="T:System.Globalization.NumberFormatInfo"/> object that provides information about the
format of the <paramref name="s"/> parameter. There are three ways to use the <paramref name="provider"/> parameter to supply custom formatting
information to the parse operation:
<list type="bullet">
<item><description>You can pass a <see cref="T:System.Globalization.CultureInfo"/> object that represents the culture that supplies formatting information. Its
<see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> method returns the <see cref="T:System.Globalization.NumberFormatInfo"/> object that provides numeric formatting
information for that culture.</description></item>
<item><description>You can pass the actual <see cref="T:System.Globalization.NumberFormatInfo"/> object that provides numeric formatting information. (Its
implementation of <see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> just returns itself.)</description></item>
<item><description>You can pass a custom object that implements <see cref="T:System.IFormatProvider"/>. Its <see cref="M:System.IFormatProvider.GetFormat(System.Type)"/>
method instantiates and returns the <see cref="T:System.Globalization.NumberFormatInfo"/> object that provides formatting information.</description></item>
</list>
If <paramref name="provider"/> is <c>null</c> or a <see cref="T:System.Globalization.NumberFormatInfo"/> object cannot be obtained, the <see cref="T:System.Globalization.NumberFormatInfo"/>
object for the current culture is used.
<para/>
If <paramref name="s"/> is out of range of the <see cref="T:System.Single"/> data type, the method returns <see cref="F:System.Single.NegativeInfinity"/> if
<paramref name="s"/> is less than <see cref="F:System.Single.MinValue"/> and <see cref="F:System.Single.PositiveInfinity"/> if <paramref name="s"/> is greater
than <see cref="F:System.Single.MaxValue"/>.
<para/>
If a separator is encountered in the <paramref name="s"/> parameter during a parse operation, and the applicable currency or number
decimal and group separators are the same, the parse operation assumes that the separator is a decimal separator rather than a group
separator. For more information about separators, see <see cref="P:System.Globalization.NumberFormatInfo.CurrencyDecimalSeparator"/>,
<see cref="P:System.Globalization.NumberFormatInfo.NumberDecimalSeparator"/>, <see cref="P:System.Globalization.NumberFormatInfo.CurrencyGroupSeparator"/>, and
<see cref="P:System.Globalization.NumberFormatInfo.NumberGroupSeparator"/>.
<para/>
Some examples of <paramref name="s"/> are "100", "-123,456,789", "123.45e+6", "+500", "5e2", "3.1416", "600.", "-.123", and "-Infinity".
</remarks>
<seealso cref="M:J2N.Numerics.Single.GetInstance(System.String,System.IFormatProvider)"/>
<seealso cref="M:J2N.Numerics.Single.TryParse(System.String,J2N.Globalization.NumberStyle,System.IFormatProvider,System.Single@)"/>
</member>
<member name="M:J2N.Numerics.Single.TryParse(System.String,System.Single@)">
<summary>
Converts the string representation of a number to
its single-precision floating-point number equivalent. A return value indicates whether the
conversion succeeded or failed.
<para/>
Usage Note: To approximately match the behavior of the JDK for decimal numbers, use <see cref="F:J2N.Globalization.NumberStyle.Float"/> combined with
<see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/> for <c>style</c> and <see cref="P:System.Globalization.NumberFormatInfo.InvariantInfo"/> for <c>provider</c>.
To approximately match the behavior of the JDK for hexadecimal numbers, use <see cref="F:J2N.Globalization.NumberStyle.HexFloat"/> combined with
<see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/> for <c>style</c> and <see cref="P:System.Globalization.NumberFormatInfo.InvariantInfo"/> for <c>provider</c>.
These options will parse any number that is supported by Java, but the hex specifier, exponent, and type suffix are all optional.
</summary>
<param name="s">A string representing a number to convert.</param>
<param name="result">When this method returns, contains the single-precision floating-point number equivalent to the
numeric value or symbol contained in <paramref name="s"/>, if the conversion succeeded, or zero if the conversion failed.
The conversion fails if the <paramref name="s"/> parameter is <c>null</c> or <see cref="F:System.String.Empty"/>.
This parameter is passed uninitialized; any value originally supplied in result will be overwritten.</param>
<returns><c>true</c> if <paramref name="s"/> was converted successfully; otherwise, <c>false</c>.</returns>
<remarks>
In .NET Core 3.0 and later, values that are too large to represent are rounded to <see cref="F:System.Single.PositiveInfinity"/> or
<see cref="F:System.Single.NegativeInfinity"/> as required by the IEEE 754 specification. In prior versions, including .NET Framework, parsing a
value that was too large to represent resulted in failure. This implementation uses the new parser, but patches it back to .NET Framework 4.0
and upgrades it to support Java's hexadecimal floating point format.
<para/>
This overload differs from the <see cref="M:J2N.Numerics.Single.Parse(System.String,J2N.Globalization.NumberStyle,System.IFormatProvider)"/> method by returning a Boolean value that indicates
whether the parse operation succeeded instead of returning the parsed numeric value. It eliminates the need to use exception handling to test
for a <see cref="T:System.FormatException"/> in the event that <paramref name="s"/> is invalid and cannot be successfully parsed.
<para/>
The <paramref name="s"/> parameter can contain <see cref="P:System.Globalization.NumberFormatInfo.PositiveInfinitySymbol"/>, <see cref="P:System.Globalization.NumberFormatInfo.NegativeInfinitySymbol"/>, or
<see cref="P:System.Globalization.NumberFormatInfo.NaNSymbol"/> (the string comparison will use <see cref="F:System.StringComparison.OrdinalIgnoreCase"/> comparison rules), or a string of the form:
<para/>
[ws][sign][integral-digits,]integral-digits[.[fractional-digits]][e[sign]exponential-digits][ws]
<para/>
Elements framed in square brackets ([ and ]) are optional. Elements that contain the term "digits" consist of a series of numeric characters
ranging from 0 to 9. The following table describes each element.
<para/>
<list type="table">
<listheader>
<term>Element</term>
<term>Description</term>
</listheader>
<item>
<term><i>ws</i></term>
<term>A series of white-space characters.</term>
</item>
<item>
<term><i>sign</i></term>
<term>A negative sign symbol (-) or a positive sign symbol (+).</term>
</item>
<item>
<term><i>integral-digits</i></term>
<term>A series of digits ranging from 0 to 9 that specify the integral part of the number. The <i>integral-digits</i> element can be absent
if the string contains the <i>fractional-digits</i> element.</term>
</item>
<item>
<term><i>,</i></term>
<term>A culture-specific group separator symbol.</term>
</item>
<item>
<term><i>.</i></term>
<term>A culture-specific decimal point symbol.</term>
</item>
<item>
<term><i>fractional-digits</i>
</term>
<term>A series of digits ranging from 0 to 9 that specify the fractional part of the number.</term>
</item>
<item>
<term><i>e</i></term>
<term>The 'e' or 'E' character, which indicates that the value is represented in exponential (scientific) notation.</term>
</item>
<item>
<term><i>exponential-digits</i></term>
<term>A sequence of decimal digits from 0 through 9 that specify an exponent.</term>
</item>
</list>
<para/>
For more information about numeric formats, see the <a href="https://docs.microsoft.com/en-us/dotnet/standard/base-types/formatting-types">
Formatting Types</a> topic.
<para/>
The <paramref name="s"/> parameter is interpreted using a combination of the <see cref="F:J2N.Globalization.NumberStyle.Float"/> and <see cref="F:J2N.Globalization.NumberStyle.AllowThousands"/>
flags. This means that white space and thousands separators are allowed but currency symbols are not. To explicitly define the
elements (such as currency symbols, thousands separators, and white space) that can be present in <paramref name="s"/>, use the
<see cref="M:J2N.Numerics.Single.TryParse(System.String,J2N.Globalization.NumberStyle,System.IFormatProvider,System.Single@)"/> method overload.
<para/>
The <paramref name="s"/> parameter is parsed using the formatting information in a <see cref="T:System.Globalization.NumberFormatInfo"/> object that is initialized for the
current system culture. For more information, see <see cref="P:System.Globalization.NumberFormatInfo.CurrentInfo"/>. To parse a string using the formatting information of
some other specified culture, use the <see cref="M:J2N.Numerics.Single.TryParse(System.String,J2N.Globalization.NumberStyle,System.IFormatProvider,System.Single@)"/> method overload.
<para/>
If you pass the <see cref="M:J2N.Numerics.Single.TryParse(System.String,System.Single@)"/> method a string that is created by calling the <see cref="M:J2N.Numerics.Single.ToString(System.Single,System.IFormatProvider)"/>
method and pass <see cref="P:J2N.Text.StringFormatter.InvariantCulture"/>, the original <see cref="T:System.Single"/> value is returned. However, because of a loss of precision,
the values using other implementations of <see cref="T:System.IFormatProvider"/> may not be equal.
<para/>
If <paramref name="s"/> is out of range of the <see cref="T:System.Single"/> data type, the method returns <see cref="F:System.Single.NegativeInfinity"/> if
<paramref name="s"/> is less than <see cref="F:System.Single.MinValue"/> and <see cref="F:System.Single.PositiveInfinity"/> if <paramref name="s"/> is greater
than <see cref="F:System.Single.MaxValue"/>.
<para/>
If a separator is encountered in the <paramref name="s"/> parameter during a parse operation, and the applicable currency or number
decimal and group separators are the same, the parse operation assumes that the separator is a decimal separator rather than a group
separator. For more information about separators, see <see cref="P:System.Globalization.NumberFormatInfo.CurrencyDecimalSeparator"/>,
<see cref="P:System.Globalization.NumberFormatInfo.NumberDecimalSeparator"/>, <see cref="P:System.Globalization.NumberFormatInfo.CurrencyGroupSeparator"/>, and
<see cref="P:System.Globalization.NumberFormatInfo.NumberGroupSeparator"/>.
</remarks>
<seealso cref="M:J2N.Numerics.Single.Parse(System.String,System.IFormatProvider)"/>
<seealso cref="M:J2N.Numerics.Single.GetInstance(System.String,System.IFormatProvider)"/>
</member>
<member name="M:J2N.Numerics.Single.TryParse(System.ReadOnlySpan{System.Char},System.Single@)">
<summary>
Converts the string representation of a number in a character span to its single-precision floating-point number equivalent.
A return value indicates whether the conversion succeeded or failed.
<para/>
Usage Note: To approximately match the behavior of the JDK for decimal numbers, use <see cref="F:J2N.Globalization.NumberStyle.Float"/> combined with
<see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/> for <c>style</c> and <see cref="P:System.Globalization.NumberFormatInfo.InvariantInfo"/> for <c>provider</c>.
To approximately match the behavior of the JDK for hexadecimal numbers, use <see cref="F:J2N.Globalization.NumberStyle.HexFloat"/> combined with
<see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/> for <c>style</c> and <see cref="P:System.Globalization.NumberFormatInfo.InvariantInfo"/> for <c>provider</c>.
These options will parse any number that is supported by Java, but the hex specifier, exponent, and type suffix are all optional.
</summary>
<param name="s">A string representing a number to convert.</param>
<param name="result">When this method returns, contains the single-precision floating-point number equivalent to the
numeric value or symbol contained in <paramref name="s"/>, if the conversion succeeded, or zero if the conversion failed.
The conversion fails if the <paramref name="s"/> parameter is <c>null</c> or <see cref="F:System.String.Empty"/>.
This parameter is passed uninitialized; any value originally supplied in result will be overwritten.</param>
<returns><c>true</c> if <paramref name="s"/> was converted successfully; otherwise, <c>false</c>.</returns>
<remarks>
In .NET Core 3.0 and later, values that are too large to represent are rounded to <see cref="F:System.Single.PositiveInfinity"/> or
<see cref="F:System.Single.NegativeInfinity"/> as required by the IEEE 754 specification. In prior versions, including .NET Framework, parsing a
value that was too large to represent resulted in failure. This implementation uses the new parser, but patches it back to .NET Framework 4.0
and upgrades it to support Java's hexadecimal floating point format.
<para/>
This overload differs from the <see cref="M:J2N.Numerics.Single.Parse(System.String,J2N.Globalization.NumberStyle,System.IFormatProvider)"/> method by returning a Boolean value that indicates
whether the parse operation succeeded instead of returning the parsed numeric value. It eliminates the need to use exception handling to test
for a <see cref="T:System.FormatException"/> in the event that <paramref name="s"/> is invalid and cannot be successfully parsed.
<para/>
The <paramref name="s"/> parameter can contain <see cref="P:System.Globalization.NumberFormatInfo.PositiveInfinitySymbol"/>, <see cref="P:System.Globalization.NumberFormatInfo.NegativeInfinitySymbol"/>, or
<see cref="P:System.Globalization.NumberFormatInfo.NaNSymbol"/> (the string comparison will use <see cref="F:System.StringComparison.OrdinalIgnoreCase"/> comparison rules), or a string of the form:
<para/>
[ws][sign][integral-digits,]integral-digits[.[fractional-digits]][e[sign]exponential-digits][ws]
<para/>
Elements framed in square brackets ([ and ]) are optional. Elements that contain the term "digits" consist of a series of numeric characters
ranging from 0 to 9. The following table describes each element.
<para/>
<list type="table">
<listheader>
<term>Element</term>
<term>Description</term>
</listheader>
<item>
<term><i>ws</i></term>
<term>A series of white-space characters.</term>
</item>
<item>
<term><i>sign</i></term>
<term>A negative sign symbol (-) or a positive sign symbol (+).</term>
</item>
<item>
<term><i>integral-digits</i></term>
<term>A series of digits ranging from 0 to 9 that specify the integral part of the number. The <i>integral-digits</i> element can be absent
if the string contains the <i>fractional-digits</i> element.</term>
</item>
<item>
<term><i>,</i></term>
<term>A culture-specific group separator symbol.</term>
</item>
<item>
<term><i>.</i></term>
<term>A culture-specific decimal point symbol.</term>
</item>
<item>
<term><i>fractional-digits</i>
</term>
<term>A series of digits ranging from 0 to 9 that specify the fractional part of the number.</term>
</item>
<item>
<term><i>e</i></term>
<term>The 'e' or 'E' character, which indicates that the value is represented in exponential (scientific) notation.</term>
</item>
<item>
<term><i>exponential-digits</i></term>
<term>A sequence of decimal digits from 0 through 9 that specify an exponent.</term>
</item>
</list>
<para/>
For more information about numeric formats, see the <a href="https://docs.microsoft.com/en-us/dotnet/standard/base-types/formatting-types">
Formatting Types</a> topic.
<para/>
The <paramref name="s"/> parameter is interpreted using a combination of the <see cref="F:J2N.Globalization.NumberStyle.Float"/> and <see cref="F:J2N.Globalization.NumberStyle.AllowThousands"/>
flags. This means that white space and thousands separators are allowed but currency symbols are not. To explicitly define the
elements (such as currency symbols, thousands separators, and white space) that can be present in <paramref name="s"/>, use the
<see cref="M:J2N.Numerics.Single.TryParse(System.String,J2N.Globalization.NumberStyle,System.IFormatProvider,System.Single@)"/> method overload.
<para/>
The <paramref name="s"/> parameter is parsed using the formatting information in a <see cref="T:System.Globalization.NumberFormatInfo"/> object that is initialized for the
current system culture. For more information, see <see cref="P:System.Globalization.NumberFormatInfo.CurrentInfo"/>. To parse a string using the formatting information of
some other specified culture, use the <see cref="M:J2N.Numerics.Single.TryParse(System.String,J2N.Globalization.NumberStyle,System.IFormatProvider,System.Single@)"/> method overload.
<para/>
If you pass the <see cref="M:J2N.Numerics.Single.TryParse(System.ReadOnlySpan{System.Char},System.Single@)"/> method a string that is created by calling the <see cref="M:J2N.Numerics.Single.ToString(System.Single,System.IFormatProvider)"/>
method and pass <see cref="P:J2N.Text.StringFormatter.InvariantCulture"/>, the original <see cref="T:System.Single"/> value is returned. However, because of a loss of precision,
the values using other implementations of <see cref="T:System.IFormatProvider"/> may not be equal.
<para/>
If <paramref name="s"/> is out of range of the <see cref="T:System.Single"/> data type, the method returns <see cref="F:System.Single.NegativeInfinity"/> if
<paramref name="s"/> is less than <see cref="F:System.Single.MinValue"/> and <see cref="F:System.Single.PositiveInfinity"/> if <paramref name="s"/> is greater
than <see cref="F:System.Single.MaxValue"/>.
<para/>
If a separator is encountered in the <paramref name="s"/> parameter during a parse operation, and the applicable currency or number
decimal and group separators are the same, the parse operation assumes that the separator is a decimal separator rather than a group
separator. For more information about separators, see <see cref="P:System.Globalization.NumberFormatInfo.CurrencyDecimalSeparator"/>,
<see cref="P:System.Globalization.NumberFormatInfo.NumberDecimalSeparator"/>, <see cref="P:System.Globalization.NumberFormatInfo.CurrencyGroupSeparator"/>, and
<see cref="P:System.Globalization.NumberFormatInfo.NumberGroupSeparator"/>.
</remarks>
<seealso cref="M:J2N.Numerics.Single.Parse(System.ReadOnlySpan{System.Char},J2N.Globalization.NumberStyle,System.IFormatProvider)"/>
<seealso cref="M:J2N.Numerics.Single.GetInstance(System.String,System.IFormatProvider)"/>
</member>
<member name="M:J2N.Numerics.Single.Parse(System.String,J2N.Globalization.NumberStyle,System.IFormatProvider)">
<summary>
Converts the string representation of a number in a specified style and culture-specific format to
its single-precision floating-point number equivalent.
<para/>
Usage Note: To approximately match the behavior of the JDK for decimal numbers, use <see cref="F:J2N.Globalization.NumberStyle.Float"/> combined with
<see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/> for <paramref name="style"/> and <see cref="P:System.Globalization.NumberFormatInfo.InvariantInfo"/> for <paramref name="provider"/>.
To approximately match the behavior of the JDK for hexadecimal numbers, use <see cref="F:J2N.Globalization.NumberStyle.HexFloat"/> combined with
<see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/> for <paramref name="style"/> and <see cref="P:System.Globalization.NumberFormatInfo.InvariantInfo"/> for <paramref name="provider"/>.
These options will parse any number that is supported by Java, but the hex specifier, exponent, and type suffix are all optional.
</summary>
<param name="s">A string that contains a number to convert.</param>
<param name="style">A bitwise combination of enumeration values that indicates the style elements
that can be present in <paramref name="s"/>. Typical values to specify is <see cref="F:J2N.Globalization.NumberStyle.Float"/>
combined with <see cref="F:J2N.Globalization.NumberStyle.AllowThousands"/> or, in the case of hexadecimal numbers,
<see cref="F:J2N.Globalization.NumberStyle.HexFloat"/>.</param>
<param name="provider">An object that supplies culture-specific formatting information about <paramref name="s"/>.</param>
<returns>A single-precision floating-point number equivalent to the numeric value or symbol specified in <paramref name="s"/>.</returns>
<exception cref="T:System.ArgumentNullException"><paramref name="s"/> is <c>null</c>.</exception>
<exception cref="T:System.FormatException"><paramref name="s"/> does not represent a numeric value.</exception>
<exception cref="T:System.ArgumentException">
<paramref name="style"/> is not a <see cref="T:J2N.Globalization.NumberStyle"/> value.
<para/>
-or-
<para/>
<paramref name="style"/> is not a combination of <see cref="F:J2N.Globalization.NumberStyle.AllowHexSpecifier"/>, <see cref="F:J2N.Globalization.NumberStyle.HexFloat"/>
and <see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/> values.
<para/>
-or-
<para/>
<paramref name="style"/> has <see cref="F:J2N.Globalization.NumberStyle.AllowHexSpecifier"/> and <see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/> values
but not <see cref="F:J2N.Globalization.NumberStyle.AllowExponent"/>. When type suffix is supplied in a hexadecimal number, exponent (prefixed with a
p or P) is required.
<para/>
-or-
<para/>
<paramref name="style"/> is a combination of <see cref="F:J2N.Globalization.NumberStyle.AllowCurrencySymbol"/> and <see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/>.
</exception>
<remarks>
In .NET Core 3.0 and later, values that are too large to represent are rounded to <see cref="F:System.Single.PositiveInfinity"/> or
<see cref="F:System.Single.NegativeInfinity"/> as required by the IEEE 754 specification. In prior versions, including .NET Framework, parsing a
value that was too large to represent resulted in failure. This implementation uses the new parser, but patches it back to .NET Framework 4.0
and upgrades it to support Java's hexadecimal floating point format.
<para/>
The <paramref name="style"/> parameter defines the style elements (such as white space, thousands separators, and currency symbols) that
are allowed in the s parameter for the parse operation to succeed. It must be a combination of bit flags from the <see cref="T:J2N.Globalization.NumberStyle"/> enumeration.
<para/>
The <paramref name="s"/> parameter can contain <see cref="P:System.Globalization.NumberFormatInfo.PositiveInfinitySymbol"/>, <see cref="P:System.Globalization.NumberFormatInfo.NegativeInfinitySymbol"/>, or
<see cref="P:System.Globalization.NumberFormatInfo.NaNSymbol"/> for the culture specified by <paramref name="provider"/>. Depending on the value of <paramref name="style"/>,
it can also take one of the following forms:
<para/>
[ws] [$] [sign][integral-digits,]integral-digits[.[fractional-digits]][E[sign]exponential-digits][type][ws]
<para/>
Or, if <paramref name="style"/> includes <see cref="F:J2N.Globalization.NumberStyle.AllowHexSpecifier"/>:
<para/>
[ws] [$] [sign][0x][hexdigits,]hexdigits[.[fractional-hexdigits]][P[sign]exponential-digits][type][ws]
<para/>
Elements framed in square brackets ([ and ]) are optional. The following table describes each element.
<para/>
<list type="table">
<listheader>
<term>Element</term>
<term>Description</term>
</listheader>
<item>
<term><i>ws</i></term>
<term>A series of white-space characters. White space can appear at the beginning of <paramref name="s"/> if style includes the
<see cref="F:J2N.Globalization.NumberStyle.AllowLeadingWhite"/> flag, and it can appear at the end of <paramref name="s"/> if style includes the
<see cref="F:J2N.Globalization.NumberStyle.AllowTrailingWhite"/> flag.</term>
</item>
<item>
<term><i>$</i></term>
<term>A culture-specific currency symbol. Its position in the string is defined by the <see cref="P:System.Globalization.NumberFormatInfo.CurrencyNegativePattern"/>
and <see cref="P:System.Globalization.NumberFormatInfo.CurrencyPositivePattern"/> properties of the <see cref="T:System.Globalization.NumberFormatInfo"/> object returned by the
<see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> method of the <paramref name="provider"/> parameter. The current culture's currency symbol can
appear in <paramref name="s"/> if style includes the <see cref="F:J2N.Globalization.NumberStyle.AllowCurrencySymbol"/> flag.</term>
</item>
<item>
<term><i>sign</i></term>
<term>A negative sign symbol (-) or a positive sign symbol (+). The sign can appear at the beginning of <paramref name="s"/> if
<paramref name="style"/> includes the <see cref="F:J2N.Globalization.NumberStyle.AllowLeadingSign"/> flag, and it can appear at the end of <paramref name="s"/>
if <paramref name="style"/> includes the <see cref="F:J2N.Globalization.NumberStyle.AllowTrailingSign"/> flag. Parentheses can be used in <paramref name="s"/>
to indicate a negative value if <paramref name="style"/> includes the <see cref="F:J2N.Globalization.NumberStyle.AllowParentheses"/> flag.</term>
</item>
<item>
<term><i>integral-digits</i></term>
<term>A series of digits ranging from 0 to 9 that specify the integral part of the number. The <i>integral-digits</i> element can be absent
if the string contains the <i>fractional-digits</i> element.</term>
</item>
<item>
<term><i>0x</i>/></term>
<term>The '0x' or '0X' characters, which indicate a hexadecimal number is to immediately follow.</term>
</item>
<item>
<term><i>hexdigits</i></term>
<term>A sequence of hexadecimal digits from 0 through f, or 0 through F that specify the integral part of the number. The <i>hexdigits</i>
element can be absent if the string contains the <i>fractional-hexdigits</i> element. Hexadecimal digits can appear in <paramref name="s"/>
if <paramref name="style"/> includes the <see cref="F:J2N.Globalization.NumberStyle.AllowHexSpecifier"/> flag.</term>
</item>
<item>
<term><i>,</i></term>
<term>A culture-specific thousands separator. The thousands separator of the culture specified by <paramref name="provider"/>
can appear in <paramref name="s"/> if <paramref name="style"/> includes the <see cref="F:J2N.Globalization.NumberStyle.AllowThousands"/> flag.</term>
</item>
<item>
<term><i>.</i></term>
<term>A culture-specific decimal point symbol. The decimal point symbol of the culture specified by <paramref name="provider"/>
can appear in <paramref name="s"/> if <paramref name="style"/> includes the <see cref="F:J2N.Globalization.NumberStyle.AllowDecimalPoint"/> flag.</term>
</item>
<item>
<term><i>fractional-digits</i>
</term>
<term>A series of digits ranging from 0 to 9 that specify the fractional part of the number. Fractional digits can appear in
<paramref name="s"/> if <paramref name="style"/> includes the <see cref="F:J2N.Globalization.NumberStyle.AllowDecimalPoint"/> flag.</term>
</item>
<item>
<term><i>fractional-hexdigits</i>
</term>
<term>A sequence of hexadecimal digits from 0 through f, or 0 through F that specify the fractional part of the number.
Fractional digits can appear in <paramref name="s"/> if <paramref name="style"/> includes both the
<see cref="F:J2N.Globalization.NumberStyle.AllowDecimalPoint"/> and <see cref="F:J2N.Globalization.NumberStyle.AllowHexSpecifier"/> flags.</term>
</item>
<item>
<term><i>e</i></term>
<term>The 'e' or 'E' character, which indicates that the value is represented in exponential notation. The <paramref name="s"/>
parameter can represent a number in exponential notation if style includes the <see cref="F:J2N.Globalization.NumberStyle.AllowExponent"/> flag.</term>
</item>
<item>
<term><i>p</i></term>
<term>The 'p' or 'P' character, which indicates that the hexadecimal value is represented in exponential notation. The <paramref name="s"/>
parameter can represent a hexadecimal number in exponential notation if style includes both the <see cref="F:J2N.Globalization.NumberStyle.AllowExponent"/>
and <see cref="F:J2N.Globalization.NumberStyle.AllowHexSpecifier"/> flags.</term>
</item>
<item>
<term><i>exponential-digits</i></term>
<term>A sequence of decimal digits from 0 through 9 that specify an exponent.</term>
</item>
<item>
<term><i>type</i></term>
<term>The 'UL', 'Ul', 'uL', 'ul', 'LU', 'Lu', 'lU', or 'lu', which is the
<a href="https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/language-specification/lexical-structure#6453-integer-literals">integral type suffix</a>
or 'f', 'F', 'd', 'D', 'm' or 'M' character, which is the
<a href="https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/language-specification/lexical-structure#6454-real-literals">real type suffix</a>
of the number as specified in the C# language specification. The type suffix can appear in <paramref name="s"/> if <paramref name="style"/>
includes the <see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/> flag. If <paramref name="style"/> includes the <see cref="F:J2N.Globalization.NumberStyle.AllowHexSpecifier"/>
flag, specifying the <see cref="F:J2N.Globalization.NumberStyle.AllowExponent"/> is required. Including an exponent in the string (prefixed with 'p' or 'P') is
required for the type suffix characters 'f', 'F', 'd', and 'D' since they would otherwise be interpreted as hexadecimal integral or fractional digits.</term>
</item>
<item>
<term><i>type</i></term>
<term>The 'UL', 'Ul', 'uL', 'ul', 'LU', 'Lu', 'lU', or 'lu', which is the
<a href="https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/language-specification/lexical-structure#6453-integer-literals">integral type suffix</a>
or 'f', 'F', 'd', 'D', 'm' or 'M' character, which is the
<a href="https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/language-specification/lexical-structure#6454-real-literals">real type suffix</a>
of the number as specified in the C# language specification. The type suffix can appear in <paramref name="s"/> if <paramref name="style"/>
includes the <see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/> flag. If <paramref name="style"/> includes the <see cref="F:J2N.Globalization.NumberStyle.AllowHexSpecifier"/>
flag, specifying the <see cref="F:J2N.Globalization.NumberStyle.AllowExponent"/> is required. Including an exponent in the string (prefixed with 'p' or 'P') is
required for the type suffix characters 'f', 'F', 'd', and 'D' since they would otherwise be interpreted as hexadecimal integral or fractional digits.</term>
</item>
</list>
<para/>
NOTE: Any terminating NUL (U+0000) characters in <paramref name="s"/> are ignored by the parsing operation, regardless of
the value of the <paramref name="style"/> argument.
<para/>
A string with decimal digits only (which corresponds to the <see cref="F:J2N.Globalization.NumberStyle.None"/> flag) always parses successfully.
Most of the remaining <see cref="T:J2N.Globalization.NumberStyle"/> members control elements that may be but are not required to be present in
this input string. The following table indicates how individual <see cref="T:J2N.Globalization.NumberStyle"/> members affect the elements that may
be present in <paramref name="s"/>.
<list type="table">
<listheader>
<term>Non-composite NumberStyle values</term>
<term>Elements permitted in <paramref name="s"/> in addition to digits</term>
</listheader>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.None"/></term>
<term>Decimal digits only.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowDecimalPoint"/></term>
<term>The decimal point (.) and <i>fractional-digits</i> elements. However, <i>fractional-digits</i> must consist
of only one or more 0 digits or the method returns <c>false</c>.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowExponent"/></term>
<term>The <paramref name="s"/> parameter can also use exponential notation. If <paramref name="s"/> represents a
number in exponential notation, it must represent an integer within the range of the <see cref="T:System.Int64"/> data type
without a non-zero, fractional component.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowLeadingWhite"/></term>
<term>The <i>ws</i> element at the beginning of <paramref name="s"/>.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowTrailingWhite"/></term>
<term>The <i>ws</i> element at the end of <paramref name="s"/>.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowLeadingSign"/></term>
<term>A sign can appear before <i>digits</i>.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowTrailingSign"/></term>
<term>A sign can appear after <i>digits</i>.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowParentheses"/></term>
<term>The <i>sign</i> element in the form of parentheses enclosing the numeric value.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowThousands"/></term>
<term>The thousands separator (,) element.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowCurrencySymbol"/></term>
<term>The <i>$</i> element.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/></term>
<term>The literal <i>type</i> suffix used in the literal identifier syntax of C# or Java.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.Currency"/></term>
<term>All elements. The <paramref name="s"/> parameter cannot represent a hexadecimal
number or a number in exponential notation (prefixed with an 'e' or 'E').</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.Float"/></term>
<term>The <i>ws</i> element at the beginning or end of <paramref name="s"/>, sign at
the beginning of <paramref name="s"/>, and the decimal point (.) symbol. The <paramref name="s"/>
parameter can also use exponential notation (prefixed with an 'e' or 'E').</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.HexFloat"/></term>
<term>The <i>ws</i> element at the beginning or end of <paramref name="s"/>, sign at
the beginning of <paramref name="s"/>, and the decimal point (.) symbol. The <paramref name="s"/>
parameter can also use exponential notation (prefixed with a 'p' or 'P').</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.Number"/></term>
<term>The <i>ws</i>, <i>sign</i>, thousands separator (,), and decimal point (.) elements.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.Any"/></term>
<term>All styles, except <paramref name="s"/> cannot represent a hexadecimal number.</term>
</item>
</list>
<para/>
The <see cref="T:J2N.Globalization.NumberStyle"/> enum can be converted to the .NET <see cref="T:System.Globalization.NumberStyles"/> enum by using the
<see cref="M:J2N.Globalization.NumberStyleExtensions.ToNumberStyles(J2N.Globalization.NumberStyle)"/> extension method.
Similarly, <see cref="T:System.Globalization.NumberStyles"/> enum can be converted to the J2N <see cref="T:J2N.Globalization.NumberStyle"/> enum by using
the <see cref="M:J2N.Globalization.NumberStyleExtensions.ToNumberStyle(System.Globalization.NumberStyles)"/> extension method.
<para/>
If the <see cref="F:J2N.Globalization.NumberStyle.AllowHexSpecifier"/> flag is used, <paramref name="s"/> must be a hexadecimal value which may include an optional 0x or 0X prefix.
For example, "0xC9AF3.8BD4C". This flag may be combined with any of the flags specified in <see cref="F:J2N.Globalization.NumberStyle.Float"/> and also
<see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/>. (The <see cref="T:J2N.Globalization.NumberStyle"/> enumeration has a composite style, <see cref="F:J2N.Globalization.NumberStyle.HexFloat"/>,
that includes all of those flags except <see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/>.)
<para/>
The <paramref name="provider"/> parameter is an <see cref="T:System.IFormatProvider"/> implementation, such as a <see cref="T:System.Globalization.CultureInfo"/> object,
a <see cref="T:System.Globalization.NumberFormatInfo"/> object or a <see cref="T:J2N.Text.StringFormatter"/> object, whose <see cref="M:System.IFormatProvider.GetFormat(System.Type)"/>
method returns a <see cref="T:System.Globalization.NumberFormatInfo"/> object. The <see cref="T:System.Globalization.NumberFormatInfo"/> object provides culture-specific information about
the format of <paramref name="s"/>. When the <see cref="M:J2N.Numerics.Single.Parse(System.String,System.IFormatProvider)"/> method is invoked, it calls the provider parameter's
<see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> method and passes it a <see cref="T:System.Type"/> object that represents the <see cref="T:System.Globalization.NumberFormatInfo"/> type.
The <see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> method then returns the <see cref="T:System.Globalization.NumberFormatInfo"/> object that provides information about the
format of the <paramref name="s"/> parameter. There are three ways to use the <paramref name="provider"/> parameter to supply custom formatting
information to the parse operation:
<list type="bullet">
<item><description>You can pass a <see cref="T:System.Globalization.CultureInfo"/> object that represents the culture that supplies formatting information. Its
<see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> method returns the <see cref="T:System.Globalization.NumberFormatInfo"/> object that provides numeric formatting
information for that culture.</description></item>
<item><description>You can pass the actual <see cref="T:System.Globalization.NumberFormatInfo"/> object that provides numeric formatting information. (Its
implementation of <see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> just returns itself.)</description></item>
<item><description>You can pass a custom object that implements <see cref="T:System.IFormatProvider"/>. Its <see cref="M:System.IFormatProvider.GetFormat(System.Type)"/>
method instantiates and returns the <see cref="T:System.Globalization.NumberFormatInfo"/> object that provides formatting information.</description></item>
</list>
If <paramref name="provider"/> is <c>null</c> or a <see cref="T:System.Globalization.NumberFormatInfo"/> object cannot be obtained, the <see cref="T:System.Globalization.NumberFormatInfo"/>
object for the current culture is used.
<para/>
If <paramref name="s"/> is out of range of the <see cref="T:System.Single"/> data type, the method returns <see cref="F:System.Single.NegativeInfinity"/> if
<paramref name="s"/> is less than <see cref="F:System.Single.MinValue"/> and <see cref="F:System.Single.PositiveInfinity"/> if <paramref name="s"/> is greater
than <see cref="F:System.Single.MaxValue"/>.
<para/>
If a separator is encountered in the <paramref name="s"/> parameter during a parse operation, and the applicable currency or number
decimal and group separators are the same, the parse operation assumes that the separator is a decimal separator rather than a group
separator. For more information about separators, see <see cref="P:System.Globalization.NumberFormatInfo.CurrencyDecimalSeparator"/>,
<see cref="P:System.Globalization.NumberFormatInfo.NumberDecimalSeparator"/>, <see cref="P:System.Globalization.NumberFormatInfo.CurrencyGroupSeparator"/>, and
<see cref="P:System.Globalization.NumberFormatInfo.NumberGroupSeparator"/>.
</remarks>
<seealso cref="M:J2N.Numerics.Single.GetInstance(System.String,J2N.Globalization.NumberStyle,System.IFormatProvider)"/>
<seealso cref="M:J2N.Numerics.Single.TryParse(System.String,J2N.Globalization.NumberStyle,System.IFormatProvider,System.Single@)"/>
</member>
<member name="M:J2N.Numerics.Single.Parse(System.ReadOnlySpan{System.Char},J2N.Globalization.NumberStyle,System.IFormatProvider)">
<summary>
Converts a character span that contains the string representation of a number in a specified style and culture-specific format to
its single-precision floating-point number equivalent.
<para/>
Usage Note: To approximately match the behavior of the JDK for decimal numbers, use <see cref="F:J2N.Globalization.NumberStyle.Float"/> combined with
<see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/> for <paramref name="style"/> and <see cref="P:System.Globalization.NumberFormatInfo.InvariantInfo"/> for <paramref name="provider"/>.
To approximately match the behavior of the JDK for hexadecimal numbers, use <see cref="F:J2N.Globalization.NumberStyle.HexFloat"/> combined with
<see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/> for <paramref name="style"/> and <see cref="P:System.Globalization.NumberFormatInfo.InvariantInfo"/> for <paramref name="provider"/>.
These options will parse any number that is supported by Java, but the hex specifier, exponent, and type suffix are all optional.
</summary>
<param name="s">A character span that contains the number to convert.</param>
<param name="style">A bitwise combination of enumeration values that indicates the style elements
that can be present in <paramref name="s"/>. Typical values to specify is <see cref="F:J2N.Globalization.NumberStyle.Float"/>
combined with <see cref="F:J2N.Globalization.NumberStyle.AllowThousands"/> or, in the case of hexadecimal numbers,
<see cref="F:J2N.Globalization.NumberStyle.HexFloat"/>.</param>
<param name="provider">An object that supplies culture-specific formatting information about <paramref name="s"/>.</param>
<returns>A single-precision floating-point number equivalent to the numeric value or symbol specified in <paramref name="s"/>.</returns>
<exception cref="T:System.FormatException"><paramref name="s"/> does not represent a numeric value.</exception>
<exception cref="T:System.ArgumentException">
<paramref name="style"/> is not a <see cref="T:J2N.Globalization.NumberStyle"/> value.
<para/>
-or-
<para/>
<paramref name="style"/> is not a combination of <see cref="F:J2N.Globalization.NumberStyle.AllowHexSpecifier"/>, <see cref="F:J2N.Globalization.NumberStyle.HexFloat"/>
and <see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/> values.
<para/>
-or-
<para/>
<paramref name="style"/> has <see cref="F:J2N.Globalization.NumberStyle.AllowHexSpecifier"/> and <see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/> values
but not <see cref="F:J2N.Globalization.NumberStyle.AllowExponent"/>. When type suffix is supplied in a hexadecimal number, exponent (prefixed with a
p or P) is required.
<para/>
-or-
<para/>
<paramref name="style"/> is a combination of <see cref="F:J2N.Globalization.NumberStyle.AllowCurrencySymbol"/> and <see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/>.
</exception>
<remarks>
If <paramref name="s"/> is out of range of the <see cref="T:System.Single"/> data type, the method returns <see cref="F:System.Single.NegativeInfinity"/> if
<paramref name="s"/> is less than <see cref="F:System.Single.MinValue"/> and <see cref="F:System.Single.PositiveInfinity"/> if <paramref name="s"/> is greater
than <see cref="F:System.Single.MaxValue"/>.
<para/>
The <paramref name="style"/> parameter defines the style elements (such as white space, thousands separators, and currency symbols) that
are allowed in the s parameter for the parse operation to succeed. It must be a combination of bit flags from the <see cref="T:J2N.Globalization.NumberStyle"/> enumeration.
<para/>
The <paramref name="s"/> parameter can contain <see cref="P:System.Globalization.NumberFormatInfo.PositiveInfinitySymbol"/>, <see cref="P:System.Globalization.NumberFormatInfo.NegativeInfinitySymbol"/>, or
<see cref="P:System.Globalization.NumberFormatInfo.NaNSymbol"/> for the culture specified by <paramref name="provider"/>. Depending on the value of <paramref name="style"/>,
it can also take one of the following forms:
<para/>
[ws] [$] [sign][integral-digits,]integral-digits[.[fractional-digits]][E[sign]exponential-digits][type][ws]
<para/>
Or, if <paramref name="style"/> includes <see cref="F:J2N.Globalization.NumberStyle.AllowHexSpecifier"/>:
<para/>
[ws] [$] [sign][0x][hexdigits,]hexdigits[.[fractional-hexdigits]][P[sign]exponential-digits][type][ws]
<para/>
Elements framed in square brackets ([ and ]) are optional. The following table describes each element.
<para/>
<list type="table">
<listheader>
<term>Element</term>
<term>Description</term>
</listheader>
<item>
<term><i>ws</i></term>
<term>A series of white-space characters. White space can appear at the beginning of <paramref name="s"/> if style includes the
<see cref="F:J2N.Globalization.NumberStyle.AllowLeadingWhite"/> flag, and it can appear at the end of <paramref name="s"/> if style includes the
<see cref="F:J2N.Globalization.NumberStyle.AllowTrailingWhite"/> flag.</term>
</item>
<item>
<term><i>$</i></term>
<term>A culture-specific currency symbol. Its position in the string is defined by the <see cref="P:System.Globalization.NumberFormatInfo.CurrencyNegativePattern"/>
and <see cref="P:System.Globalization.NumberFormatInfo.CurrencyPositivePattern"/> properties of the <see cref="T:System.Globalization.NumberFormatInfo"/> object returned by the
<see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> method of the <paramref name="provider"/> parameter. The current culture's currency symbol can
appear in <paramref name="s"/> if style includes the <see cref="F:J2N.Globalization.NumberStyle.AllowCurrencySymbol"/> flag.</term>
</item>
<item>
<term><i>sign</i></term>
<term>A negative sign symbol (-) or a positive sign symbol (+). The sign can appear at the beginning of <paramref name="s"/> if
<paramref name="style"/> includes the <see cref="F:J2N.Globalization.NumberStyle.AllowLeadingSign"/> flag, and it can appear at the end of <paramref name="s"/>
if <paramref name="style"/> includes the <see cref="F:J2N.Globalization.NumberStyle.AllowTrailingSign"/> flag. Parentheses can be used in <paramref name="s"/>
to indicate a negative value if <paramref name="style"/> includes the <see cref="F:J2N.Globalization.NumberStyle.AllowParentheses"/> flag.</term>
</item>
<item>
<term><i>integral-digits</i></term>
<term>A series of digits ranging from 0 to 9 that specify the integral part of the number. The <i>integral-digits</i> element can be absent
if the string contains the <i>fractional-digits</i> element.</term>
</item>
<item>
<term><i>0x</i>/></term>
<term>The '0x' or '0X' characters, which indicate a hexadecimal number is to immediately follow.</term>
</item>
<item>
<term><i>hexdigits</i></term>
<term>A sequence of hexadecimal digits from 0 through f, or 0 through F that specify the integral part of the number. The <i>hexdigits</i>
element can be absent if the string contains the <i>fractional-hexdigits</i> element. Hexadecimal digits can appear in <paramref name="s"/>
if <paramref name="style"/> includes the <see cref="F:J2N.Globalization.NumberStyle.AllowHexSpecifier"/> flag.</term>
</item>
<item>
<term><i>,</i></term>
<term>A culture-specific thousands separator. The thousands separator of the culture specified by <paramref name="provider"/>
can appear in <paramref name="s"/> if <paramref name="style"/> includes the <see cref="F:J2N.Globalization.NumberStyle.AllowThousands"/> flag.</term>
</item>
<item>
<term><i>.</i></term>
<term>A culture-specific decimal point symbol. The decimal point symbol of the culture specified by <paramref name="provider"/>
can appear in <paramref name="s"/> if <paramref name="style"/> includes the <see cref="F:J2N.Globalization.NumberStyle.AllowDecimalPoint"/> flag.</term>
</item>
<item>
<term><i>fractional-digits</i>
</term>
<term>A series of digits ranging from 0 to 9 that specify the fractional part of the number. Fractional digits can appear in
<paramref name="s"/> if <paramref name="style"/> includes the <see cref="F:J2N.Globalization.NumberStyle.AllowDecimalPoint"/> flag.</term>
</item>
<item>
<term><i>fractional-hexdigits</i>
</term>
<term>A sequence of hexadecimal digits from 0 through f, or 0 through F that specify the fractional part of the number.
Fractional digits can appear in <paramref name="s"/> if <paramref name="style"/> includes both the
<see cref="F:J2N.Globalization.NumberStyle.AllowDecimalPoint"/> and <see cref="F:J2N.Globalization.NumberStyle.AllowHexSpecifier"/> flags.</term>
</item>
<item>
<term><i>e</i></term>
<term>The 'e' or 'E' character, which indicates that the value is represented in exponential notation. The <paramref name="s"/>
parameter can represent a number in exponential notation if style includes the <see cref="F:J2N.Globalization.NumberStyle.AllowExponent"/> flag.</term>
</item>
<item>
<term><i>p</i></term>
<term>The 'p' or 'P' character, which indicates that the hexadecimal value is represented in exponential notation. The <paramref name="s"/>
parameter can represent a hexadecimal number in exponential notation if style includes both the <see cref="F:J2N.Globalization.NumberStyle.AllowExponent"/>
and <see cref="F:J2N.Globalization.NumberStyle.AllowHexSpecifier"/> flags.</term>
</item>
<item>
<term><i>exponential-digits</i></term>
<term>A sequence of decimal digits from 0 through 9 that specify an exponent.</term>
</item>
<item>
<term><i>type</i></term>
<term>The 'UL', 'Ul', 'uL', 'ul', 'LU', 'Lu', 'lU', or 'lu', which is the
<a href="https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/language-specification/lexical-structure#6453-integer-literals">integral type suffix</a>
or 'f', 'F', 'd', 'D', 'm' or 'M' character, which is the
<a href="https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/language-specification/lexical-structure#6454-real-literals">real type suffix</a>
of the number as specified in the C# language specification. The type suffix can appear in <paramref name="s"/> if <paramref name="style"/>
includes the <see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/> flag. If <paramref name="style"/> includes the <see cref="F:J2N.Globalization.NumberStyle.AllowHexSpecifier"/>
flag, specifying the <see cref="F:J2N.Globalization.NumberStyle.AllowExponent"/> is required. Including an exponent in the string (prefixed with 'p' or 'P') is
required for the type suffix characters 'f', 'F', 'd', and 'D' since they would otherwise be interpreted as hexadecimal integral or fractional digits.</term>
</item>
</list>
<para/>
NOTE: Any terminating NUL (U+0000) characters in <paramref name="s"/> are ignored by the parsing operation, regardless of
the value of the <paramref name="style"/> argument.
<para/>
A string with decimal digits only (which corresponds to the <see cref="F:J2N.Globalization.NumberStyle.None"/> flag) always parses successfully.
Most of the remaining <see cref="T:J2N.Globalization.NumberStyle"/> members control elements that may be but are not required to be present in
this input string. The following table indicates how individual <see cref="T:J2N.Globalization.NumberStyle"/> members affect the elements that may
be present in <paramref name="s"/>.
<list type="table">
<listheader>
<term>Non-composite NumberStyle values</term>
<term>Elements permitted in <paramref name="s"/> in addition to digits</term>
</listheader>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.None"/></term>
<term>Decimal digits only.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowDecimalPoint"/></term>
<term>The decimal point (.) and <i>fractional-digits</i> elements. However, <i>fractional-digits</i> must consist
of only one or more 0 digits or the method returns <c>false</c>.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowExponent"/></term>
<term>The <paramref name="s"/> parameter can also use exponential notation. If <paramref name="s"/> represents a
number in exponential notation, it must represent an integer within the range of the <see cref="T:System.Int64"/> data type
without a non-zero, fractional component.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowLeadingWhite"/></term>
<term>The <i>ws</i> element at the beginning of <paramref name="s"/>.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowTrailingWhite"/></term>
<term>The <i>ws</i> element at the end of <paramref name="s"/>.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowLeadingSign"/></term>
<term>A sign can appear before <i>digits</i>.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowTrailingSign"/></term>
<term>A sign can appear after <i>digits</i>.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowParentheses"/></term>
<term>The <i>sign</i> element in the form of parentheses enclosing the numeric value.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowThousands"/></term>
<term>The thousands separator (,) element.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowCurrencySymbol"/></term>
<term>The <i>$</i> element.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/></term>
<term>The literal <i>type</i> suffix used in the literal identifier syntax of C# or Java.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.Currency"/></term>
<term>All elements. The <paramref name="s"/> parameter cannot represent a hexadecimal
number or a number in exponential notation (prefixed with an 'e' or 'E').</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.Float"/></term>
<term>The <i>ws</i> element at the beginning or end of <paramref name="s"/>, sign at
the beginning of <paramref name="s"/>, and the decimal point (.) symbol. The <paramref name="s"/>
parameter can also use exponential notation (prefixed with an 'e' or 'E').</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.HexFloat"/></term>
<term>The <i>ws</i> element at the beginning or end of <paramref name="s"/>, sign at
the beginning of <paramref name="s"/>, and the decimal point (.) symbol. The <paramref name="s"/>
parameter can also use exponential notation (prefixed with a 'p' or 'P').</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.Number"/></term>
<term>The <i>ws</i>, <i>sign</i>, thousands separator (,), and decimal point (.) elements.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.Any"/></term>
<term>All styles, except <paramref name="s"/> cannot represent a hexadecimal number.</term>
</item>
</list>
<para/>
The <see cref="T:J2N.Globalization.NumberStyle"/> enum can be converted to the .NET <see cref="T:System.Globalization.NumberStyles"/> enum by using the
<see cref="M:J2N.Globalization.NumberStyleExtensions.ToNumberStyles(J2N.Globalization.NumberStyle)"/> extension method.
Similarly, <see cref="T:System.Globalization.NumberStyles"/> enum can be converted to the J2N <see cref="T:J2N.Globalization.NumberStyle"/> enum by using
the <see cref="M:J2N.Globalization.NumberStyleExtensions.ToNumberStyle(System.Globalization.NumberStyles)"/> extension method.
<para/>
If the <see cref="F:J2N.Globalization.NumberStyle.AllowHexSpecifier"/> flag is used, <paramref name="s"/> must be a hexadecimal value which may include an optional 0x or 0X prefix.
For example, "0xC9AF3.8BD4C". This flag may be combined with any of the flags specified in <see cref="F:J2N.Globalization.NumberStyle.Float"/> and also
<see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/>. (The <see cref="T:J2N.Globalization.NumberStyle"/> enumeration has a composite style, <see cref="F:J2N.Globalization.NumberStyle.HexFloat"/>,
that includes all of those flags except <see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/>.)
<para/>
The <paramref name="provider"/> parameter is an <see cref="T:System.IFormatProvider"/> implementation, such as a <see cref="T:System.Globalization.CultureInfo"/> object,
a <see cref="T:System.Globalization.NumberFormatInfo"/> object or a <see cref="T:J2N.Text.StringFormatter"/> object, whose <see cref="M:System.IFormatProvider.GetFormat(System.Type)"/>
method returns a <see cref="T:System.Globalization.NumberFormatInfo"/> object. The <see cref="T:System.Globalization.NumberFormatInfo"/> object provides culture-specific information about
the format of <paramref name="s"/>. When the <see cref="M:J2N.Numerics.Single.Parse(System.String,System.IFormatProvider)"/> method is invoked, it calls the provider parameter's
<see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> method and passes it a <see cref="T:System.Type"/> object that represents the <see cref="T:System.Globalization.NumberFormatInfo"/> type.
The <see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> method then returns the <see cref="T:System.Globalization.NumberFormatInfo"/> object that provides information about the
format of the <paramref name="s"/> parameter. There are three ways to use the <paramref name="provider"/> parameter to supply custom formatting
information to the parse operation:
<list type="bullet">
<item><description>You can pass a <see cref="T:System.Globalization.CultureInfo"/> object that represents the culture that supplies formatting information. Its
<see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> method returns the <see cref="T:System.Globalization.NumberFormatInfo"/> object that provides numeric formatting
information for that culture.</description></item>
<item><description>You can pass the actual <see cref="T:System.Globalization.NumberFormatInfo"/> object that provides numeric formatting information. (Its
implementation of <see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> just returns itself.)</description></item>
<item><description>You can pass a custom object that implements <see cref="T:System.IFormatProvider"/>. Its <see cref="M:System.IFormatProvider.GetFormat(System.Type)"/>
method instantiates and returns the <see cref="T:System.Globalization.NumberFormatInfo"/> object that provides formatting information.</description></item>
</list>
If <paramref name="provider"/> is <c>null</c> or a <see cref="T:System.Globalization.NumberFormatInfo"/> object cannot be obtained, the <see cref="T:System.Globalization.NumberFormatInfo"/>
object for the current culture is used.
<para/>
If <paramref name="s"/> is out of range of the <see cref="T:System.Single"/> data type, the method returns <see cref="F:System.Single.NegativeInfinity"/> if
<paramref name="s"/> is less than <see cref="F:System.Single.MinValue"/> and <see cref="F:System.Single.PositiveInfinity"/> if <paramref name="s"/> is greater
than <see cref="F:System.Single.MaxValue"/>.
<para/>
If a separator is encountered in the <paramref name="s"/> parameter during a parse operation, and the applicable currency or number
decimal and group separators are the same, the parse operation assumes that the separator is a decimal separator rather than a group
separator. For more information about separators, see <see cref="P:System.Globalization.NumberFormatInfo.CurrencyDecimalSeparator"/>,
<see cref="P:System.Globalization.NumberFormatInfo.NumberDecimalSeparator"/>, <see cref="P:System.Globalization.NumberFormatInfo.CurrencyGroupSeparator"/>, and
<see cref="P:System.Globalization.NumberFormatInfo.NumberGroupSeparator"/>.
</remarks>
<seealso cref="M:J2N.Numerics.Single.GetInstance(System.String,J2N.Globalization.NumberStyle,System.IFormatProvider)"/>
<seealso cref="M:J2N.Numerics.Single.TryParse(System.ReadOnlySpan{System.Char},J2N.Globalization.NumberStyle,System.IFormatProvider,System.Single@)"/>
</member>
<member name="M:J2N.Numerics.Single.TryParse(System.String,J2N.Globalization.NumberStyle,System.IFormatProvider,System.Single@)">
<summary>
Converts the string representation of a number in a specified style and culture-specific format to
its single-precision floating-point number equivalent. A return value indicates whether the
conversion succeeded or failed.
<para/>
Usage Note: To approximately match the behavior of the JDK for decimal numbers, use <see cref="F:J2N.Globalization.NumberStyle.Float"/> combined with
<see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/> for <paramref name="style"/> and <see cref="P:System.Globalization.NumberFormatInfo.InvariantInfo"/> for <paramref name="provider"/>.
To approximately match the behavior of the JDK for hexadecimal numbers, use <see cref="F:J2N.Globalization.NumberStyle.HexFloat"/> combined with
<see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/> for <paramref name="style"/> and <see cref="P:System.Globalization.NumberFormatInfo.InvariantInfo"/> for <paramref name="provider"/>.
These options will parse any number that is supported by Java, but the hex specifier, exponent, and type suffix are all optional.
</summary>
<param name="s">A string representing a number to convert.</param>
<param name="style">A bitwise combination of enumeration values that indicates the style elements
that can be present in <paramref name="s"/>. Typical values to specify is <see cref="F:J2N.Globalization.NumberStyle.Float"/>
combined with <see cref="F:J2N.Globalization.NumberStyle.AllowThousands"/> or, in the case of hexadecimal numbers,
<see cref="F:J2N.Globalization.NumberStyle.HexFloat"/>.</param>
<param name="provider">An object that supplies culture-specific formatting information about <paramref name="s"/>.</param>
<param name="result">When this method returns, contains the single-precision floating-point number equivalent to the
numeric value or symbol contained in <paramref name="s"/>, if the conversion succeeded, or zero if the conversion failed.
The conversion fails if the <paramref name="s"/> parameter is <c>null</c> or <see cref="F:System.String.Empty"/>, is not in a format
compliant with <paramref name="style"/>, or if <paramref name="style"/> is not a valid combination of <see cref="T:J2N.Globalization.NumberStyle"/>
enumeration constants. This parameter is passed uninitialized; any value originally supplied in result will be overwritten.</param>
<returns><c>true</c> if <paramref name="s"/> was converted successfully; otherwise, <c>false</c>.</returns>
<exception cref="T:System.ArgumentException">
<paramref name="style"/> is not a <see cref="T:J2N.Globalization.NumberStyle"/> value.
<para/>
-or-
<para/>
<paramref name="style"/> is not a combination of <see cref="F:J2N.Globalization.NumberStyle.AllowHexSpecifier"/>, <see cref="F:J2N.Globalization.NumberStyle.HexFloat"/>
and <see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/> values.
<para/>
-or-
<para/>
<paramref name="style"/> has <see cref="F:J2N.Globalization.NumberStyle.AllowHexSpecifier"/> and <see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/> values
but not <see cref="F:J2N.Globalization.NumberStyle.AllowExponent"/>. When type suffix is supplied in a hexadecimal number, exponent (prefixed with a
p or P) is required.
<para/>
-or-
<para/>
<paramref name="style"/> is a combination of <see cref="F:J2N.Globalization.NumberStyle.AllowCurrencySymbol"/> and <see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/>.
</exception>
<remarks>
In .NET Core 3.0 and later, values that are too large to represent are rounded to <see cref="F:System.Single.PositiveInfinity"/> or
<see cref="F:System.Single.NegativeInfinity"/> as required by the IEEE 754 specification. In prior versions, including .NET Framework, parsing a
value that was too large to represent resulted in failure. This implementation uses the new parser, but patches it back to .NET Framework 4.0
and upgrades it to support Java's hexadecimal floating point format.
<para/>
This overload differs from the <see cref="M:J2N.Numerics.Single.Parse(System.String,J2N.Globalization.NumberStyle,System.IFormatProvider)"/> method by returning a Boolean value that indicates
whether the parse operation succeeded instead of returning the parsed numeric value. It eliminates the need to use exception handling to test
for a <see cref="T:System.FormatException"/> in the event that <paramref name="s"/> is invalid and cannot be successfully parsed.
<para/>
The <paramref name="style"/> parameter defines the style elements (such as white space, thousands separators, and currency symbols) that
are allowed in the s parameter for the parse operation to succeed. It must be a combination of bit flags from the <see cref="T:J2N.Globalization.NumberStyle"/> enumeration.
<para/>
The <paramref name="s"/> parameter can contain <see cref="P:System.Globalization.NumberFormatInfo.PositiveInfinitySymbol"/>, <see cref="P:System.Globalization.NumberFormatInfo.NegativeInfinitySymbol"/>, or
<see cref="P:System.Globalization.NumberFormatInfo.NaNSymbol"/> for the culture specified by <paramref name="provider"/>. Depending on the value of <paramref name="style"/>,
it can also take one of the following forms:
<para/>
[ws] [$] [sign][integral-digits,]integral-digits[.[fractional-digits]][E[sign]exponential-digits][type][ws]
<para/>
Or, if <paramref name="style"/> includes <see cref="F:J2N.Globalization.NumberStyle.AllowHexSpecifier"/>:
<para/>
[ws] [$] [sign][0x][hexdigits,]hexdigits[.[fractional-hexdigits]][P[sign]exponential-digits][type][ws]
<para/>
Elements framed in square brackets ([ and ]) are optional. The following table describes each element.
<para/>
<list type="table">
<listheader>
<term>Element</term>
<term>Description</term>
</listheader>
<item>
<term><i>ws</i></term>
<term>A series of white-space characters. White space can appear at the beginning of <paramref name="s"/> if style includes the
<see cref="F:J2N.Globalization.NumberStyle.AllowLeadingWhite"/> flag, and it can appear at the end of <paramref name="s"/> if style includes the
<see cref="F:J2N.Globalization.NumberStyle.AllowTrailingWhite"/> flag.</term>
</item>
<item>
<term><i>$</i></term>
<term>A culture-specific currency symbol. Its position in the string is defined by the <see cref="P:System.Globalization.NumberFormatInfo.CurrencyNegativePattern"/>
and <see cref="P:System.Globalization.NumberFormatInfo.CurrencyPositivePattern"/> properties of the <see cref="T:System.Globalization.NumberFormatInfo"/> object returned by the
<see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> method of the <paramref name="provider"/> parameter. The current culture's currency symbol can
appear in <paramref name="s"/> if style includes the <see cref="F:J2N.Globalization.NumberStyle.AllowCurrencySymbol"/> flag.</term>
</item>
<item>
<term><i>sign</i></term>
<term>A negative sign symbol (-) or a positive sign symbol (+). The sign can appear at the beginning of <paramref name="s"/> if
<paramref name="style"/> includes the <see cref="F:J2N.Globalization.NumberStyle.AllowLeadingSign"/> flag, and it can appear at the end of <paramref name="s"/>
if <paramref name="style"/> includes the <see cref="F:J2N.Globalization.NumberStyle.AllowTrailingSign"/> flag. Parentheses can be used in <paramref name="s"/>
to indicate a negative value if <paramref name="style"/> includes the <see cref="F:J2N.Globalization.NumberStyle.AllowParentheses"/> flag.</term>
</item>
<item>
<term><i>integral-digits</i></term>
<term>A series of digits ranging from 0 to 9 that specify the integral part of the number. The <i>integral-digits</i> element can be absent
if the string contains the <i>fractional-digits</i> element.</term>
</item>
<item>
<term><i>0x</i>/></term>
<term>The '0x' or '0X' characters, which indicate a hexadecimal number is to immediately follow.</term>
</item>
<item>
<term><i>hexdigits</i></term>
<term>A sequence of hexadecimal digits from 0 through f, or 0 through F that specify the integral part of the number. The <i>hexdigits</i>
element can be absent if the string contains the <i>fractional-hexdigits</i> element. Hexadecimal digits can appear in <paramref name="s"/>
if <paramref name="style"/> includes the <see cref="F:J2N.Globalization.NumberStyle.AllowHexSpecifier"/> flag.</term>
</item>
<item>
<term><i>,</i></term>
<term>A culture-specific thousands separator. The thousands separator of the culture specified by <paramref name="provider"/>
can appear in <paramref name="s"/> if <paramref name="style"/> includes the <see cref="F:J2N.Globalization.NumberStyle.AllowThousands"/> flag.</term>
</item>
<item>
<term><i>.</i></term>
<term>A culture-specific decimal point symbol. The decimal point symbol of the culture specified by <paramref name="provider"/>
can appear in <paramref name="s"/> if <paramref name="style"/> includes the <see cref="F:J2N.Globalization.NumberStyle.AllowDecimalPoint"/> flag.</term>
</item>
<item>
<term><i>fractional-digits</i>
</term>
<term>A series of digits ranging from 0 to 9 that specify the fractional part of the number. Fractional digits can appear in
<paramref name="s"/> if <paramref name="style"/> includes the <see cref="F:J2N.Globalization.NumberStyle.AllowDecimalPoint"/> flag.</term>
</item>
<item>
<term><i>fractional-hexdigits</i>
</term>
<term>A sequence of hexadecimal digits from 0 through f, or 0 through F that specify the fractional part of the number.
Fractional digits can appear in <paramref name="s"/> if <paramref name="style"/> includes both the
<see cref="F:J2N.Globalization.NumberStyle.AllowDecimalPoint"/> and <see cref="F:J2N.Globalization.NumberStyle.AllowHexSpecifier"/> flags.</term>
</item>
<item>
<term><i>e</i></term>
<term>The 'e' or 'E' character, which indicates that the value is represented in exponential notation. The <paramref name="s"/>
parameter can represent a number in exponential notation if style includes the <see cref="F:J2N.Globalization.NumberStyle.AllowExponent"/> flag.</term>
</item>
<item>
<term><i>p</i></term>
<term>The 'p' or 'P' character, which indicates that the hexadecimal value is represented in exponential notation. The <paramref name="s"/>
parameter can represent a hexadecimal number in exponential notation if style includes both the <see cref="F:J2N.Globalization.NumberStyle.AllowExponent"/>
and <see cref="F:J2N.Globalization.NumberStyle.AllowHexSpecifier"/> flags.</term>
</item>
<item>
<term><i>exponential-digits</i></term>
<term>A sequence of decimal digits from 0 through 9 that specify an exponent.</term>
</item>
<item>
<term><i>type</i></term>
<term>The 'UL', 'Ul', 'uL', 'ul', 'LU', 'Lu', 'lU', or 'lu', which is the
<a href="https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/language-specification/lexical-structure#6453-integer-literals">integral type suffix</a>
or 'f', 'F', 'd', 'D', 'm' or 'M' character, which is the
<a href="https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/language-specification/lexical-structure#6454-real-literals">real type suffix</a>
of the number as specified in the C# language specification. The type suffix can appear in <paramref name="s"/> if <paramref name="style"/>
includes the <see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/> flag. If <paramref name="style"/> includes the <see cref="F:J2N.Globalization.NumberStyle.AllowHexSpecifier"/>
flag, specifying the <see cref="F:J2N.Globalization.NumberStyle.AllowExponent"/> is required. Including an exponent in the string (prefixed with 'p' or 'P') is
required for the type suffix characters 'f', 'F', 'd', and 'D' since they would otherwise be interpreted as hexadecimal integral or fractional digits.</term>
</item>
</list>
<para/>
NOTE: Any terminating NUL (U+0000) characters in <paramref name="s"/> are ignored by the parsing operation, regardless of
the value of the <paramref name="style"/> argument.
<para/>
A string with decimal digits only (which corresponds to the <see cref="F:J2N.Globalization.NumberStyle.None"/> flag) always parses successfully.
Most of the remaining <see cref="T:J2N.Globalization.NumberStyle"/> members control elements that may be but are not required to be present in
this input string. The following table indicates how individual <see cref="T:J2N.Globalization.NumberStyle"/> members affect the elements that may
be present in <paramref name="s"/>.
<list type="table">
<listheader>
<term>Non-composite NumberStyle values</term>
<term>Elements permitted in <paramref name="s"/> in addition to digits</term>
</listheader>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.None"/></term>
<term>Decimal digits only.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowDecimalPoint"/></term>
<term>The decimal point (.) and <i>fractional-digits</i> elements. However, <i>fractional-digits</i> must consist
of only one or more 0 digits or the method returns <c>false</c>.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowExponent"/></term>
<term>The <paramref name="s"/> parameter can also use exponential notation. If <paramref name="s"/> represents a
number in exponential notation, it must represent an integer within the range of the <see cref="T:System.Int64"/> data type
without a non-zero, fractional component.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowLeadingWhite"/></term>
<term>The <i>ws</i> element at the beginning of <paramref name="s"/>.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowTrailingWhite"/></term>
<term>The <i>ws</i> element at the end of <paramref name="s"/>.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowLeadingSign"/></term>
<term>A sign can appear before <i>digits</i>.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowTrailingSign"/></term>
<term>A sign can appear after <i>digits</i>.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowParentheses"/></term>
<term>The <i>sign</i> element in the form of parentheses enclosing the numeric value.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowThousands"/></term>
<term>The thousands separator (,) element.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowCurrencySymbol"/></term>
<term>The <i>$</i> element.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/></term>
<term>The literal <i>type</i> suffix used in the literal identifier syntax of C# or Java.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.Currency"/></term>
<term>All elements. The <paramref name="s"/> parameter cannot represent a hexadecimal
number or a number in exponential notation (prefixed with an 'e' or 'E').</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.Float"/></term>
<term>The <i>ws</i> element at the beginning or end of <paramref name="s"/>, sign at
the beginning of <paramref name="s"/>, and the decimal point (.) symbol. The <paramref name="s"/>
parameter can also use exponential notation (prefixed with an 'e' or 'E').</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.HexFloat"/></term>
<term>The <i>ws</i> element at the beginning or end of <paramref name="s"/>, sign at
the beginning of <paramref name="s"/>, and the decimal point (.) symbol. The <paramref name="s"/>
parameter can also use exponential notation (prefixed with a 'p' or 'P').</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.Number"/></term>
<term>The <i>ws</i>, <i>sign</i>, thousands separator (,), and decimal point (.) elements.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.Any"/></term>
<term>All styles, except <paramref name="s"/> cannot represent a hexadecimal number.</term>
</item>
</list>
<para/>
The <see cref="T:J2N.Globalization.NumberStyle"/> enum can be converted to the .NET <see cref="T:System.Globalization.NumberStyles"/> enum by using the
<see cref="M:J2N.Globalization.NumberStyleExtensions.ToNumberStyles(J2N.Globalization.NumberStyle)"/> extension method.
Similarly, <see cref="T:System.Globalization.NumberStyles"/> enum can be converted to the J2N <see cref="T:J2N.Globalization.NumberStyle"/> enum by using
the <see cref="M:J2N.Globalization.NumberStyleExtensions.ToNumberStyle(System.Globalization.NumberStyles)"/> extension method.
<para/>
If the <see cref="F:J2N.Globalization.NumberStyle.AllowHexSpecifier"/> flag is used, <paramref name="s"/> must be a hexadecimal value which may include an optional 0x or 0X prefix.
For example, "0xC9AF3.8BD4C". This flag may be combined with any of the flags specified in <see cref="F:J2N.Globalization.NumberStyle.Float"/> and also
<see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/>. (The <see cref="T:J2N.Globalization.NumberStyle"/> enumeration has a composite style, <see cref="F:J2N.Globalization.NumberStyle.HexFloat"/>,
that includes all of those flags except <see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/>.)
<para/>
The <paramref name="provider"/> parameter is an <see cref="T:System.IFormatProvider"/> implementation, such as a <see cref="T:System.Globalization.CultureInfo"/> object,
a <see cref="T:System.Globalization.NumberFormatInfo"/> object or a <see cref="T:J2N.Text.StringFormatter"/> object, whose <see cref="M:System.IFormatProvider.GetFormat(System.Type)"/>
method returns a <see cref="T:System.Globalization.NumberFormatInfo"/> object. The <see cref="T:System.Globalization.NumberFormatInfo"/> object provides culture-specific information about
the format of <paramref name="s"/>. When the <see cref="M:J2N.Numerics.Single.Parse(System.String,System.IFormatProvider)"/> method is invoked, it calls the provider parameter's
<see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> method and passes it a <see cref="T:System.Type"/> object that represents the <see cref="T:System.Globalization.NumberFormatInfo"/> type.
The <see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> method then returns the <see cref="T:System.Globalization.NumberFormatInfo"/> object that provides information about the
format of the <paramref name="s"/> parameter. There are three ways to use the <paramref name="provider"/> parameter to supply custom formatting
information to the parse operation:
<list type="bullet">
<item><description>You can pass a <see cref="T:System.Globalization.CultureInfo"/> object that represents the culture that supplies formatting information. Its
<see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> method returns the <see cref="T:System.Globalization.NumberFormatInfo"/> object that provides numeric formatting
information for that culture.</description></item>
<item><description>You can pass the actual <see cref="T:System.Globalization.NumberFormatInfo"/> object that provides numeric formatting information. (Its
implementation of <see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> just returns itself.)</description></item>
<item><description>You can pass a custom object that implements <see cref="T:System.IFormatProvider"/>. Its <see cref="M:System.IFormatProvider.GetFormat(System.Type)"/>
method instantiates and returns the <see cref="T:System.Globalization.NumberFormatInfo"/> object that provides formatting information.</description></item>
</list>
If <paramref name="provider"/> is <c>null</c> or a <see cref="T:System.Globalization.NumberFormatInfo"/> object cannot be obtained, the <see cref="T:System.Globalization.NumberFormatInfo"/>
object for the current culture is used.
<para/>
If <paramref name="s"/> is out of range of the <see cref="T:System.Single"/> data type, the method returns <see cref="F:System.Single.NegativeInfinity"/> if
<paramref name="s"/> is less than <see cref="F:System.Single.MinValue"/> and <see cref="F:System.Single.PositiveInfinity"/> if <paramref name="s"/> is greater
than <see cref="F:System.Single.MaxValue"/>.
<para/>
If a separator is encountered in the <paramref name="s"/> parameter during a parse operation, and the applicable currency or number
decimal and group separators are the same, the parse operation assumes that the separator is a decimal separator rather than a group
separator. For more information about separators, see <see cref="P:System.Globalization.NumberFormatInfo.CurrencyDecimalSeparator"/>,
<see cref="P:System.Globalization.NumberFormatInfo.NumberDecimalSeparator"/>, <see cref="P:System.Globalization.NumberFormatInfo.CurrencyGroupSeparator"/>, and
<see cref="P:System.Globalization.NumberFormatInfo.NumberGroupSeparator"/>.
</remarks>
</member>
<member name="M:J2N.Numerics.Single.TryParse(System.ReadOnlySpan{System.Char},J2N.Globalization.NumberStyle,System.IFormatProvider,System.Single@)">
<summary>
Converts the span representation of a number in a specified style and culture-specific format to
its single-precision floating-point number equivalent. A return value indicates whether the
conversion succeeded or failed.
<para/>
Usage Note: To approximately match the behavior of the JDK for decimal numbers, use <see cref="F:J2N.Globalization.NumberStyle.Float"/> combined with
<see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/> for <paramref name="style"/> and <see cref="P:System.Globalization.NumberFormatInfo.InvariantInfo"/> for <paramref name="provider"/>.
To approximately match the behavior of the JDK for hexadecimal numbers, use <see cref="F:J2N.Globalization.NumberStyle.HexFloat"/> combined with
<see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/> for <paramref name="style"/> and <see cref="P:System.Globalization.NumberFormatInfo.InvariantInfo"/> for <paramref name="provider"/>.
These options will parse any number that is supported by Java, but the hex specifier, exponent, and type suffix are all optional.
</summary>
<param name="s">A read-only character span that contains the number to convert. The span is interpreted using the style specified
by <paramref name="style"/>.</param>
<param name="style">A bitwise combination of enumeration values that indicates the style elements
that can be present in <paramref name="s"/>. Typical values to specify is <see cref="F:J2N.Globalization.NumberStyle.Float"/>
combined with <see cref="F:J2N.Globalization.NumberStyle.AllowThousands"/> or, in the case of hexadecimal numbers,
<see cref="F:J2N.Globalization.NumberStyle.HexFloat"/>.</param>
<param name="provider">An object that supplies culture-specific formatting information about <paramref name="s"/>.</param>
<param name="result">When this method returns, contains the single-precision floating-point number equivalent to the
numeric value or symbol contained in <paramref name="s"/>, if the conversion succeeded, or zero if the conversion failed.
The conversion fails if the <paramref name="s"/> parameter is <c>null</c> or <see cref="F:System.String.Empty"/>, is not in a format
compliant with <paramref name="style"/>, or if <paramref name="style"/> is not a valid combination of <see cref="T:J2N.Globalization.NumberStyle"/>
enumeration constants. This parameter is passed uninitialized; any value originally supplied in result will be overwritten.</param>
<returns><c>true</c> if <paramref name="s"/> was converted successfully; otherwise, <c>false</c>.</returns>
<exception cref="T:System.ArgumentException">
<paramref name="style"/> is not a <see cref="T:J2N.Globalization.NumberStyle"/> value.
<para/>
-or-
<para/>
<paramref name="style"/> is not a combination of <see cref="F:J2N.Globalization.NumberStyle.AllowHexSpecifier"/>, <see cref="F:J2N.Globalization.NumberStyle.HexFloat"/>
and <see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/> values.
<para/>
-or-
<para/>
<paramref name="style"/> has <see cref="F:J2N.Globalization.NumberStyle.AllowHexSpecifier"/> and <see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/> values
but not <see cref="F:J2N.Globalization.NumberStyle.AllowExponent"/>. When type suffix is supplied in a hexadecimal number, exponent (prefixed with a
p or P) is required.
<para/>
-or-
<para/>
<paramref name="style"/> is a combination of <see cref="F:J2N.Globalization.NumberStyle.AllowCurrencySymbol"/> and <see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/>.
</exception>
<remarks>
In .NET Core 3.0 and later, values that are too large to represent are rounded to <see cref="F:System.Single.PositiveInfinity"/> or
<see cref="F:System.Single.NegativeInfinity"/> as required by the IEEE 754 specification. In prior versions, including .NET Framework, parsing a
value that was too large to represent resulted in failure. This implementation uses the new parser, but patches it back to .NET Framework 4.0
and upgrades it to support Java's hexadecimal floating point format.
<para/>
This overload differs from the <see cref="M:J2N.Numerics.Single.Parse(System.String,J2N.Globalization.NumberStyle,System.IFormatProvider)"/> method by returning a Boolean value that indicates
whether the parse operation succeeded instead of returning the parsed numeric value. It eliminates the need to use exception handling to test
for a <see cref="T:System.FormatException"/> in the event that <paramref name="s"/> is invalid and cannot be successfully parsed.
<para/>
The <paramref name="style"/> parameter defines the style elements (such as white space, thousands separators, and currency symbols) that
are allowed in the s parameter for the parse operation to succeed. It must be a combination of bit flags from the <see cref="T:J2N.Globalization.NumberStyle"/> enumeration.
<para/>
The <paramref name="s"/> parameter can contain <see cref="P:System.Globalization.NumberFormatInfo.PositiveInfinitySymbol"/>, <see cref="P:System.Globalization.NumberFormatInfo.NegativeInfinitySymbol"/>, or
<see cref="P:System.Globalization.NumberFormatInfo.NaNSymbol"/> for the culture specified by <paramref name="provider"/>. Depending on the value of <paramref name="style"/>,
it can also take one of the following forms:
<para/>
[ws] [$] [sign][integral-digits,]integral-digits[.[fractional-digits]][E[sign]exponential-digits][type][ws]
<para/>
Or, if <paramref name="style"/> includes <see cref="F:J2N.Globalization.NumberStyle.AllowHexSpecifier"/>:
<para/>
[ws] [$] [sign][0x][hexdigits,]hexdigits[.[fractional-hexdigits]][P[sign]exponential-digits][type][ws]
<para/>
Elements framed in square brackets ([ and ]) are optional. The following table describes each element.
<para/>
<list type="table">
<listheader>
<term>Element</term>
<term>Description</term>
</listheader>
<item>
<term><i>ws</i></term>
<term>A series of white-space characters. White space can appear at the beginning of <paramref name="s"/> if style includes the
<see cref="F:J2N.Globalization.NumberStyle.AllowLeadingWhite"/> flag, and it can appear at the end of <paramref name="s"/> if style includes the
<see cref="F:J2N.Globalization.NumberStyle.AllowTrailingWhite"/> flag.</term>
</item>
<item>
<term><i>$</i></term>
<term>A culture-specific currency symbol. Its position in the string is defined by the <see cref="P:System.Globalization.NumberFormatInfo.CurrencyNegativePattern"/>
and <see cref="P:System.Globalization.NumberFormatInfo.CurrencyPositivePattern"/> properties of the <see cref="T:System.Globalization.NumberFormatInfo"/> object returned by the
<see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> method of the <paramref name="provider"/> parameter. The current culture's currency symbol can
appear in <paramref name="s"/> if style includes the <see cref="F:J2N.Globalization.NumberStyle.AllowCurrencySymbol"/> flag.</term>
</item>
<item>
<term><i>sign</i></term>
<term>A negative sign symbol (-) or a positive sign symbol (+). The sign can appear at the beginning of <paramref name="s"/> if
<paramref name="style"/> includes the <see cref="F:J2N.Globalization.NumberStyle.AllowLeadingSign"/> flag, and it can appear at the end of <paramref name="s"/>
if <paramref name="style"/> includes the <see cref="F:J2N.Globalization.NumberStyle.AllowTrailingSign"/> flag. Parentheses can be used in <paramref name="s"/>
to indicate a negative value if <paramref name="style"/> includes the <see cref="F:J2N.Globalization.NumberStyle.AllowParentheses"/> flag.</term>
</item>
<item>
<term><i>integral-digits</i></term>
<term>A series of digits ranging from 0 to 9 that specify the integral part of the number. The <i>integral-digits</i> element can be absent
if the string contains the <i>fractional-digits</i> element.</term>
</item>
<item>
<term><i>0x</i>/></term>
<term>The '0x' or '0X' characters, which indicate a hexadecimal number is to immediately follow.</term>
</item>
<item>
<term><i>hexdigits</i></term>
<term>A sequence of hexadecimal digits from 0 through f, or 0 through F that specify the integral part of the number. The <i>hexdigits</i>
element can be absent if the string contains the <i>fractional-hexdigits</i> element. Hexadecimal digits can appear in <paramref name="s"/>
if <paramref name="style"/> includes the <see cref="F:J2N.Globalization.NumberStyle.AllowHexSpecifier"/> flag.</term>
</item>
<item>
<term><i>,</i></term>
<term>A culture-specific thousands separator. The thousands separator of the culture specified by <paramref name="provider"/>
can appear in <paramref name="s"/> if <paramref name="style"/> includes the <see cref="F:J2N.Globalization.NumberStyle.AllowThousands"/> flag.</term>
</item>
<item>
<term><i>.</i></term>
<term>A culture-specific decimal point symbol. The decimal point symbol of the culture specified by <paramref name="provider"/>
can appear in <paramref name="s"/> if <paramref name="style"/> includes the <see cref="F:J2N.Globalization.NumberStyle.AllowDecimalPoint"/> flag.</term>
</item>
<item>
<term><i>fractional-digits</i>
</term>
<term>A series of digits ranging from 0 to 9 that specify the fractional part of the number. Fractional digits can appear in
<paramref name="s"/> if <paramref name="style"/> includes the <see cref="F:J2N.Globalization.NumberStyle.AllowDecimalPoint"/> flag.</term>
</item>
<item>
<term><i>fractional-hexdigits</i>
</term>
<term>A sequence of hexadecimal digits from 0 through f, or 0 through F that specify the fractional part of the number.
Fractional digits can appear in <paramref name="s"/> if <paramref name="style"/> includes both the
<see cref="F:J2N.Globalization.NumberStyle.AllowDecimalPoint"/> and <see cref="F:J2N.Globalization.NumberStyle.AllowHexSpecifier"/> flags.</term>
</item>
<item>
<term><i>e</i></term>
<term>The 'e' or 'E' character, which indicates that the value is represented in exponential notation. The <paramref name="s"/>
parameter can represent a number in exponential notation if style includes the <see cref="F:J2N.Globalization.NumberStyle.AllowExponent"/> flag.</term>
</item>
<item>
<term><i>p</i></term>
<term>The 'p' or 'P' character, which indicates that the hexadecimal value is represented in exponential notation. The <paramref name="s"/>
parameter can represent a hexadecimal number in exponential notation if style includes both the <see cref="F:J2N.Globalization.NumberStyle.AllowExponent"/>
and <see cref="F:J2N.Globalization.NumberStyle.AllowHexSpecifier"/> flags.</term>
</item>
<item>
<term><i>exponential-digits</i></term>
<term>A sequence of decimal digits from 0 through 9 that specify an exponent.</term>
</item>
<item>
<term><i>type</i></term>
<term>The 'UL', 'Ul', 'uL', 'ul', 'LU', 'Lu', 'lU', or 'lu', which is the
<a href="https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/language-specification/lexical-structure#6453-integer-literals">integral type suffix</a>
or 'f', 'F', 'd', 'D', 'm' or 'M' character, which is the
<a href="https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/language-specification/lexical-structure#6454-real-literals">real type suffix</a>
of the number as specified in the C# language specification. The type suffix can appear in <paramref name="s"/> if <paramref name="style"/>
includes the <see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/> flag. If <paramref name="style"/> includes the <see cref="F:J2N.Globalization.NumberStyle.AllowHexSpecifier"/>
flag, specifying the <see cref="F:J2N.Globalization.NumberStyle.AllowExponent"/> is required. Including an exponent in the string (prefixed with 'p' or 'P') is
required for the type suffix characters 'f', 'F', 'd', and 'D' since they would otherwise be interpreted as hexadecimal integral or fractional digits.</term>
</item>
</list>
<para/>
NOTE: Any terminating NUL (U+0000) characters in <paramref name="s"/> are ignored by the parsing operation, regardless of
the value of the <paramref name="style"/> argument.
<para/>
A string with decimal digits only (which corresponds to the <see cref="F:J2N.Globalization.NumberStyle.None"/> flag) always parses successfully.
Most of the remaining <see cref="T:J2N.Globalization.NumberStyle"/> members control elements that may be but are not required to be present in
this input string. The following table indicates how individual <see cref="T:J2N.Globalization.NumberStyle"/> members affect the elements that may
be present in <paramref name="s"/>.
<list type="table">
<listheader>
<term>Non-composite NumberStyle values</term>
<term>Elements permitted in <paramref name="s"/> in addition to digits</term>
</listheader>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.None"/></term>
<term>Decimal digits only.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowDecimalPoint"/></term>
<term>The decimal point (.) and <i>fractional-digits</i> elements. However, <i>fractional-digits</i> must consist
of only one or more 0 digits or the method returns <c>false</c>.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowExponent"/></term>
<term>The <paramref name="s"/> parameter can also use exponential notation. If <paramref name="s"/> represents a
number in exponential notation, it must represent an integer within the range of the <see cref="T:System.Int64"/> data type
without a non-zero, fractional component.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowLeadingWhite"/></term>
<term>The <i>ws</i> element at the beginning of <paramref name="s"/>.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowTrailingWhite"/></term>
<term>The <i>ws</i> element at the end of <paramref name="s"/>.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowLeadingSign"/></term>
<term>A sign can appear before <i>digits</i>.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowTrailingSign"/></term>
<term>A sign can appear after <i>digits</i>.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowParentheses"/></term>
<term>The <i>sign</i> element in the form of parentheses enclosing the numeric value.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowThousands"/></term>
<term>The thousands separator (,) element.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowCurrencySymbol"/></term>
<term>The <i>$</i> element.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/></term>
<term>The literal <i>type</i> suffix used in the literal identifier syntax of C# or Java.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.Currency"/></term>
<term>All elements. The <paramref name="s"/> parameter cannot represent a hexadecimal
number or a number in exponential notation (prefixed with an 'e' or 'E').</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.Float"/></term>
<term>The <i>ws</i> element at the beginning or end of <paramref name="s"/>, sign at
the beginning of <paramref name="s"/>, and the decimal point (.) symbol. The <paramref name="s"/>
parameter can also use exponential notation (prefixed with an 'e' or 'E').</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.HexFloat"/></term>
<term>The <i>ws</i> element at the beginning or end of <paramref name="s"/>, sign at
the beginning of <paramref name="s"/>, and the decimal point (.) symbol. The <paramref name="s"/>
parameter can also use exponential notation (prefixed with a 'p' or 'P').</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.Number"/></term>
<term>The <i>ws</i>, <i>sign</i>, thousands separator (,), and decimal point (.) elements.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.Any"/></term>
<term>All styles, except <paramref name="s"/> cannot represent a hexadecimal number.</term>
</item>
</list>
<para/>
The <see cref="T:J2N.Globalization.NumberStyle"/> enum can be converted to the .NET <see cref="T:System.Globalization.NumberStyles"/> enum by using the
<see cref="M:J2N.Globalization.NumberStyleExtensions.ToNumberStyles(J2N.Globalization.NumberStyle)"/> extension method.
Similarly, <see cref="T:System.Globalization.NumberStyles"/> enum can be converted to the J2N <see cref="T:J2N.Globalization.NumberStyle"/> enum by using
the <see cref="M:J2N.Globalization.NumberStyleExtensions.ToNumberStyle(System.Globalization.NumberStyles)"/> extension method.
<para/>
If the <see cref="F:J2N.Globalization.NumberStyle.AllowHexSpecifier"/> flag is used, <paramref name="s"/> must be a hexadecimal value which may include an optional 0x or 0X prefix.
For example, "0xC9AF3.8BD4C". This flag may be combined with any of the flags specified in <see cref="F:J2N.Globalization.NumberStyle.Float"/> and also
<see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/>. (The <see cref="T:J2N.Globalization.NumberStyle"/> enumeration has a composite style, <see cref="F:J2N.Globalization.NumberStyle.HexFloat"/>,
that includes all of those flags except <see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/>.)
<para/>
The <paramref name="provider"/> parameter is an <see cref="T:System.IFormatProvider"/> implementation, such as a <see cref="T:System.Globalization.CultureInfo"/> object,
a <see cref="T:System.Globalization.NumberFormatInfo"/> object or a <see cref="T:J2N.Text.StringFormatter"/> object, whose <see cref="M:System.IFormatProvider.GetFormat(System.Type)"/>
method returns a <see cref="T:System.Globalization.NumberFormatInfo"/> object. The <see cref="T:System.Globalization.NumberFormatInfo"/> object provides culture-specific information about
the format of <paramref name="s"/>. When the <see cref="M:J2N.Numerics.Single.Parse(System.String,System.IFormatProvider)"/> method is invoked, it calls the provider parameter's
<see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> method and passes it a <see cref="T:System.Type"/> object that represents the <see cref="T:System.Globalization.NumberFormatInfo"/> type.
The <see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> method then returns the <see cref="T:System.Globalization.NumberFormatInfo"/> object that provides information about the
format of the <paramref name="s"/> parameter. There are three ways to use the <paramref name="provider"/> parameter to supply custom formatting
information to the parse operation:
<list type="bullet">
<item><description>You can pass a <see cref="T:System.Globalization.CultureInfo"/> object that represents the culture that supplies formatting information. Its
<see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> method returns the <see cref="T:System.Globalization.NumberFormatInfo"/> object that provides numeric formatting
information for that culture.</description></item>
<item><description>You can pass the actual <see cref="T:System.Globalization.NumberFormatInfo"/> object that provides numeric formatting information. (Its
implementation of <see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> just returns itself.)</description></item>
<item><description>You can pass a custom object that implements <see cref="T:System.IFormatProvider"/>. Its <see cref="M:System.IFormatProvider.GetFormat(System.Type)"/>
method instantiates and returns the <see cref="T:System.Globalization.NumberFormatInfo"/> object that provides formatting information.</description></item>
</list>
If <paramref name="provider"/> is <c>null</c> or a <see cref="T:System.Globalization.NumberFormatInfo"/> object cannot be obtained, the <see cref="T:System.Globalization.NumberFormatInfo"/>
object for the current culture is used.
<para/>
If <paramref name="s"/> is out of range of the <see cref="T:System.Single"/> data type, the method returns <see cref="F:System.Single.NegativeInfinity"/> if
<paramref name="s"/> is less than <see cref="F:System.Single.MinValue"/> and <see cref="F:System.Single.PositiveInfinity"/> if <paramref name="s"/> is greater
than <see cref="F:System.Single.MaxValue"/>.
<para/>
If a separator is encountered in the <paramref name="s"/> parameter during a parse operation, and the applicable currency or number
decimal and group separators are the same, the parse operation assumes that the separator is a decimal separator rather than a group
separator. For more information about separators, see <see cref="P:System.Globalization.NumberFormatInfo.CurrencyDecimalSeparator"/>,
<see cref="P:System.Globalization.NumberFormatInfo.NumberDecimalSeparator"/>, <see cref="P:System.Globalization.NumberFormatInfo.CurrencyGroupSeparator"/>, and
<see cref="P:System.Globalization.NumberFormatInfo.NumberGroupSeparator"/>.
</remarks>
</member>
<member name="M:J2N.Numerics.Single.ToString">
<summary>
Converts the numeric value of this instance to its equivalent string representation.
</summary>
<returns>The string representation of this instance.</returns>
<remarks>
The <see cref="M:J2N.Numerics.Single.ToString"/> method formats the current instance in the default ("J", or Java)
format of the current culture. If you want to specify a different format, precision, or culture, use the
other overloads of the <see cref="M:J2N.Numerics.Single.ToString(System.String,System.IFormatProvider)"/> method, as follows:
<list type="table">
<listheader>
<term>To use format</term>
<term>For culture</term>
<term>Use the overload</term>
</listheader>
<item>
<term>Default ("J") format</term>
<term>A specific culture</term>
<term><see cref="M:J2N.Numerics.Single.ToString(System.Single,System.IFormatProvider)"/> or <see cref="M:J2N.Numerics.Single.ToString(System.IFormatProvider)"/></term>
</item>
<item>
<term>A specific format or precision</term>
<term>Default (current) culture</term>
<term><see cref="M:J2N.Numerics.Single.ToString(System.Single,System.String)"/> or <see cref="M:J2N.Numerics.Single.ToString(System.String)"/></term>
</item>
<item>
<term>A specific format or precision</term>
<term>A specific culture</term>
<term><see cref="M:J2N.Numerics.Single.ToString(System.Single,System.String,System.IFormatProvider)"/> or <see cref="M:J2N.Numerics.Single.ToString(System.String,System.IFormatProvider)"/></term>
</item>
</list>
The return value can be <see cref="P:System.Globalization.NumberFormatInfo.PositiveInfinitySymbol"/>, <see cref="P:System.Globalization.NumberFormatInfo.NegativeInfinitySymbol"/>,
<see cref="P:System.Globalization.NumberFormatInfo.NaNSymbol"/>, or the string of the form:
<para/>
[sign]integral-digits[.[fractional-digits]][E[sign]exponential-digits]
<para/>
Optional elements are framed in square brackets ([ and ]). Elements that contain the term "digits" consist of a series of numeric
characters ranging from 0 to 9. The elements listed in the following table are supported.
<list type="table">
<listheader>
<term>Element</term>
<term>Description</term>
</listheader>
<item>
<term><i>sign</i></term>
<term>A negative sign or positive sign symbol.</term>
</item>
<item>
<term><i>integral-digits</i></term>
<term>A series of digits specifying the integral part of the number. Integral-digits can be absent if there
are fractional-digits.</term>
</item>
<item>
<term><i>'.'</i></term>
<term>A culture-specific decimal point symbol.</term>
</item>
<item>
<term><i>fractional-digits</i></term>
<term>A series of digits specifying the fractional part of the number.</term>
</item>
<item>
<term><i>'E'</i></term>
<term>An uppercase character 'E', indicating exponential (scientific) notation.</term>
</item>
<item>
<term><i>exponential-digits</i></term>
<term>A series of digits specifying an exponent.</term>
</item>
</list>
<para/>
Some examples of the return value are "100", "-123,456,789", "123.45E+6", "500", "3.1416", "600", "-0.123", and "-Infinity".
<para/>
This instance is formatted with the Java numeric format specifier ("J").
<para/>
.NET provides extensive formatting support, which is described in greater detail in the following formatting topics:
<list type="bullet">
<item><description>For more information about numeric format specifiers, see
<a href="https://docs.microsoft.com/en-us/dotnet/standard/base-types/standard-numeric-format-strings">Standard Numeric Format Strings</a>
and <a href="https://docs.microsoft.com/en-us/dotnet/standard/base-types/custom-numeric-format-strings">Custom Numeric Format Strings</a>.
</description></item>
<item><description>For more information about formatting, see
<a href="https://docs.microsoft.com/en-us/dotnet/standard/base-types/formatting-types">Formatting Types</a>.</description></item>
</list>
</remarks>
</member>
<member name="M:J2N.Numerics.Single.ToString(System.String)">
<summary>
Converts the numeric value of this instance to its equivalent string representation, using the specified format.
</summary>
<param name="format">A numeric format string.</param>
<returns>The string representation of the current instance as specified by <paramref name="format"/>.</returns>
<remarks>
The <see cref="M:J2N.Numerics.Single.ToString(System.String)"/> method formats the current instance in
a specified format by using the conventions of the current culture. If you want to specify a different format or culture,
use the other overloads of the <see cref="M:J2N.Numerics.Single.ToString(System.String,System.IFormatProvider)"/> method, as follows:
<list type="table">
<listheader>
<term>To use format</term>
<term>For culture</term>
<term>Use the overload</term>
</listheader>
<item>
<term>Default ("J") format</term>
<term>Default (current) culture</term>
<term><see cref="M:J2N.Numerics.Single.ToString(System.Single)"/> or <see cref="M:J2N.Numerics.Single.ToString"/></term>
</item>
<item>
<term>Default ("J") format</term>
<term>A specific culture</term>
<term><see cref="M:J2N.Numerics.Single.ToString(System.Single,System.IFormatProvider)"/> or <see cref="M:J2N.Numerics.Single.ToString(System.IFormatProvider)"/></term>
</item>
<item>
<term>A specific format or precision</term>
<term>A specific culture</term>
<term><see cref="M:J2N.Numerics.Single.ToString(System.Single,System.String,System.IFormatProvider)"/> or <see cref="M:J2N.Numerics.Single.ToString(System.String,System.IFormatProvider)"/></term>
</item>
</list>
The return value can be <see cref="P:System.Globalization.NumberFormatInfo.PositiveInfinitySymbol"/>, <see cref="P:System.Globalization.NumberFormatInfo.NegativeInfinitySymbol"/>,
<see cref="P:System.Globalization.NumberFormatInfo.NaNSymbol"/>, or the string representation of a number, as specified by <paramref name="format"/>.
<para/>
The <paramref name="format"/> parameter can be any valid standard numeric format specifier except for D, as well as any
combination of custom numeric format specifiers. If <paramref name="format"/> is <c>null</c> or an empty string, the return value for this
instance is formatted with the Java numeric format specifier ("J").
<para/>
.NET provides extensive formatting support, which is described in greater detail in the following formatting topics:
<list type="bullet">
<item><description>For more information about numeric format specifiers, see
<a href="https://docs.microsoft.com/en-us/dotnet/standard/base-types/standard-numeric-format-strings">Standard Numeric Format Strings</a>
and <a href="https://docs.microsoft.com/en-us/dotnet/standard/base-types/custom-numeric-format-strings">Custom Numeric Format Strings</a>.
</description></item>
<item><description>For more information about formatting, see
<a href="https://docs.microsoft.com/en-us/dotnet/standard/base-types/formatting-types">Formatting Types</a>.</description></item>
</list>
<para/>
In addition to the formats specified in the above articles, the Java ("J") format and ("X") hexadecimal format are also supported.
<para/>
<h2>Java format specifier ("J")</h2>
<para/>
The ("J") format follows the specification of the Java Language Specification. However, do note that it may not return exactly the same
number representation as the JDK due to precision and rounding differences. The ("J") format is similar to the ("R") format in that
it can be fully round tripped and it ignores the precision specifier. However, do note that on platforms lower than .NET Core 3.0, this
format can only be round-tripped using overloads of <see cref="M:J2N.Numerics.Single.Parse(System.String,System.IFormatProvider)"/> and <see cref="M:J2N.Numerics.Single.TryParse(System.String,System.Single@)"/>
in J2N. On .NET Core 3.0 and higher overloads of <see cref="M:System.Single.Parse(System.String)"/> and <see cref="M:System.Single.TryParse(System.String,System.Single@)"/> will
also successfully round trip the number back to the same set of bits.
<para/>
Although you can include a precision specifier, it is ignored. Round trips are given precedence over precision when using this specifier.
The result string is affected by the formatting information of the current <see cref="T:System.Globalization.NumberFormatInfo"/> object. The following table lists
the <see cref="T:System.Globalization.NumberFormatInfo"/> properties that control the formatting of the result string.
<list type="table">
<listheader>
<term>NumberFormatInfo property</term>
<term>Description</term>
</listheader>
<item>
<term><see cref="P:System.Globalization.NumberFormatInfo.NegativeSign"/></term>
<term>Defines the string that indicates that a number is negative.</term>
</item>
<item>
<term><see cref="P:System.Globalization.NumberFormatInfo.NumberDecimalSeparator"/></term>
<term>Defines the string that separates integral digits from decimal digits.</term>
</item>
</list>
<para/>
Note that although this format follows the Java Language Specification, to exactly match the behavior as the JDK, it
must be in the invariant culture by specifying the provider as <see cref="P:System.Globalization.CultureInfo.InvariantCulture"/>,
<see cref="P:System.Globalization.NumberFormatInfo.InvariantInfo"/> or <see cref="P:J2N.Text.StringFormatter.InvariantCulture"/>.
<para/>
<h2>Hexadecimal format specifier ("X")</h2>
<para/>
The hexadecimal ("X") format is uses the same floating-point hexadecimal format as the JDK and is provided for interoperability
with Java 6 and higher. The hexadecimal form have an analogous syntax to the simple and scaled decimal forms with the following differences:
<list type="number">
<item><description>Every hexadecimal floating point literal starts with a zero (0) and then an x or X.</description></item>
<item><description>The digits of the number (but not the exponent part!) also include the hexadecimal digits a through f
and their uppercase equivalents.</description></item>
<item><description>The exponent is introduced by the letter p (or P) instead of an e or E. The exponent represents a
scaling factor that is a power of 2 instead of a power of 10.</description></item>
</list>
<para/>
Here are some examples:
<code>
0x0.0p0 // this is zero expressed in hexadecimal form (float)<br/>
0xff.0p19 // this is 255.0 x 2^19 (double)
</code>
See the <see cref="M:J2N.Numerics.Single.ToHexString(System.IFormatProvider)"/> for more information about the format.
<para/>
Note that although this format follows the Java Language Specification, to exactly match the behavior as the JDK, it
must be in the invariant culture by specifying the provider as <see cref="P:System.Globalization.CultureInfo.InvariantCulture"/>,
<see cref="P:System.Globalization.NumberFormatInfo.InvariantInfo"/> or <see cref="P:J2N.Text.StringFormatter.InvariantCulture"/>.
</remarks>
</member>
<member name="M:J2N.Numerics.Single.ToString(System.IFormatProvider)">
<summary>
Converts the numeric value of the current instance to its equivalent string representation using the specified
culture-specific format information.
</summary>
<param name="provider">An object that supplies culture-specific formatting information.</param>
<returns>The string representation of the current instance as specified by <paramref name="provider"/>.</returns>
<remarks>
The <see cref="M:J2N.Numerics.Single.ToString(System.IFormatProvider)"/> method formats the current instance in
the default ("J") format of a specified culture. If you want to specify a different format or culture, use the
other overloads of the <see cref="M:J2N.Numerics.Single.ToString(System.String,System.IFormatProvider)"/> method, as follows:
<list type="table">
<listheader>
<term>To use format</term>
<term>For culture</term>
<term>Use the overload</term>
</listheader>
<item>
<term>Default ("J") format</term>
<term>Default (current) culture</term>
<term><see cref="M:J2N.Numerics.Single.ToString(System.Single)"/> or <see cref="M:J2N.Numerics.Single.ToString"/></term>
</item>
<item>
<term>A specific format or precision</term>
<term>Default (current) culture</term>
<term><see cref="M:J2N.Numerics.Single.ToString(System.Single,System.String)"/> or <see cref="M:J2N.Numerics.Single.ToString(System.String)"/></term>
</item>
<item>
<term>A specific format or precision</term>
<term>A specific culture</term>
<term><see cref="M:J2N.Numerics.Single.ToString(System.Single,System.String,System.IFormatProvider)"/> or <see cref="M:J2N.Numerics.Single.ToString(System.String,System.IFormatProvider)"/></term>
</item>
</list>
The return value can be <see cref="P:System.Globalization.NumberFormatInfo.PositiveInfinitySymbol"/>, <see cref="P:System.Globalization.NumberFormatInfo.NegativeInfinitySymbol"/>,
<see cref="P:System.Globalization.NumberFormatInfo.NaNSymbol"/>, or the string of the form:
<para/>
[sign]integral-digits[.[fractional-digits]][E[sign]exponential-digits]
<para/>
Optional elements are framed in square brackets ([ and ]). Elements that contain the term "digits" consist of a series of numeric
characters ranging from 0 to 9. The elements listed in the following table are supported.
<list type="table">
<listheader>
<term>Element</term>
<term>Description</term>
</listheader>
<item>
<term><i>sign</i></term>
<term>A negative sign or positive sign symbol.</term>
</item>
<item>
<term><i>integral-digits</i></term>
<term>A series of digits specifying the integral part of the number. Integral-digits can be absent if there
are fractional-digits.</term>
</item>
<item>
<term><i>'.'</i></term>
<term>A culture-specific decimal point symbol.</term>
</item>
<item>
<term><i>fractional-digits</i></term>
<term>A series of digits specifying the fractional part of the number.</term>
</item>
<item>
<term><i>'E'</i></term>
<term>An uppercase character 'E', indicating exponential (scientific) notation.</term>
</item>
<item>
<term><i>exponential-digits</i></term>
<term>A series of digits specifying an exponent.</term>
</item>
</list>
<para/>
Some examples of the return value are "100", "-123,456,789", "123.45E+6", "500", "3.1416", "600", "-0.123", and "-Infinity".
<para/>
This instance is formatted with the Java numeric format specifier ("J").
<para/>
.NET provides extensive formatting support, which is described in greater detail in the following formatting topics:
<list type="bullet">
<item><description>For more information about numeric format specifiers, see
<a href="https://docs.microsoft.com/en-us/dotnet/standard/base-types/standard-numeric-format-strings">Standard Numeric Format Strings</a>
and <a href="https://docs.microsoft.com/en-us/dotnet/standard/base-types/custom-numeric-format-strings">Custom Numeric Format Strings</a>.
</description></item>
<item><description>For more information about formatting, see
<a href="https://docs.microsoft.com/en-us/dotnet/standard/base-types/formatting-types">Formatting Types</a>.</description></item>
</list>
<para/>
The <paramref name="provider"/> parameter is an <see cref="T:System.IFormatProvider"/> implementation whose <see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> method returns
a <see cref="T:System.Globalization.NumberFormatInfo"/> object. Typically, provider is a <see cref="T:System.Globalization.CultureInfo"/> object or a <see cref="T:System.Globalization.NumberFormatInfo"/> object.
The <paramref name="provider"/> parameter supplies culture-specific information used in formatting. If provider is <c>null</c>, the return value is formatted using
the <see cref="T:System.Globalization.NumberFormatInfo"/> object for the current culture.
</remarks>
</member>
<member name="M:J2N.Numerics.Single.ToString(System.String,System.IFormatProvider)">
<summary>
Converts the numeric value of this instance to its equivalent string representation using
the specified format and culture-specific format information.
</summary>
<param name="format">A numeric format string.</param>
<param name="provider">An object that supplies culture-specific formatting information.</param>
<returns>The string representation of the current instance as specified by <paramref name="format"/>
and <paramref name="provider"/>.</returns>
<remarks>
The <see cref="M:J2N.Numerics.Single.ToString(System.String,System.IFormatProvider)"/> method formats the current instance in
a specified format of a specified culture. If you want to specify a different format or culture, use the
other overloads of the <see cref="M:J2N.Numerics.Single.ToString(System.String,System.IFormatProvider)"/> method, as follows:
<list type="table">
<listheader>
<term>To use format</term>
<term>For culture</term>
<term>Use the overload</term>
</listheader>
<item>
<term>Default ("J") format</term>
<term>Default (current) culture</term>
<term><see cref="M:J2N.Numerics.Single.ToString(System.Single)"/> or <see cref="M:J2N.Numerics.Single.ToString"/></term>
</item>
<item>
<term>Default ("J") format</term>
<term>A specific culture</term>
<term><see cref="M:J2N.Numerics.Single.ToString(System.Single,System.IFormatProvider)"/> or <see cref="M:J2N.Numerics.Single.ToString(System.IFormatProvider)"/></term>
</item>
<item>
<term>A specific format or precision</term>
<term>Default (current) culture</term>
<term><see cref="M:J2N.Numerics.Single.ToString(System.Single,System.String)"/> or <see cref="M:J2N.Numerics.Single.ToString(System.String)"/></term>
</item>
</list>
The return value can be <see cref="P:System.Globalization.NumberFormatInfo.PositiveInfinitySymbol"/>, <see cref="P:System.Globalization.NumberFormatInfo.NegativeInfinitySymbol"/>,
<see cref="P:System.Globalization.NumberFormatInfo.NaNSymbol"/>, or the string representation of a number, as specified by <paramref name="format"/>.
<para/>
The <paramref name="format"/> parameter can be any valid standard numeric format specifier except for D, as well as any
combination of custom numeric format specifiers. If <paramref name="format"/> is <c>null</c> or an empty string, the return value for this
instance is formatted with the Java numeric format specifier ("J").
<para/>
.NET provides extensive formatting support, which is described in greater detail in the following formatting topics:
<list type="bullet">
<item><description>For more information about numeric format specifiers, see
<a href="https://docs.microsoft.com/en-us/dotnet/standard/base-types/standard-numeric-format-strings">Standard Numeric Format Strings</a>
and <a href="https://docs.microsoft.com/en-us/dotnet/standard/base-types/custom-numeric-format-strings">Custom Numeric Format Strings</a>.
</description></item>
<item><description>For more information about formatting, see
<a href="https://docs.microsoft.com/en-us/dotnet/standard/base-types/formatting-types">Formatting Types</a>.</description></item>
</list>
<para/>
The <paramref name="provider"/> parameter is an <see cref="T:System.IFormatProvider"/> implementation whose <see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> method returns
a <see cref="T:System.Globalization.NumberFormatInfo"/> object. Typically, provider is a <see cref="T:System.Globalization.CultureInfo"/> object or a <see cref="T:System.Globalization.NumberFormatInfo"/> object.
The <paramref name="provider"/> parameter supplies culture-specific information used in formatting. If <paramref name="provider"/> is <c>null</c>, the return value
is formatted using the <see cref="T:System.Globalization.NumberFormatInfo"/> object for the current culture.
<para/>
In addition to the formats specified in the above articles, the Java ("J") format and ("X") hexadecimal format are also supported.
<para/>
<h2>Java format specifier ("J")</h2>
<para/>
The ("J") format follows the specification of the Java Language Specification. However, do note that it may not return exactly the same
number representation as the JDK due to precision and rounding differences. The ("J") format is similar to the ("R") format in that
it can be fully round tripped and it ignores the precision specifier. However, do note that on platforms lower than .NET Core 3.0, this
format can only be round-tripped using overloads of <see cref="M:J2N.Numerics.Single.Parse(System.String,System.IFormatProvider)"/> and <see cref="M:J2N.Numerics.Single.TryParse(System.String,System.Single@)"/>
in J2N. On .NET Core 3.0 and higher overloads of <see cref="M:System.Single.Parse(System.String)"/> and <see cref="M:System.Single.TryParse(System.String,System.Single@)"/> will
also successfully round trip the number back to the same set of bits.
<para/>
Although you can include a precision specifier, it is ignored. Round trips are given precedence over precision when using this specifier.
The result string is affected by the formatting information of the current <see cref="T:System.Globalization.NumberFormatInfo"/> object. The following table lists
the <see cref="T:System.Globalization.NumberFormatInfo"/> properties that control the formatting of the result string.
<list type="table">
<listheader>
<term>NumberFormatInfo property</term>
<term>Description</term>
</listheader>
<item>
<term><see cref="P:System.Globalization.NumberFormatInfo.NegativeSign"/></term>
<term>Defines the string that indicates that a number is negative.</term>
</item>
<item>
<term><see cref="P:System.Globalization.NumberFormatInfo.NumberDecimalSeparator"/></term>
<term>Defines the string that separates integral digits from decimal digits.</term>
</item>
</list>
<para/>
Note that although this format follows the Java Language Specification, to exactly match the behavior as the JDK, it
must be in the invariant culture by specifying the <paramref name="provider"/> as <see cref="P:System.Globalization.CultureInfo.InvariantCulture"/>,
<see cref="P:System.Globalization.NumberFormatInfo.InvariantInfo"/> or <see cref="P:J2N.Text.StringFormatter.InvariantCulture"/>.
<para/>
<h2>Hexadecimal format specifier ("X")</h2>
<para/>
The hexadecimal ("X") format is uses the same floating-point hexadecimal format as the JDK and is provided for interoperability
with Java 6 and higher. The hexadecimal form have an analogous syntax to the simple and scaled decimal forms with the following differences:
<list type="number">
<item><description>Every hexadecimal floating point literal starts with a zero (0) and then an x or X.</description></item>
<item><description>The digits of the number (but not the exponent part!) also include the hexadecimal digits a through f
and their uppercase equivalents.</description></item>
<item><description>The exponent is introduced by the letter p (or P) instead of an e or E. The exponent represents a
scaling factor that is a power of 2 instead of a power of 10.</description></item>
</list>
<para/>
Here are some examples:
<code>
0x0.0p0 // this is zero expressed in hexadecimal form (float)<br/>
0xff.0p19 // this is 255.0 x 2^19 (double)
</code>
See the <see cref="M:J2N.Numerics.Single.ToHexString(System.IFormatProvider)"/> for more information about the format.
<para/>
Note that although this format follows the Java Language Specification, to exactly match the behavior as the JDK, it
must be in the invariant culture by specifying the <paramref name="provider"/> as <see cref="P:System.Globalization.CultureInfo.InvariantCulture"/>,
<see cref="P:System.Globalization.NumberFormatInfo.InvariantInfo"/> or <see cref="P:J2N.Text.StringFormatter.InvariantCulture"/>.
</remarks>
</member>
<member name="M:J2N.Numerics.Single.ToString(System.Single)">
<summary>
Converts the numeric <paramref name="value"/> to its equivalent string representation.
</summary>
<param name="value">The <see cref="T:System.Single"/> to convert.</param>
<returns>The string representation of the value.</returns>
<remarks>
The <see cref="M:J2N.Numerics.Single.ToString(System.Single)"/> method formats <paramref name="value"/> in the default ("J", or Java)
format of the current culture. If you want to specify a different format, precision, or culture, use the
other overloads of the <see cref="M:J2N.Numerics.Single.ToString(System.Single,System.String,System.IFormatProvider)"/> method, as follows:
<list type="table">
<listheader>
<term>To use format</term>
<term>For culture</term>
<term>Use the overload</term>
</listheader>
<item>
<term>Default ("J") format</term>
<term>A specific culture</term>
<term><see cref="M:J2N.Numerics.Single.ToString(System.Single,System.IFormatProvider)"/> or <see cref="M:J2N.Numerics.Single.ToString(System.IFormatProvider)"/></term>
</item>
<item>
<term>A specific format or precision</term>
<term>Default (current) culture</term>
<term><see cref="M:J2N.Numerics.Single.ToString(System.Single,System.String)"/> or <see cref="M:J2N.Numerics.Single.ToString(System.String)"/></term>
</item>
<item>
<term>A specific format or precision</term>
<term>A specific culture</term>
<term><see cref="M:J2N.Numerics.Single.ToString(System.Single,System.String,System.IFormatProvider)"/> or <see cref="M:J2N.Numerics.Single.ToString(System.String,System.IFormatProvider)"/></term>
</item>
</list>
The return value can be <see cref="P:System.Globalization.NumberFormatInfo.PositiveInfinitySymbol"/>, <see cref="P:System.Globalization.NumberFormatInfo.NegativeInfinitySymbol"/>,
<see cref="P:System.Globalization.NumberFormatInfo.NaNSymbol"/>, or the string of the form:
<para/>
[sign]integral-digits[.[fractional-digits]][E[sign]exponential-digits]
<para/>
Optional elements are framed in square brackets ([ and ]). Elements that contain the term "digits" consist of a series of numeric
characters ranging from 0 to 9. The elements listed in the following table are supported.
<list type="table">
<listheader>
<term>Element</term>
<term>Description</term>
</listheader>
<item>
<term><i>sign</i></term>
<term>A negative sign or positive sign symbol.</term>
</item>
<item>
<term><i>integral-digits</i></term>
<term>A series of digits specifying the integral part of the number. Integral-digits can be absent if there
are fractional-digits.</term>
</item>
<item>
<term><i>'.'</i></term>
<term>A culture-specific decimal point symbol.</term>
</item>
<item>
<term><i>fractional-digits</i></term>
<term>A series of digits specifying the fractional part of the number.</term>
</item>
<item>
<term><i>'E'</i></term>
<term>An uppercase character 'E', indicating exponential (scientific) notation.</term>
</item>
<item>
<term><i>exponential-digits</i></term>
<term>A series of digits specifying an exponent.</term>
</item>
</list>
<para/>
Some examples of the return value are "100", "-123,456,789", "123.45E+6", "500", "3.1416", "600", "-0.123", and "-Infinity".
<para/>
The value is formatted with the Java numeric format specifier ("J").
<para/>
.NET provides extensive formatting support, which is described in greater detail in the following formatting topics:
<list type="bullet">
<item><description>For more information about numeric format specifiers, see
<a href="https://docs.microsoft.com/en-us/dotnet/standard/base-types/standard-numeric-format-strings">Standard Numeric Format Strings</a>
and <a href="https://docs.microsoft.com/en-us/dotnet/standard/base-types/custom-numeric-format-strings">Custom Numeric Format Strings</a>.
</description></item>
<item><description>For more information about formatting, see
<a href="https://docs.microsoft.com/en-us/dotnet/standard/base-types/formatting-types">Formatting Types</a>.</description></item>
</list>
</remarks>
</member>
<member name="M:J2N.Numerics.Single.ToString(System.Single,System.String)">
<summary>
Converts the numeric <paramref name="value"/> to its equivalent string representation, using the specified format.
</summary>
<param name="value">The <see cref="T:System.Single"/> to convert.</param>
<param name="format">A numeric format string.</param>
<returns>The string representation of the value as specified by <paramref name="format"/>.</returns>
<remarks>
The <see cref="M:J2N.Numerics.Single.ToString(System.Single,System.String)"/> method formats <paramref name="value"/> in
a specified format by using the conventions of the current culture. If you want to specify a different format or culture,
use the other overloads of the <see cref="M:J2N.Numerics.Single.ToString(System.Single,System.String,System.IFormatProvider)"/> method, as follows:
<list type="table">
<listheader>
<term>To use format</term>
<term>For culture</term>
<term>Use the overload</term>
</listheader>
<item>
<term>Default ("J") format</term>
<term>Default (current) culture</term>
<term><see cref="M:J2N.Numerics.Single.ToString(System.Single)"/> or <see cref="M:J2N.Numerics.Single.ToString"/></term>
</item>
<item>
<term>Default ("J") format</term>
<term>A specific culture</term>
<term><see cref="M:J2N.Numerics.Single.ToString(System.Single,System.IFormatProvider)"/> or <see cref="M:J2N.Numerics.Single.ToString(System.IFormatProvider)"/></term>
</item>
<item>
<term>A specific format or precision</term>
<term>A specific culture</term>
<term><see cref="M:J2N.Numerics.Single.ToString(System.Single,System.String,System.IFormatProvider)"/> or <see cref="M:J2N.Numerics.Single.ToString(System.String,System.IFormatProvider)"/></term>
</item>
</list>
The return value can be <see cref="P:System.Globalization.NumberFormatInfo.PositiveInfinitySymbol"/>, <see cref="P:System.Globalization.NumberFormatInfo.NegativeInfinitySymbol"/>,
<see cref="P:System.Globalization.NumberFormatInfo.NaNSymbol"/>, or the string representation of a number, as specified by <paramref name="format"/>.
<para/>
The <paramref name="format"/> parameter can be any valid standard numeric format specifier except for D, as well as any
combination of custom numeric format specifiers. If <paramref name="format"/> is <c>null</c> or an empty string, the return value for this
instance is formatted with the Java numeric format specifier ("J").
<para/>
.NET provides extensive formatting support, which is described in greater detail in the following formatting topics:
<list type="bullet">
<item><description>For more information about numeric format specifiers, see
<a href="https://docs.microsoft.com/en-us/dotnet/standard/base-types/standard-numeric-format-strings">Standard Numeric Format Strings</a>
and <a href="https://docs.microsoft.com/en-us/dotnet/standard/base-types/custom-numeric-format-strings">Custom Numeric Format Strings</a>.
</description></item>
<item><description>For more information about formatting, see
<a href="https://docs.microsoft.com/en-us/dotnet/standard/base-types/formatting-types">Formatting Types</a>.</description></item>
</list>
<para/>
In addition to the formats specified in the above articles, the Java ("J") format and ("X") hexadecimal format are also supported.
<para/>
<h2>Java format specifier ("J")</h2>
<para/>
The ("J") format follows the specification of the Java Language Specification. However, do note that it may not return exactly the same
number representation as the JDK due to precision and rounding differences. The ("J") format is similar to the ("R") format in that
it can be fully round tripped and it ignores the precision specifier. However, do note that on platforms lower than .NET Core 3.0, this
format can only be round-tripped using overloads of <see cref="M:J2N.Numerics.Single.Parse(System.String,System.IFormatProvider)"/> and <see cref="M:J2N.Numerics.Single.TryParse(System.String,System.Single@)"/>
in J2N. On .NET Core 3.0 and higher overloads of <see cref="M:System.Single.Parse(System.String)"/> and <see cref="M:System.Single.TryParse(System.String,System.Single@)"/> will
also successfully round trip the number back to the same set of bits.
<para/>
Although you can include a precision specifier, it is ignored. Round trips are given precedence over precision when using this specifier.
The result string is affected by the formatting information of the current <see cref="T:System.Globalization.NumberFormatInfo"/> object. The following table lists
the <see cref="T:System.Globalization.NumberFormatInfo"/> properties that control the formatting of the result string.
<list type="table">
<listheader>
<term>NumberFormatInfo property</term>
<term>Description</term>
</listheader>
<item>
<term><see cref="P:System.Globalization.NumberFormatInfo.NegativeSign"/></term>
<term>Defines the string that indicates that a number is negative.</term>
</item>
<item>
<term><see cref="P:System.Globalization.NumberFormatInfo.NumberDecimalSeparator"/></term>
<term>Defines the string that separates integral digits from decimal digits.</term>
</item>
</list>
<para/>
Note that although this format follows the Java Language Specification, to exactly match the behavior as the JDK, it
must be in the invariant culture by specifying the provider as <see cref="P:System.Globalization.CultureInfo.InvariantCulture"/>,
<see cref="P:System.Globalization.NumberFormatInfo.InvariantInfo"/> or <see cref="P:J2N.Text.StringFormatter.InvariantCulture"/>.
<para/>
<h2>Hexadecimal format specifier ("X")</h2>
<para/>
The hexadecimal ("X") format is uses the same floating-point hexadecimal format as the JDK and is provided for interoperability
with Java 6 and higher. The hexadecimal form have an analogous syntax to the simple and scaled decimal forms with the following differences:
<list type="number">
<item><description>Every hexadecimal floating point literal starts with a zero (0) and then an x or X.</description></item>
<item><description>The digits of the number (but not the exponent part!) also include the hexadecimal digits a through f
and their uppercase equivalents.</description></item>
<item><description>The exponent is introduced by the letter p (or P) instead of an e or E. The exponent represents a
scaling factor that is a power of 2 instead of a power of 10.</description></item>
</list>
<para/>
Here are some examples:
<code>
0x0.0p0 // this is zero expressed in hexadecimal form (float)<br/>
0xff.0p19 // this is 255.0 x 2^19 (double)
</code>
See the <see cref="M:J2N.Numerics.Single.ToHexString(System.IFormatProvider)"/> for more information about the format.
<para/>
Note that although this format follows the Java Language Specification, to exactly match the behavior as the JDK, it
must be in the invariant culture by specifying the provider as <see cref="P:System.Globalization.CultureInfo.InvariantCulture"/>,
<see cref="P:System.Globalization.NumberFormatInfo.InvariantInfo"/> or <see cref="P:J2N.Text.StringFormatter.InvariantCulture"/>.
</remarks>
</member>
<member name="M:J2N.Numerics.Single.ToString(System.Single,System.IFormatProvider)">
<summary>
Converts the numeric <paramref name="value"/> to its equivalent string representation using the specified
culture-specific format information.
</summary>
<param name="value">The <see cref="T:System.Single"/> to convert.</param>
<param name="provider">An object that supplies culture-specific formatting information.</param>
<returns>The string representation of the value as specified by <paramref name="provider"/>.</returns>
<remarks>
The <see cref="M:J2N.Numerics.Single.ToString(System.Single,System.IFormatProvider)"/> method formats <paramref name="value"/> in
the default ("J") format of a specified culture. If you want to specify a different format or culture, use the
other overloads of the <see cref="M:J2N.Numerics.Single.ToString(System.Single,System.String,System.IFormatProvider)"/> method, as follows:
<list type="table">
<listheader>
<term>To use format</term>
<term>For culture</term>
<term>Use the overload</term>
</listheader>
<item>
<term>Default ("J") format</term>
<term>Default (current) culture</term>
<term><see cref="M:J2N.Numerics.Single.ToString(System.Single)"/> or <see cref="M:J2N.Numerics.Single.ToString"/></term>
</item>
<item>
<term>A specific format or precision</term>
<term>Default (current) culture</term>
<term><see cref="M:J2N.Numerics.Single.ToString(System.Single,System.String)"/> or <see cref="M:J2N.Numerics.Single.ToString(System.String)"/></term>
</item>
<item>
<term>A specific format or precision</term>
<term>A specific culture</term>
<term><see cref="M:J2N.Numerics.Single.ToString(System.Single,System.String,System.IFormatProvider)"/> or <see cref="M:J2N.Numerics.Single.ToString(System.String,System.IFormatProvider)"/></term>
</item>
</list>
The return value can be <see cref="P:System.Globalization.NumberFormatInfo.PositiveInfinitySymbol"/>, <see cref="P:System.Globalization.NumberFormatInfo.NegativeInfinitySymbol"/>,
<see cref="P:System.Globalization.NumberFormatInfo.NaNSymbol"/>, or the string of the form:
<para/>
[sign]integral-digits[.[fractional-digits]][E[sign]exponential-digits]
<para/>
Optional elements are framed in square brackets ([ and ]). Elements that contain the term "digits" consist of a series of numeric
characters ranging from 0 to 9. The elements listed in the following table are supported.
<list type="table">
<listheader>
<term>Element</term>
<term>Description</term>
</listheader>
<item>
<term><i>sign</i></term>
<term>A negative sign or positive sign symbol.</term>
</item>
<item>
<term><i>integral-digits</i></term>
<term>A series of digits specifying the integral part of the number. Integral-digits can be absent if there
are fractional-digits.</term>
</item>
<item>
<term><i>'.'</i></term>
<term>A culture-specific decimal point symbol.</term>
</item>
<item>
<term><i>fractional-digits</i></term>
<term>A series of digits specifying the fractional part of the number.</term>
</item>
<item>
<term><i>'E'</i></term>
<term>An uppercase character 'E', indicating exponential (scientific) notation.</term>
</item>
<item>
<term><i>exponential-digits</i></term>
<term>A series of digits specifying an exponent.</term>
</item>
</list>
<para/>
Some examples of the return value are "100", "-123,456,789", "123.45E+6", "500", "3.1416", "600", "-0.123", and "-Infinity".
<para/>
The value is formatted with the Java numeric format specifier ("J").
<para/>
.NET provides extensive formatting support, which is described in greater detail in the following formatting topics:
<list type="bullet">
<item><description>For more information about numeric format specifiers, see
<a href="https://docs.microsoft.com/en-us/dotnet/standard/base-types/standard-numeric-format-strings">Standard Numeric Format Strings</a>
and <a href="https://docs.microsoft.com/en-us/dotnet/standard/base-types/custom-numeric-format-strings">Custom Numeric Format Strings</a>.
</description></item>
<item><description>For more information about formatting, see
<a href="https://docs.microsoft.com/en-us/dotnet/standard/base-types/formatting-types">Formatting Types</a>.</description></item>
</list>
<para/>
The <paramref name="provider"/> parameter is an <see cref="T:System.IFormatProvider"/> implementation whose <see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> method returns
a <see cref="T:System.Globalization.NumberFormatInfo"/> object. Typically, provider is a <see cref="T:System.Globalization.CultureInfo"/> object or a <see cref="T:System.Globalization.NumberFormatInfo"/> object.
The <paramref name="provider"/> parameter supplies culture-specific information used in formatting. If provider is <c>null</c>, the return value is formatted using
the <see cref="T:System.Globalization.NumberFormatInfo"/> object for the current culture.
</remarks>
</member>
<member name="M:J2N.Numerics.Single.ToString(System.Single,System.String,System.IFormatProvider)">
<summary>
Converts the numeric <paramref name="value"/> to its equivalent string representation using
the specified format and culture-specific format information.
</summary>
<param name="value">The <see cref="T:System.Single"/> to convert.</param>
<param name="format">A numeric format string.</param>
<param name="provider">An object that supplies culture-specific formatting information.</param>
<returns>The string representation of the value as specified by <paramref name="format"/>
and <paramref name="provider"/>.</returns>
<remarks>
The <see cref="M:J2N.Numerics.Single.ToString(System.Single,System.String,System.IFormatProvider)"/> method formats <paramref name="value"/> in
a specified format of a specified culture. If you want to specify a different format or culture, use the
other overloads of the <see cref="M:J2N.Numerics.Single.ToString(System.Single,System.String,System.IFormatProvider)"/> method, as follows:
<list type="table">
<listheader>
<term>To use format</term>
<term>For culture</term>
<term>Use the overload</term>
</listheader>
<item>
<term>Default ("J") format</term>
<term>Default (current) culture</term>
<term><see cref="M:J2N.Numerics.Single.ToString(System.Single)"/> or <see cref="M:J2N.Numerics.Single.ToString"/></term>
</item>
<item>
<term>Default ("J") format</term>
<term>A specific culture</term>
<term><see cref="M:J2N.Numerics.Single.ToString(System.Single,System.IFormatProvider)"/> or <see cref="M:J2N.Numerics.Single.ToString(System.IFormatProvider)"/></term>
</item>
<item>
<term>A specific format or precision</term>
<term>Default (current) culture</term>
<term><see cref="M:J2N.Numerics.Single.ToString(System.Single,System.String)"/> or <see cref="M:J2N.Numerics.Single.ToString(System.String)"/></term>
</item>
</list>
The return value can be <see cref="P:System.Globalization.NumberFormatInfo.PositiveInfinitySymbol"/>, <see cref="P:System.Globalization.NumberFormatInfo.NegativeInfinitySymbol"/>,
<see cref="P:System.Globalization.NumberFormatInfo.NaNSymbol"/>, or the string representation of a number, as specified by <paramref name="format"/>.
<para/>
The <paramref name="format"/> parameter can be any valid standard numeric format specifier except for D, as well as any
combination of custom numeric format specifiers. If <paramref name="format"/> is <c>null</c> or an empty string, the return value for this
instance is formatted with the Java numeric format specifier ("J").
<para/>
.NET provides extensive formatting support, which is described in greater detail in the following formatting topics:
<list type="bullet">
<item><description>For more information about numeric format specifiers, see
<a href="https://docs.microsoft.com/en-us/dotnet/standard/base-types/standard-numeric-format-strings">Standard Numeric Format Strings</a>
and <a href="https://docs.microsoft.com/en-us/dotnet/standard/base-types/custom-numeric-format-strings">Custom Numeric Format Strings</a>.
</description></item>
<item><description>For more information about formatting, see
<a href="https://docs.microsoft.com/en-us/dotnet/standard/base-types/formatting-types">Formatting Types</a>.</description></item>
</list>
<para/>
The <paramref name="provider"/> parameter is an <see cref="T:System.IFormatProvider"/> implementation whose <see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> method returns
a <see cref="T:System.Globalization.NumberFormatInfo"/> object. Typically, provider is a <see cref="T:System.Globalization.CultureInfo"/> object or a <see cref="T:System.Globalization.NumberFormatInfo"/> object.
The <paramref name="provider"/> parameter supplies culture-specific information used in formatting. If <paramref name="provider"/> is <c>null</c>, the return value
is formatted using the <see cref="T:System.Globalization.NumberFormatInfo"/> object for the current culture.
<para/>
In addition to the formats specified in the above articles, the Java ("J") format and ("X") hexadecimal format are also supported.
<para/>
<h2>Java format specifier ("J")</h2>
<para/>
The ("J") format follows the specification of the Java Language Specification. However, do note that it may not return exactly the same
number representation as the JDK due to precision and rounding differences. The ("J") format is similar to the ("R") format in that
it can be fully round tripped and it ignores the precision specifier. However, do note that on platforms lower than .NET Core 3.0, this
format can only be round-tripped using overloads of <see cref="M:J2N.Numerics.Single.Parse(System.String,System.IFormatProvider)"/> and <see cref="M:J2N.Numerics.Single.TryParse(System.String,System.Single@)"/>
in J2N. On .NET Core 3.0 and higher overloads of <see cref="M:System.Single.Parse(System.String)"/> and <see cref="M:System.Single.TryParse(System.String,System.Single@)"/> will
also successfully round trip the number back to the same set of bits.
<para/>
Although you can include a precision specifier, it is ignored. Round trips are given precedence over precision when using this specifier.
The result string is affected by the formatting information of the current <see cref="T:System.Globalization.NumberFormatInfo"/> object. The following table lists
the <see cref="T:System.Globalization.NumberFormatInfo"/> properties that control the formatting of the result string.
<list type="table">
<listheader>
<term>NumberFormatInfo property</term>
<term>Description</term>
</listheader>
<item>
<term><see cref="P:System.Globalization.NumberFormatInfo.NegativeSign"/></term>
<term>Defines the string that indicates that a number is negative.</term>
</item>
<item>
<term><see cref="P:System.Globalization.NumberFormatInfo.NumberDecimalSeparator"/></term>
<term>Defines the string that separates integral digits from decimal digits.</term>
</item>
</list>
<para/>
Note that although this format follows the Java Language Specification, to exactly match the behavior as the JDK, it
must be in the invariant culture by specifying the <paramref name="provider"/> as <see cref="P:System.Globalization.CultureInfo.InvariantCulture"/>,
<see cref="P:System.Globalization.NumberFormatInfo.InvariantInfo"/> or <see cref="P:J2N.Text.StringFormatter.InvariantCulture"/>.
<para/>
<h2>Hexadecimal format specifier ("X")</h2>
<para/>
The hexadecimal ("X") format is uses the same floating-point hexadecimal format as the JDK and is provided for interoperability
with Java 6 and higher. The hexadecimal form have an analogous syntax to the simple and scaled decimal forms with the following differences:
<list type="number">
<item><description>Every hexadecimal floating point literal starts with a zero (0) and then an x or X.</description></item>
<item><description>The digits of the number (but not the exponent part!) also include the hexadecimal digits a through f
and their uppercase equivalents.</description></item>
<item><description>The exponent is introduced by the letter p (or P) instead of an e or E. The exponent represents a
scaling factor that is a power of 2 instead of a power of 10.</description></item>
</list>
<para/>
Here are some examples:
<code>
0x0.0p0 // this is zero expressed in hexadecimal form (float)<br/>
0xff.0p19 // this is 255.0 x 2^19 (double)
</code>
See the <see cref="M:J2N.Numerics.Single.ToHexString(System.IFormatProvider)"/> for more information about the format.
<para/>
Note that although this format follows the Java Language Specification, to exactly match the behavior as the JDK, it
must be in the invariant culture by specifying the <paramref name="provider"/> as <see cref="P:System.Globalization.CultureInfo.InvariantCulture"/>,
<see cref="P:System.Globalization.NumberFormatInfo.InvariantInfo"/> or <see cref="P:J2N.Text.StringFormatter.InvariantCulture"/>.
</remarks>
</member>
<member name="M:J2N.Numerics.Single.TryFormat(System.Span{System.Char},System.Int32@,System.ReadOnlySpan{System.Char},System.IFormatProvider)">
<summary>
Tries to format the value of the current single instance into the provided span of characters.
</summary>
<param name="destination">The span in which to write this instance's value formatted as a span of characters.</param>
<param name="charsWritten">When this method returns, contains the number of characters that were written in
<paramref name="destination"/>.</param>
<param name="format">A span containing the characters that represent a standard or custom format string that
defines the acceptable format for <paramref name="destination"/>.</param>
<param name="provider">An optional object that supplies culture-specific formatting information for
<paramref name="destination"/>.</param>
<returns><c>true</c> if the formatting was successful; otherwise, <c>false</c>.</returns>
</member>
<member name="M:J2N.Numerics.Single.TryFormat(System.Single,System.Span{System.Char},System.Int32@,System.ReadOnlySpan{System.Char},System.IFormatProvider)">
<summary>
Tries to format the value of the <paramref name="value"/> into the provided span of characters.
</summary>
<param name="value">The single number to format.</param>
<param name="destination">The span in which to write this instance's value formatted as a span of characters.</param>
<param name="charsWritten">When this method returns, contains the number of characters that were written in
<paramref name="destination"/>.</param>
<param name="format">A span containing the characters that represent a standard or custom format string that
defines the acceptable format for <paramref name="destination"/>.</param>
<param name="provider">An optional object that supplies culture-specific formatting information for
<paramref name="destination"/>.</param>
<returns><c>true</c> if the formatting was successful; otherwise, <c>false</c>.</returns>
</member>
<member name="M:J2N.Numerics.Single.Compare(System.Single,System.Single)">
<summary>
Compares the two specified <see cref="T:System.Single"/> values. There are two special cases:
<list type="table">
<item><description><see cref="F:System.Single.NaN"/> is equal to <see cref="F:System.Single.NaN"/> and it is greater
than any other double value, including <see cref="F:System.Single.PositiveInfinity"/></description></item>
<item><description>+0.0f (positive zero) is greater than -0.0f (negative zero).</description></item>
</list>
</summary>
<param name="floatA">The first value to compare.</param>
<param name="floatB">The second value to compare.</param>
<returns>
A 32-bit signed integer that indicates the relationship between the two comparands.
<list type="table">
<listheader>
<term>Return Value</term>
<term>Description </term>
</listheader>
<item>
<term>Less than zero</term>
<term><paramref name="floatA"/> is less than <paramref name="floatB"/>.</term>
</item>
<item>
<term>Zero</term>
<term><paramref name="floatA"/> equal to <paramref name="floatB"/>.</term>
</item>
<item>
<term>Greater than zero</term>
<term><paramref name="floatA"/> is greater than <paramref name="floatB"/>.</term>
</item>
</list>
</returns>
</member>
<member name="M:J2N.Numerics.Single.GetInstance(System.String,System.IFormatProvider)">
<summary>
Converts the string representation of a number in a specified style and culture-specific format to
its <see cref="T:J2N.Numerics.Single"/> instance equivalent.
<para/>
Usage Note: To approximately match the behavior of the JDK for decimal numbers, use <see cref="F:J2N.Globalization.NumberStyle.Float"/> combined with
<see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/> for <c>style</c> and <see cref="P:System.Globalization.NumberFormatInfo.InvariantInfo"/> for <paramref name="provider"/>.
To approximately match the behavior of the JDK for hexadecimal numbers, use <see cref="F:J2N.Globalization.NumberStyle.HexFloat"/> combined with
<see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/> for <c>style</c> and <see cref="P:System.Globalization.NumberFormatInfo.InvariantInfo"/> for <paramref name="provider"/>.
These options will parse any number that is supported by Java, but the hex specifier, exponent, and type suffix are all optional.
</summary>
<param name="s">A string that contains a number to convert.</param>
<param name="provider">An object that supplies culture-specific formatting information about <paramref name="s"/>.</param>
<returns>An immutable <see cref="T:J2N.Numerics.Single"/> instance equivalent to the numeric value or symbol specified in <paramref name="s"/>.</returns>
<exception cref="T:System.ArgumentNullException"><paramref name="s"/> is <c>null</c>.</exception>
<exception cref="T:System.FormatException"><paramref name="s"/> does not represent a number in a valid format.</exception>
<remarks>
In .NET Core 3.0 and later, values that are too large to represent are rounded to <see cref="F:System.Single.PositiveInfinity"/> or
<see cref="F:System.Single.NegativeInfinity"/> as required by the IEEE 754 specification. In prior versions, including .NET Framework, parsing a
value that was too large to represent resulted in failure. This implementation uses the new parser, but patches it back to .NET Framework 4.0.
<para/>
This overload is typically used to convert text that can be formatted in a variety of ways to a <see cref="T:System.Single"/> value. For example,
it can be used to convert the text entered by a user into an HTML text box to a numeric value.
<para/>
The <paramref name="s"/> parameter is interpreted using a combination of the <see cref="F:J2N.Globalization.NumberStyle.Float"/> and <see cref="F:J2N.Globalization.NumberStyle.AllowThousands"/> flags.
The <paramref name="s"/> parameter can contain <see cref="P:System.Globalization.NumberFormatInfo.PositiveInfinitySymbol"/>, <see cref="P:System.Globalization.NumberFormatInfo.NegativeInfinitySymbol"/>, or
<see cref="P:System.Globalization.NumberFormatInfo.NaNSymbol"/> for the culture specified by <paramref name="provider"/>, or it can contain a string of the form:
<para/>
[ws][sign]integral-digits[.[fractional-digits]][E[sign]exponential-digits][ws]
<para/>
Elements framed in square brackets ([ and ]) are optional. Elements that contain the term "digits" consist of a series of numeric characters
ranging from 0 to 9. The following table describes each element.
<para/>
<list type="table">
<listheader>
<term>Element</term>
<term>Description</term>
</listheader>
<item>
<term><i>ws</i></term>
<term>A series of white-space characters.</term>
</item>
<item>
<term><i>sign</i></term>
<term>A negative sign symbol (-) or a positive sign symbol (+).</term>
</item>
<item>
<term><i>integral-digits</i></term>
<term>A series of digits ranging from 0 to 9 that specify the integral part of the number. Runs of <i>integral-digits</i> can be partitioned
by a group-separator symbol. For example, in some cultures a comma (,) separates groups of thousands. The <i>integral-digits</i> element can be absent
if the string contains the <i>fractional-digits</i> element.</term>
</item>
<item>
<term><i>.</i></term>
<term>A culture-specific decimal point symbol.</term>
</item>
<item>
<term><i>fractional-digits</i>
</term>
<term>A series of digits ranging from 0 to 9 that specify the fractional part of the number.</term>
</item>
<item>
<term><i>e</i></term>
<term>The 'e' or 'E' character, which indicates that the value is represented in exponential (scientific) notation.</term>
</item>
<item>
<term><i>exponential-digits</i></term>
<term>A sequence of decimal digits from 0 through 9 that specify an exponent.</term>
</item>
</list>
<para/>
For more information about numeric formats, see the <a href="https://docs.microsoft.com/en-us/dotnet/standard/base-types/formatting-types">
Formatting Types</a> topic.
<para/>
The <paramref name="provider"/> parameter is an <see cref="T:System.IFormatProvider"/> implementation, such as a <see cref="T:System.Globalization.CultureInfo"/> object,
a <see cref="T:System.Globalization.NumberFormatInfo"/> object or a <see cref="T:J2N.Text.StringFormatter"/> object, whose <see cref="M:System.IFormatProvider.GetFormat(System.Type)"/>
method returns a <see cref="T:System.Globalization.NumberFormatInfo"/> object. The <see cref="T:System.Globalization.NumberFormatInfo"/> object provides culture-specific information about
the format of <paramref name="s"/>. When the <see cref="M:J2N.Numerics.Single.GetInstance(System.String,System.IFormatProvider)"/> method is invoked, it calls the provider parameter's
<see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> method and passes it a <see cref="T:System.Type"/> object that represents the <see cref="T:System.Globalization.NumberFormatInfo"/> type.
The <see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> method then returns the <see cref="T:System.Globalization.NumberFormatInfo"/> object that provides information about the
format of the <paramref name="s"/> parameter. There are three ways to use the <paramref name="provider"/> parameter to supply custom formatting
information to the parse operation:
<list type="bullet">
<item><description>You can pass a <see cref="T:System.Globalization.CultureInfo"/> object that represents the culture that supplies formatting information. Its
<see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> method returns the <see cref="T:System.Globalization.NumberFormatInfo"/> object that provides numeric formatting
information for that culture.</description></item>
<item><description>You can pass the actual <see cref="T:System.Globalization.NumberFormatInfo"/> object that provides numeric formatting information. (Its
implementation of <see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> just returns itself.)</description></item>
<item><description>You can pass a custom object that implements <see cref="T:System.IFormatProvider"/>. Its <see cref="M:System.IFormatProvider.GetFormat(System.Type)"/>
method instantiates and returns the <see cref="T:System.Globalization.NumberFormatInfo"/> object that provides formatting information.</description></item>
</list>
If <paramref name="provider"/> is <c>null</c> or a <see cref="T:System.Globalization.NumberFormatInfo"/> object cannot be obtained, the <see cref="T:System.Globalization.NumberFormatInfo"/>
object for the current culture is used.
<para/>
If <paramref name="s"/> is out of range of the <see cref="T:System.Single"/> data type, the method returns <see cref="F:System.Single.NegativeInfinity"/> if
<paramref name="s"/> is less than <see cref="F:System.Single.MinValue"/> and <see cref="F:System.Single.PositiveInfinity"/> if <paramref name="s"/> is greater
than <see cref="F:System.Single.MaxValue"/>.
<para/>
If a separator is encountered in the <paramref name="s"/> parameter during a parse operation, and the applicable currency or number
decimal and group separators are the same, the parse operation assumes that the separator is a decimal separator rather than a group
separator. For more information about separators, see <see cref="P:System.Globalization.NumberFormatInfo.CurrencyDecimalSeparator"/>,
<see cref="P:System.Globalization.NumberFormatInfo.NumberDecimalSeparator"/>, <see cref="P:System.Globalization.NumberFormatInfo.CurrencyGroupSeparator"/>, and
<see cref="P:System.Globalization.NumberFormatInfo.NumberGroupSeparator"/>.
<para/>
Some examples of <paramref name="s"/> are "100", "-123,456,789", "123.45e+6", "+500", "5e2", "3.1416", "600.", "-.123", and "-Infinity".
</remarks>
<seealso cref="M:J2N.Numerics.Single.Parse(System.String,System.IFormatProvider)"/>
<seealso cref="M:J2N.Numerics.Single.TryParse(System.String,J2N.Globalization.NumberStyle,System.IFormatProvider,System.Single@)"/>
</member>
<member name="M:J2N.Numerics.Single.GetInstance(System.String,J2N.Globalization.NumberStyle,System.IFormatProvider)">
<summary>
Converts the string representation of a number in a specified style and culture-specific format to
its <see cref="T:J2N.Numerics.Single"/> equivalent.
<para/>
Usage Note: To approximately match the behavior of the JDK for decimal numbers, use <see cref="F:J2N.Globalization.NumberStyle.Float"/> combined with
<see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/> for <paramref name="style"/> and <see cref="P:System.Globalization.NumberFormatInfo.InvariantInfo"/> for <paramref name="provider"/>.
To approximately match the behavior of the JDK for hexadecimal numbers, use <see cref="F:J2N.Globalization.NumberStyle.HexFloat"/> combined with
<see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/> for <paramref name="style"/> and <see cref="P:System.Globalization.NumberFormatInfo.InvariantInfo"/> for <paramref name="provider"/>.
These options will parse any number that is supported by Java, but the hex specifier, exponent, and type suffix are all optional.
</summary>
<param name="s">A string that contains a number to convert.</param>
<param name="style">A bitwise combination of enumeration values that indicates the style elements
that can be present in <paramref name="s"/>. Typical values to specify is <see cref="F:J2N.Globalization.NumberStyle.Float"/>
combined with <see cref="F:J2N.Globalization.NumberStyle.AllowThousands"/> or, in the case of hexadecimal numbers,
<see cref="F:J2N.Globalization.NumberStyle.HexFloat"/>.</param>
<param name="provider">An object that supplies culture-specific formatting information about <paramref name="s"/>.</param>
<returns>An immutable <see cref="T:J2N.Numerics.Single"/> instance equivalent to the numeric value or symbol specified in <paramref name="s"/>.</returns>
<exception cref="T:System.ArgumentNullException"><paramref name="s"/> is <c>null</c>.</exception>
<exception cref="T:System.FormatException"><paramref name="s"/> does not represent a numeric value.</exception>
<exception cref="T:System.ArgumentException">
<paramref name="style"/> is not a <see cref="T:J2N.Globalization.NumberStyle"/> value.
<para/>
-or-
<para/>
<paramref name="style"/> is not a combination of <see cref="F:J2N.Globalization.NumberStyle.AllowHexSpecifier"/>, <see cref="F:J2N.Globalization.NumberStyle.HexFloat"/>
and <see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/> values.
<para/>
-or-
<para/>
<paramref name="style"/> has <see cref="F:J2N.Globalization.NumberStyle.AllowHexSpecifier"/> and <see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/> values
but not <see cref="F:J2N.Globalization.NumberStyle.AllowExponent"/>. When type suffix is supplied in a hexadecimal number, exponent (prefixed with a
p or P) is required.
<para/>
-or-
<para/>
<paramref name="style"/> is a combination of <see cref="F:J2N.Globalization.NumberStyle.AllowCurrencySymbol"/> and <see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/>.
</exception>
<remarks>
In .NET Core 3.0 and later, values that are too large to represent are rounded to <see cref="F:System.Single.PositiveInfinity"/> or
<see cref="F:System.Single.NegativeInfinity"/> as required by the IEEE 754 specification. In prior versions, including .NET Framework, parsing a
value that was too large to represent resulted in failure. This implementation uses the new parser, but patches it back to .NET Framework 4.0
and upgrades it to support Java's hexadecimal floating point format.
<para/>
The <paramref name="style"/> parameter defines the style elements (such as white space, thousands separators, and currency symbols) that
are allowed in the s parameter for the parse operation to succeed. It must be a combination of bit flags from the <see cref="T:J2N.Globalization.NumberStyle"/> enumeration.
<para/>
The <paramref name="s"/> parameter can contain <see cref="P:System.Globalization.NumberFormatInfo.PositiveInfinitySymbol"/>, <see cref="P:System.Globalization.NumberFormatInfo.NegativeInfinitySymbol"/>, or
<see cref="P:System.Globalization.NumberFormatInfo.NaNSymbol"/> for the culture specified by <paramref name="provider"/>. Depending on the value of <paramref name="style"/>,
it can also take one of the following forms:
<para/>
[ws] [$] [sign][integral-digits,]integral-digits[.[fractional-digits]][E[sign]exponential-digits][type][ws]
<para/>
Or, if <paramref name="style"/> includes <see cref="F:J2N.Globalization.NumberStyle.AllowHexSpecifier"/>:
<para/>
[ws] [$] [sign][0x][hexdigits,]hexdigits[.[fractional-hexdigits]][P[sign]exponential-digits][type][ws]
<para/>
Elements framed in square brackets ([ and ]) are optional. The following table describes each element.
<para/>
<list type="table">
<listheader>
<term>Element</term>
<term>Description</term>
</listheader>
<item>
<term><i>ws</i></term>
<term>A series of white-space characters. White space can appear at the beginning of <paramref name="s"/> if style includes the
<see cref="F:J2N.Globalization.NumberStyle.AllowLeadingWhite"/> flag, and it can appear at the end of <paramref name="s"/> if style includes the
<see cref="F:J2N.Globalization.NumberStyle.AllowTrailingWhite"/> flag.</term>
</item>
<item>
<term><i>$</i></term>
<term>A culture-specific currency symbol. Its position in the string is defined by the <see cref="P:System.Globalization.NumberFormatInfo.CurrencyNegativePattern"/>
and <see cref="P:System.Globalization.NumberFormatInfo.CurrencyPositivePattern"/> properties of the <see cref="T:System.Globalization.NumberFormatInfo"/> object returned by the
<see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> method of the <paramref name="provider"/> parameter. The current culture's currency symbol can
appear in <paramref name="s"/> if style includes the <see cref="F:J2N.Globalization.NumberStyle.AllowCurrencySymbol"/> flag.</term>
</item>
<item>
<term><i>sign</i></term>
<term>A negative sign symbol (-) or a positive sign symbol (+). The sign can appear at the beginning of <paramref name="s"/> if
<paramref name="style"/> includes the <see cref="F:J2N.Globalization.NumberStyle.AllowLeadingSign"/> flag, and it can appear at the end of <paramref name="s"/>
if <paramref name="style"/> includes the <see cref="F:J2N.Globalization.NumberStyle.AllowTrailingSign"/> flag. Parentheses can be used in <paramref name="s"/>
to indicate a negative value if <paramref name="style"/> includes the <see cref="F:J2N.Globalization.NumberStyle.AllowParentheses"/> flag.</term>
</item>
<item>
<term><i>integral-digits</i></term>
<term>A series of digits ranging from 0 to 9 that specify the integral part of the number. The <i>integral-digits</i> element can be absent
if the string contains the <i>fractional-digits</i> element.</term>
</item>
<item>
<term><i>0x</i>/></term>
<term>The '0x' or '0X' characters, which indicate a hexadecimal number is to immediately follow.</term>
</item>
<item>
<term><i>hexdigits</i></term>
<term>A sequence of hexadecimal digits from 0 through f, or 0 through F that specify the integral part of the number. The <i>hexdigits</i>
element can be absent if the string contains the <i>fractional-hexdigits</i> element. Hexadecimal digits can appear in <paramref name="s"/>
if <paramref name="style"/> includes the <see cref="F:J2N.Globalization.NumberStyle.AllowHexSpecifier"/> flag.</term>
</item>
<item>
<term><i>,</i></term>
<term>A culture-specific thousands separator. The thousands separator of the culture specified by <paramref name="provider"/>
can appear in <paramref name="s"/> if <paramref name="style"/> includes the <see cref="F:J2N.Globalization.NumberStyle.AllowThousands"/> flag.</term>
</item>
<item>
<term><i>.</i></term>
<term>A culture-specific decimal point symbol. The decimal point symbol of the culture specified by <paramref name="provider"/>
can appear in <paramref name="s"/> if <paramref name="style"/> includes the <see cref="F:J2N.Globalization.NumberStyle.AllowDecimalPoint"/> flag.</term>
</item>
<item>
<term><i>fractional-digits</i>
</term>
<term>A series of digits ranging from 0 to 9 that specify the fractional part of the number. Fractional digits can appear in
<paramref name="s"/> if <paramref name="style"/> includes the <see cref="F:J2N.Globalization.NumberStyle.AllowDecimalPoint"/> flag.</term>
</item>
<item>
<term><i>fractional-hexdigits</i>
</term>
<term>A sequence of hexadecimal digits from 0 through f, or 0 through F that specify the fractional part of the number.
Fractional digits can appear in <paramref name="s"/> if <paramref name="style"/> includes both the
<see cref="F:J2N.Globalization.NumberStyle.AllowDecimalPoint"/> and <see cref="F:J2N.Globalization.NumberStyle.AllowHexSpecifier"/> flags.</term>
</item>
<item>
<term><i>e</i></term>
<term>The 'e' or 'E' character, which indicates that the value is represented in exponential notation. The <paramref name="s"/>
parameter can represent a number in exponential notation if style includes the <see cref="F:J2N.Globalization.NumberStyle.AllowExponent"/> flag.</term>
</item>
<item>
<term><i>p</i></term>
<term>The 'p' or 'P' character, which indicates that the hexadecimal value is represented in exponential notation. The <paramref name="s"/>
parameter can represent a hexadecimal number in exponential notation if style includes both the <see cref="F:J2N.Globalization.NumberStyle.AllowExponent"/>
and <see cref="F:J2N.Globalization.NumberStyle.AllowHexSpecifier"/> flags.</term>
</item>
<item>
<term><i>exponential-digits</i></term>
<term>A sequence of decimal digits from 0 through 9 that specify an exponent.</term>
</item>
<item>
<term><i>type</i></term>
<term>The 'UL', 'Ul', 'uL', 'ul', 'LU', 'Lu', 'lU', or 'lu', which is the
<a href="https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/language-specification/lexical-structure#6453-integer-literals">integral type suffix</a>
or 'f', 'F', 'd', 'D', 'm' or 'M' character, which is the
<a href="https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/language-specification/lexical-structure#6454-real-literals">real type suffix</a>
of the number as specified in the C# language specification. The type suffix can appear in <paramref name="s"/> if <paramref name="style"/>
includes the <see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/> flag. If <paramref name="style"/> includes the <see cref="F:J2N.Globalization.NumberStyle.AllowHexSpecifier"/>
flag, specifying the <see cref="F:J2N.Globalization.NumberStyle.AllowExponent"/> is required. Including an exponent in the string (prefixed with 'p' or 'P') is
required for the type suffix characters 'f', 'F', 'd', and 'D' since they would otherwise be interpreted as hexadecimal integral or fractional digits.</term>
</item>
</list>
<para/>
NOTE: Any terminating NUL (U+0000) characters in <paramref name="s"/> are ignored by the parsing operation, regardless of
the value of the <paramref name="style"/> argument.
<para/>
A string with decimal digits only (which corresponds to the <see cref="F:J2N.Globalization.NumberStyle.None"/> flag) always parses successfully.
Most of the remaining <see cref="T:J2N.Globalization.NumberStyle"/> members control elements that may be but are not required to be present in
this input string. The following table indicates how individual <see cref="T:J2N.Globalization.NumberStyle"/> members affect the elements that may
be present in <paramref name="s"/>.
<list type="table">
<listheader>
<term>Non-composite NumberStyle values</term>
<term>Elements permitted in <paramref name="s"/> in addition to digits</term>
</listheader>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.None"/></term>
<term>Decimal digits only.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowDecimalPoint"/></term>
<term>The decimal point (.) and <i>fractional-digits</i> elements. However, <i>fractional-digits</i> must consist
of only one or more 0 digits or the method returns <c>false</c>.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowExponent"/></term>
<term>The <paramref name="s"/> parameter can also use exponential notation. If <paramref name="s"/> represents a
number in exponential notation, it must represent an integer within the range of the <see cref="T:System.Int64"/> data type
without a non-zero, fractional component.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowLeadingWhite"/></term>
<term>The <i>ws</i> element at the beginning of <paramref name="s"/>.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowTrailingWhite"/></term>
<term>The <i>ws</i> element at the end of <paramref name="s"/>.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowLeadingSign"/></term>
<term>A sign can appear before <i>digits</i>.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowTrailingSign"/></term>
<term>A sign can appear after <i>digits</i>.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowParentheses"/></term>
<term>The <i>sign</i> element in the form of parentheses enclosing the numeric value.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowThousands"/></term>
<term>The thousands separator (,) element.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowCurrencySymbol"/></term>
<term>The <i>$</i> element.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/></term>
<term>The literal <i>type</i> suffix used in the literal identifier syntax of C# or Java.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.Currency"/></term>
<term>All elements. The <paramref name="s"/> parameter cannot represent a hexadecimal
number or a number in exponential notation (prefixed with an 'e' or 'E').</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.Float"/></term>
<term>The <i>ws</i> element at the beginning or end of <paramref name="s"/>, sign at
the beginning of <paramref name="s"/>, and the decimal point (.) symbol. The <paramref name="s"/>
parameter can also use exponential notation (prefixed with an 'e' or 'E').</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.HexFloat"/></term>
<term>The <i>ws</i> element at the beginning or end of <paramref name="s"/>, sign at
the beginning of <paramref name="s"/>, and the decimal point (.) symbol. The <paramref name="s"/>
parameter can also use exponential notation (prefixed with a 'p' or 'P').</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.Number"/></term>
<term>The <i>ws</i>, <i>sign</i>, thousands separator (,), and decimal point (.) elements.</term>
</item>
<item>
<term><see cref="F:J2N.Globalization.NumberStyle.Any"/></term>
<term>All styles, except <paramref name="s"/> cannot represent a hexadecimal number.</term>
</item>
</list>
<para/>
The <see cref="T:J2N.Globalization.NumberStyle"/> enum can be converted to the .NET <see cref="T:System.Globalization.NumberStyles"/> enum by using the
<see cref="M:J2N.Globalization.NumberStyleExtensions.ToNumberStyles(J2N.Globalization.NumberStyle)"/> extension method.
Similarly, <see cref="T:System.Globalization.NumberStyles"/> enum can be converted to the J2N <see cref="T:J2N.Globalization.NumberStyle"/> enum by using
the <see cref="M:J2N.Globalization.NumberStyleExtensions.ToNumberStyle(System.Globalization.NumberStyles)"/> extension method.
<para/>
If the <see cref="F:J2N.Globalization.NumberStyle.AllowHexSpecifier"/> flag is used, <paramref name="s"/> must be a hexadecimal value which may include an optional 0x or 0X prefix.
For example, "0xC9AF3.8BD4C". This flag may be combined with any of the flags specified in <see cref="F:J2N.Globalization.NumberStyle.Float"/> and also
<see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/>. (The <see cref="T:J2N.Globalization.NumberStyle"/> enumeration has a composite style, <see cref="F:J2N.Globalization.NumberStyle.HexFloat"/>,
that includes all of those flags except <see cref="F:J2N.Globalization.NumberStyle.AllowTypeSpecifier"/>.)
<para/>
The <paramref name="provider"/> parameter is an <see cref="T:System.IFormatProvider"/> implementation, such as a <see cref="T:System.Globalization.CultureInfo"/> object,
a <see cref="T:System.Globalization.NumberFormatInfo"/> object or a <see cref="T:J2N.Text.StringFormatter"/> object, whose <see cref="M:System.IFormatProvider.GetFormat(System.Type)"/>
method returns a <see cref="T:System.Globalization.NumberFormatInfo"/> object. The <see cref="T:System.Globalization.NumberFormatInfo"/> object provides culture-specific information about
the format of <paramref name="s"/>. When the <see cref="M:J2N.Numerics.Single.GetInstance(System.String,J2N.Globalization.NumberStyle,System.IFormatProvider)"/> method is invoked, it calls the provider parameter's
<see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> method and passes it a <see cref="T:System.Type"/> object that represents the <see cref="T:System.Globalization.NumberFormatInfo"/> type.
The <see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> method then returns the <see cref="T:System.Globalization.NumberFormatInfo"/> object that provides information about the
format of the <paramref name="s"/> parameter. There are three ways to use the <paramref name="provider"/> parameter to supply custom formatting
information to the parse operation:
<list type="bullet">
<item><description>You can pass a <see cref="T:System.Globalization.CultureInfo"/> object that represents the culture that supplies formatting information. Its
<see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> method returns the <see cref="T:System.Globalization.NumberFormatInfo"/> object that provides numeric formatting
information for that culture.</description></item>
<item><description>You can pass the actual <see cref="T:System.Globalization.NumberFormatInfo"/> object that provides numeric formatting information. (Its
implementation of <see cref="M:System.IFormatProvider.GetFormat(System.Type)"/> just returns itself.)</description></item>
<item><description>You can pass a custom object that implements <see cref="T:System.IFormatProvider"/>. Its <see cref="M:System.IFormatProvider.GetFormat(System.Type)"/>
method instantiates and returns the <see cref="T:System.Globalization.NumberFormatInfo"/> object that provides formatting information.</description></item>
</list>
If <paramref name="provider"/> is <c>null</c> or a <see cref="T:System.Globalization.NumberFormatInfo"/> object cannot be obtained, the <see cref="T:System.Globalization.NumberFormatInfo"/>
object for the current culture is used.
<para/>
If <paramref name="s"/> is out of range of the <see cref="T:System.Single"/> data type, the method returns <see cref="F:System.Single.NegativeInfinity"/> if
<paramref name="s"/> is less than <see cref="F:System.Single.MinValue"/> and <see cref="F:System.Single.PositiveInfinity"/> if <paramref name="s"/> is greater
than <see cref="F:System.Single.MaxValue"/>.
<para/>
If a separator is encountered in the <paramref name="s"/> parameter during a parse operation, and the applicable currency or number
decimal and group separators are the same, the parse operation assumes that the separator is a decimal separator rather than a group
separator. For more information about separators, see <see cref="P:System.Globalization.NumberFormatInfo.CurrencyDecimalSeparator"/>,
<see cref="P:System.Globalization.NumberFormatInfo.NumberDecimalSeparator"/>, <see cref="P:System.Globalization.NumberFormatInfo.CurrencyGroupSeparator"/>, and
<see cref="P:System.Globalization.NumberFormatInfo.NumberGroupSeparator"/>.
</remarks>
<seealso cref="M:J2N.Numerics.Single.Parse(System.String,J2N.Globalization.NumberStyle,System.IFormatProvider)"/>
<seealso cref="M:J2N.Numerics.Single.TryParse(System.String,J2N.Globalization.NumberStyle,System.IFormatProvider,System.Single@)"/>
</member>
<member name="M:J2N.Numerics.Single.GetInstance(System.Single)">
<summary>
Returns an immutable <see cref="T:J2N.Numerics.Single"/> instance for the specified <paramref name="value"/>.
<para/>
Usage Note: This is the same operation as Float.valueOf() in the JDK.
</summary>
<param name="value">The <see cref="T:System.Single"/> value the returned instance represents.</param>
<returns>An immutable <see cref="T:J2N.Numerics.Single"/> instance containing the <paramref name="value"/>.</returns>
</member>
<member name="M:J2N.Numerics.Single.ToHexString(System.IFormatProvider)">
<summary>
Returns a hexadecimal string representation of the current instance. All characters mentioned below are ASCII characters.
<list type="bullet">
<item><description>If the current value is <see cref="F:System.Single.NaN"/>, the result is <see cref="P:System.Globalization.NumberFormatInfo.NumberDecimalSeparator"/>
of the <paramref name="provider"/>. </description></item>
<item><description>Otherwise, the result is a string that represents the sign and magnitude of the current value. If the sign
is negative, it is prefixed by <see cref="P:System.Globalization.NumberFormatInfo.NegativeSign"/> of the <paramref name="provider"/>; if the
sign is positive, no sign character appears in the result. As for the magnitude <i>m</i>: </description>
<list type="bullet">
<item><description>If <i>m</i> is positive infinity, it is represented by <see cref="P:System.Globalization.NumberFormatInfo.PositiveInfinitySymbol"/> of the <paramref name="provider"/>;
if <i>m</i> is negative infinity, it is represented by <see cref="P:System.Globalization.NumberFormatInfo.NegativeInfinitySymbol"/> of the <paramref name="provider"/>.</description></item>
<item><description>If <i>m</i> is zero, it is represented by the string "0x0.0p0"; thus, negative zero produces the result
"-0x0.0p0" and positive zero produces the result "0x0.0p0". The negative symbol is represented by <see cref="P:System.Globalization.NumberFormatInfo.NegativeSign"/>
and decimal separator character is represented by <see cref="P:System.Globalization.NumberFormatInfo.NumberDecimalSeparator"/>.</description></item>
<item><description>If <i>m</i> is a <see cref="T:System.Single"/> value with a normalized representation, substrings are used to represent the
significand and exponent fields. The significand is represented by the characters "0x1" followed by <see cref="P:System.Globalization.NumberFormatInfo.NumberDecimalSeparator"/>,
followed by a lowercase hexadecimal representation of the rest of the significand as a fraction. Trailing zeros in the hexadecimal representation
are removed unless all the digits are zero, in which case a single zero is used. Next, the exponent is represented by "p"
followed by a decimal string of the unbiased exponent as if produced by a call to <see cref="M:System.Int32.ToString"/> with invariant culture on the exponent value. </description></item>
<item><description>If <i>m</i> is a <see cref="T:System.Single"/> value with a subnormal representation, the significand is represented by the characters "0x0"
followed by <see cref="P:System.Globalization.NumberFormatInfo.NumberDecimalSeparator"/>, followed by a hexadecimal representation of the rest of the significand as a fraction.
Trailing zeros in the hexadecimal representation are removed. Next, the exponent is represented by "p-126". Note that there must be at least one nonzero
digit in a subnormal significand. </description></item>
</list>
</item>
</list>
<para/>
The value of <see cref="P:System.Globalization.NumberFormatInfo.NumberNegativePattern"/> of <paramref name="provider"/> is ignored.
<para/>
<h3>Examples (using <see cref="P:System.Globalization.NumberFormatInfo.InvariantInfo"/>)</h3>
<list type="table">
<listheader>
<term>Floating-point Value</term>
<term>Hexadecimal String</term>
</listheader>
<item>
<term>1.0</term>
<term>0x1.0p0</term>
</item>
<item>
<term>-1.0</term>
<term>-0x1.0p0</term>
</item>
<item>
<term>2.0</term>
<term>0x1.0p1</term>
</item>
<item>
<term>3.0</term>
<term>0x1.8p1</term>
</item>
<item>
<term>0.5</term>
<term>0x1.0p-1</term>
</item>
<item>
<term>0.25</term>
<term>0x1.0p-2</term>
</item>
<item>
<term><see cref="F:System.Single.MaxValue"/></term>
<term>0x1.fffffep127</term>
</item>
<item>
<term>Minimum Normal Value</term>
<term>0x1.0p-126</term>
</item>
<item>
<term>Maximum Subnormal Value</term>
<term>0x0.fffffep-126</term>
</item>
<item>
<term><see cref="F:System.Single.Epsilon"/></term>
<term>0x0.000002p-126</term>
</item>
</list>
</summary>
<param name="provider">An object that supplies culture-specific formatting information.</param>
<returns>A hex string representing the current instance.</returns>
</member>
<member name="M:J2N.Numerics.Single.op_Implicit(J2N.Numerics.Single)~System.Single">
<inheritdoc/>
</member>
<member name="M:J2N.Numerics.Single.op_Implicit(System.Single)~J2N.Numerics.Single">
<inheritdoc/>
</member>
<member name="M:J2N.Numerics.Single.ToByte">
<inheritdoc/>
</member>
<member name="M:J2N.Numerics.Single.ToDouble">
<inheritdoc/>
</member>
<member name="M:J2N.Numerics.Single.ToInt16">
<inheritdoc/>
</member>
<member name="M:J2N.Numerics.Single.ToInt32">
<inheritdoc/>
</member>
<member name="M:J2N.Numerics.Single.ToInt64">
<inheritdoc/>
</member>
<member name="M:J2N.Numerics.Single.ToSByte">
<inheritdoc/>
</member>
<member name="M:J2N.Numerics.Single.ToSingle">
<inheritdoc/>
</member>
<member name="M:J2N.Numerics.Single.GetTypeCode">
<summary>
Returns the <see cref="T:System.TypeCode"/> for value type <see cref="T:System.Single"/>.
</summary>
<returns>The enumerated constant, <see cref="F:System.TypeCode.Single"/>.</returns>
</member>
<member name="T:J2N.PropertyExtensions">
<summary>
Extension methods that turn any <see cref="T:System.Collections.Generic.IDictionary`2"/> into a set of
properties that can read from or be written to the Java <c>.properties</c> file format.
</summary>
</member>
<member name="M:J2N.PropertyExtensions.GetPropertyAsBoolean(System.Collections.Generic.IDictionary{System.String,System.String},System.String)">
<summary>
Retrieves the value of a property from the current dictionary
as <see cref="T:System.Boolean"/>. If the value cannot be cast to <see cref="T:System.Boolean"/>, returns <c>false</c>.
</summary>
<param name="properties">A <see cref="T:System.Collections.Generic.IDictionary`2"/> containing
key value pairs that correspond to property names and values.</param>
<param name="name">The name of the property.</param>
<returns>The named property value, or <c>false</c> if it can't be found.</returns>
<exception cref="T:System.ArgumentNullException">If <paramref name="properties"/> or <paramref name="name"/> is <c>null</c>.</exception>
</member>
<member name="M:J2N.PropertyExtensions.GetPropertyAsBoolean(System.Collections.Generic.IDictionary{System.String,System.String},System.String,System.Boolean)">
<summary>
Retrieves the value of a property from the current dictionary as <see cref="T:System.Boolean"/>,
with a default value if it doesn't exist or the value cannot be cast to a <see cref="T:System.Boolean"/>.
</summary>
<param name="properties">A <see cref="T:System.Collections.Generic.IDictionary`2"/> containing
key value pairs that correspond to property names and values.</param>
<param name="name">The name of the property.</param>
<param name="defaultValue">The value to use if the property does not exist
or the value cannot be cast to <see cref="T:System.Boolean"/>.</param>
<returns>The named property value, or <paramref name="defaultValue"/> if it can't be found or cannot be converted to a <see cref="T:System.Boolean"/>.</returns>
<exception cref="T:System.ArgumentNullException">If <paramref name="properties"/> or <paramref name="name"/> is <c>null</c>.</exception>
</member>
<member name="M:J2N.PropertyExtensions.GetPropertyAsInt32(System.Collections.Generic.IDictionary{System.String,System.String},System.String)">
<summary>
Retrieves the value of an environment variable from the current process
as <see cref="T:System.Int32"/>. If the value cannot be converted to <see cref="T:System.Int32"/> using the ambient culture, returns <c>0</c>.
</summary>
<param name="properties">A <see cref="T:System.Collections.Generic.IDictionary`2"/> containing
key value pairs that correspond to property names and values.</param>
<param name="name">The name of the property.</param>
<returns>The named property value, or <c>0</c> if it can't be found or cannot be
converted to a <see cref="T:System.Int32"/> using the ambient culture.</returns>
<exception cref="T:System.ArgumentNullException">If <paramref name="properties"/> or <paramref name="name"/> is <c>null</c>.</exception>
</member>
<member name="M:J2N.PropertyExtensions.GetPropertyAsInt32(System.Collections.Generic.IDictionary{System.String,System.String},System.IFormatProvider,System.String)">
<summary>
Retrieves the value of an environment variable from the current process
as <see cref="T:System.Int32"/>. If the value cannot be converted to <see cref="T:System.Int32"/> using <paramref name="provider"/>, returns <c>0</c>.
</summary>
<param name="properties">A <see cref="T:System.Collections.Generic.IDictionary`2"/> containing
key value pairs that correspond to property names and values.</param>
<param name="provider">An object that provides culture-specific formatting information about the value.</param>
<param name="name">The name of the property.</param>
<returns>The named property value, or <c>0</c> if it can't be found or cannot be
converted to a <see cref="T:System.Int32"/> using <paramref name="provider"/>.</returns>
<exception cref="T:System.ArgumentNullException">If <paramref name="properties"/> or <paramref name="name"/> is <c>null</c>.</exception>
</member>
<member name="M:J2N.PropertyExtensions.GetPropertyAsInt32(System.Collections.Generic.IDictionary{System.String,System.String},System.String,System.Int32)">
<summary>
Retrieves the value of an environment variable from the current process as <see cref="T:System.Int32"/>,
with a default value if it doens't exist, the caller doesn't have permission to read the value,
or the value cannot be converted to <see cref="T:System.Int32"/> using the ambient culture.
</summary>
<param name="properties">A <see cref="T:System.Collections.Generic.IDictionary`2"/> containing
key value pairs that correspond to property names and values.</param>
<param name="name">The name of the property.</param>
<param name="defaultValue">The value to use if property does not exist or the value cannot
be converted to <see cref="T:System.Int32"/> using the ambient culture.</param>
<returns>The named property value, or <paramref name="defaultValue"/> if it can't be found or cannot be
converted to a <see cref="T:System.Int32"/> using the ambient culture.</returns>
<exception cref="T:System.ArgumentNullException">If <paramref name="properties"/> or <paramref name="name"/> is <c>null</c>.</exception>
</member>
<member name="M:J2N.PropertyExtensions.GetPropertyAsInt32(System.Collections.Generic.IDictionary{System.String,System.String},System.IFormatProvider,System.String,System.Int32)">
<summary>
Retrieves the value of an environment variable from the current process as <see cref="T:System.Int32"/>,
with a default value if it doens't exist, the caller doesn't have permission to read the value,
or the value cannot be converted to <see cref="T:System.Int32"/> using <paramref name="provider"/>.
</summary>
<param name="properties">A <see cref="T:System.Collections.Generic.IDictionary`2"/> containing
key value pairs that correspond to property names and values.</param>
<param name="provider">An object that provides culture-specific formatting information about the value.</param>
<param name="name">The name of the property.</param>
<param name="defaultValue">The value to use if property does not exist or the value cannot
be converted to <see cref="T:System.Int32"/> using <paramref name="provider"/>.</param>
<returns>The named property value, or <paramref name="defaultValue"/> if it can't be found or cannot be
converted to a <see cref="T:System.Int32"/> using <paramref name="provider"/>.</returns>
<exception cref="T:System.ArgumentNullException">If <paramref name="properties"/> or <paramref name="name"/> is <c>null</c>.</exception>
</member>
<member name="M:J2N.PropertyExtensions.GetProperty(System.Collections.Generic.IDictionary{System.String,System.String},System.String)">
<summary>
Searches for the property with the specified name. If the property is not
found, <c>null</c> is returned.
</summary>
<param name="properties">A <see cref="T:System.Collections.Generic.IDictionary`2"/> containing
key value pairs that correspond to property names and values.</param>
<param name="name">The name of the property to find.</param>
<returns>The named property value, or <c>null</c> if it can't be found.</returns>
<exception cref="T:System.ArgumentNullException">If <paramref name="properties"/> or <paramref name="name"/> is <c>null</c>.</exception>
</member>
<member name="M:J2N.PropertyExtensions.GetProperty(System.Collections.Generic.IDictionary{System.String,System.String},System.String,System.String)">
<summary>
Searches for the property with the specified name. If the property is not
found, <paramref name="defaultValue"/> is returned.
</summary>
<param name="properties">A <see cref="T:System.Collections.Generic.IDictionary`2"/> containing
key value pairs that correspond to property names and values.</param>
<param name="name">The name of the property to find.</param>
<param name="defaultValue">The value to use if property does not exist.</param>
<returns>The named property value, or <paramref name="defaultValue"/> if it can't be found.</returns>
<exception cref="T:System.ArgumentNullException">If <paramref name="properties"/> or <paramref name="name"/> is <c>null</c>.</exception>
</member>
<member name="M:J2N.PropertyExtensions.LoadProperties(System.Collections.Generic.IDictionary{System.String,System.String},System.IO.Stream)">
<summary>
Reads a property list (key and element pairs) from the input
byte stream. The input stream is in a simple line-oriented
format as specified in <see cref="M:J2N.PropertyExtensions.LoadProperties(System.Collections.Generic.IDictionary{System.String,System.String},System.IO.TextReader)"/>
and is assumed to use
the ISO 8859-1 character encoding; that is each byte is one Latin1
character. Characters not in Latin1, and certain special characters,
are represented in keys and elements using Unicode escapes as defined in
section 3.3 of <i>The Java&#8482; Language Specification</i>.
<para/>
The specified <paramref name="input"/> stream remains open after this method returns.
<para/>
The file format is compatible with Java properties, so they can easily be written or consumed by .NET.
</summary>
<param name="properties">A <see cref="T:System.Collections.Generic.IDictionary`2"/> containing
key value pairs that correspond to property names and values.</param>
<param name="input">The input stream.</param>
<exception cref="T:System.IO.IOException">If an error occurred while reading from the input stream.</exception>
<exception cref="T:System.ArgumentNullException">If <paramref name="properties"/> or <paramref name="input"/> is <c>null</c>.</exception>
</member>
<member name="M:J2N.PropertyExtensions.LoadProperties(System.Collections.Generic.IDictionary{System.String,System.String},System.IO.TextReader)">
<summary>
Reads a property list (key and element pairs) from the input
<see cref="T:System.IO.TextReader"/> in a simple line-oriented format.
<para/>
The file format is compatible with Java properties, so they can easily be written or consumed by .NET.
<para/>
Usage Note: This method requires ISO-8859-1 encoding and depending on your platform, you may need
to register the encoding provider to use it. See
<a href="https://docs.microsoft.com/en-us/dotnet/api/system.text.codepagesencodingprovider">CodePagesEncodingProvider</a>
for details about registering a provider.
<para/>
Properties are processed in terms of lines. There are two
kinds of line, <i>natural lines</i> and <i>logical lines</i>.
A natural line is defined as a line of
characters that is terminated either by a set of line terminator
characters (<c>\n</c> or <c>\r</c> or <c>\r\n</c>)
or by the end of the stream. A natural line may be either a blank line,
a comment line, or hold all or some of a key-element pair. A logical
line holds all the data of a key-element pair, which may be spread
out across several adjacent natural lines by escaping
the line terminator sequence with a backslash character
<c>\</c>. Note that a comment line cannot be extended
in this manner; every natural line that is a comment must have
its own comment indicator, as described below. Lines are read from
input until the end of the stream is reached.
<para/>
A natural line that contains only white space characters is
considered blank and is ignored. A comment line has an ASCII
<c>'#'</c> or <c>'!'</c> as its first non-white
space character; comment lines are also ignored and do not
encode key-element information. In addition to line
terminators, this format considers the characters space
(<c>' '</c>, <c>'&#92;u0020'</c>), tab
(<c>'\t'</c>, <c>'&#92;u0009'</c>), and form feed
(<c>'\f'</c>, <c>'&#92;u000C'</c>) to be white
space.
<para/>
If a logical line is spread across several natural lines, the
backslash escaping the line terminator sequence, the line
terminator sequence, and any white space at the start of the
following line have no affect on the key or element values.
The remainder of the discussion of key and element parsing
(when loading) will assume all the characters constituting
the key and element appear on a single natural line after
line continuation characters have been removed. Note that
it is <i>not</i> sufficient to only examine the character
preceding a line terminator sequence to decide if the line
terminator is escaped; there must be an odd number of
contiguous backslashes for the line terminator to be escaped.
Since the input is processed from left to right, a
non-zero even number of 2<i>n</i> contiguous backslashes
before a line terminator (or elsewhere) encodes <i>n</i>
backslashes after escape processing.
<para/>
The key contains all of the characters in the line starting
with the first non-white space character and up to, but not
including, the first unescaped <c>'='</c>,
<c>':'</c>, or white space character other than a line
terminator. All of these key termination characters may be
included in the key by escaping them with a preceding backslash
character; for example,<para/>
<code>\:\=</code><para/>
would be the two-character key <c>":="</c>. Line
terminator characters can be included using <c>\r</c> and
<c>\n</c> escape sequences. Any white space after the
key is skipped; if the first non-white space character after
the key is <c>'='</c> or <c>':'</c>, then it is
ignored and any white space characters after it are also
skipped. All remaining characters on the line become part of
the associated element string; if there are no remaining
characters, the element is the empty string
<c>&quot;&quot;</c>. Once the raw character sequences
constituting the key and element are identified, escape
processing is performed as described above.
<para/>
As an example, each of the following three lines specifies the key
<c>"Truth"</c> and the associated element value
<c>"Beauty"</c>:
<para/>
<code>
Truth = Beauty
Truth:Beauty
Truth :Beauty
</code>
As another example, the following three lines specify a single
property:
<para/>
<code>
fruits apple, banana, pear, \
cantaloupe, watermelon, \
kiwi, mango
</code>
The key is <c>"fruits"</c> and the associated element is:
<para/>
<code>"apple, banana, pear, cantaloupe, watermelon, kiwi, mango"</code>
Note that a space appears before each <c>\</c> so that a space
will appear after each comma in the final result; the <c>\</c>,
line terminator, and leading white space on the continuation line are
merely discarded and are <i>not</i> replaced by one or more other
characters.
<para/>
As a third example, the line:
<para/>
<code>cheeses
</code>
specifies that the key is <c>"cheeses"</c> and the associated
element is the empty string <c>""</c>.<para/>
<para/>
<a name="unicodeescapes"></a>
Characters in keys and elements can be represented in escape
sequences similar to those used for character and string literals
(see sections 3.3 and 3.10.6 of
<i>The Java&#8482; Language Specification</i>).
The differences from the character escape sequences and Unicode
escapes used for characters and strings are:
<list type="bullet">
<item><description>Octal escapes are not recognized.</description></item>
<item><description>The character sequence <c>\b</c> does <i>not</i>
represent a backspace character.</description></item>
<item><description>The method does not treat a backslash character,
<c>\</c>, before a non-valid escape character as an
error; the backslash is silently dropped. For example, in a
Java string the sequence <c>"\z"</c> would cause a
compile time error. In contrast, this method silently drops
the backslash. Therefore, this method treats the two character
sequence <c>"\b"</c> as equivalent to the single
character <c>'b'</c>.</description></item>
<item><description>Escapes are not necessary for single and double quotes;
however, by the rule above, single and double quote characters
preceded by a backslash still yield single and double quote
characters, respectively.</description></item>
<item><description>Only a single 'u' character is allowed in a Uniocde escape
sequence.</description></item>
</list>
<para/>
The specified stream remains open after this method returns.
</summary>
<param name="properties">A <see cref="T:System.Collections.Generic.IDictionary`2"/> containing
key value pairs that correspond to property names and values.</param>
<param name="reader">The input <see cref="T:System.IO.TextReader"/>.</param>
<exception cref="T:System.IO.IOException">If an error occurs when reading from the
input stream.</exception>
<exception cref="T:System.ArgumentException">If a malformed Unicode escape
appears in the input.</exception>
<exception cref="T:System.ArgumentNullException">If <paramref name="properties"/> or <paramref name="reader"/> is <c>null</c>.</exception>
</member>
<member name="M:J2N.PropertyExtensions.SaveProperties(System.Collections.Generic.IDictionary{System.String,System.String},System.IO.Stream)">
<summary>
Writes this property list (key and element pairs) in this
<see cref="T:System.Collections.Generic.IDictionary`2"/> table to the <see cref="T:System.IO.TextWriter"/>
in a format suitable for using the <see cref="M:J2N.PropertyExtensions.LoadProperties(System.Collections.Generic.IDictionary{System.String,System.String},System.IO.Stream)"/>
method.
<para/>
The file format is compatible with Java properties, so they can easily be written or consumed by .NET.
<para/>
Usage Note: This method requires ISO-8859-1 encoding and depending on your platform, you may need
to register the encoding provider to use it. See
<a href="https://docs.microsoft.com/en-us/dotnet/api/system.text.codepagesencodingprovider">CodePagesEncodingProvider</a>
for details about registering a provider.
<para/>
This method outputs the properties keys and values in
the same format as specified in
<see cref="M:J2N.PropertyExtensions.SaveProperties(System.Collections.Generic.IDictionary{System.String,System.String},System.IO.TextWriter)"/>,
with the following differences:
<para/>
The stream is written using the ISO 8859-1 character encoding.
<para/>
Characters not in Latin-1 in the comments are written as
<c>&#92;u</c><i>xxxx</i> for their appropriate unicode
hexadecimal value <i>xxxx</i>.
<para/>
Characters less than <c>&#92;u0020</c> and characters greater
than <code>&#92;u007E</code> in property keys or values are written
as <c>&#92;u</c><i>xxxx</i> for the appropriate hexadecimal
value <i>xxxx</i>.
<para/>
After the entries have been written, the output stream is flushed.
The output stream remains open after this method returns.
<para/>
An attempt will be tried (but not guaranteed) to be thread-safe.
If the <see cref="T:System.Collections.Generic.IDictionary`2"/> implements <see cref="T:System.Collections.ICollection"/>
and its <see cref="P:System.Collections.ICollection.IsSynchronized"/> property returns <c>true</c>,
a lock will be placed on its <see cref="P:System.Collections.ICollection.SyncRoot"/> property.
If the <see cref="T:System.Collections.Generic.IDictionary`2"/> does not implement <see cref="T:System.Collections.ICollection"/>
or its <see cref="P:System.Collections.ICollection.IsSynchronized"/> property returns <c>false</c>,
a lock will be placed on the <paramref name="properties"/> object.
Either way, it is up to the implementation of the <see cref="T:System.Collections.Generic.IDictionary`2"/>
and/or its calling code to respect thread safety.
</summary>
<param name="properties">A <see cref="T:System.Collections.Generic.IDictionary`2"/> containing
key value pairs that correspond to property names and values.</param>
<param name="output">A <see cref="T:System.IO.Stream"/> to write to.</param>
<exception cref="T:System.IO.IOException">If writing this property list to the specified
output stream throws an <see cref="T:System.IO.IOException"/>.</exception>
<exception cref="T:System.ArgumentNullException">If <paramref name="properties"/> or
<paramref name="output"/> is <c>null</c>.</exception>
</member>
<member name="M:J2N.PropertyExtensions.SaveProperties(System.Collections.Generic.IDictionary{System.String,System.String},System.IO.Stream,System.String)">
<summary>
Writes this property list (key and element pairs) in this
<see cref="T:System.Collections.Generic.IDictionary`2"/> table to the <see cref="T:System.IO.TextWriter"/>
in a format suitable for using the <see cref="M:J2N.PropertyExtensions.LoadProperties(System.Collections.Generic.IDictionary{System.String,System.String},System.IO.Stream)"/>
method.
<para/>
The file format is compatible with Java properties, so they can easily be written or consumed by .NET.
<para/>
Usage Note: This method requires ISO-8859-1 encoding and depending on your platform, you may need
to register the encoding provider to use it. See
<a href="https://docs.microsoft.com/en-us/dotnet/api/system.text.codepagesencodingprovider">CodePagesEncodingProvider</a>
for details about registering a provider.
<para/>
This method outputs the comments, properties keys and values in
the same format as specified in
<see cref="M:J2N.PropertyExtensions.SaveProperties(System.Collections.Generic.IDictionary{System.String,System.String},System.IO.TextWriter,System.String)"/>,
with the following differences:
<para/>
The stream is written using the ISO 8859-1 character encoding.
<para/>
Characters not in Latin-1 in the comments are written as
<c>&#92;u</c><i>xxxx</i> for their appropriate unicode
hexadecimal value <i>xxxx</i>.
<para/>
Characters less than <c>&#92;u0020</c> and characters greater
than <code>&#92;u007E</code> in property keys or values are written
as <c>&#92;u</c><i>xxxx</i> for the appropriate hexadecimal
value <i>xxxx</i>.
<para/>
After the entries have been written, the output stream is flushed.
The output stream remains open after this method returns.
<para/>
An attempt will be tried (but not guaranteed) to be thread-safe.
If the <see cref="T:System.Collections.Generic.IDictionary`2"/> implements <see cref="T:System.Collections.ICollection"/>
and its <see cref="P:System.Collections.ICollection.IsSynchronized"/> property returns <c>true</c>,
a lock will be placed on its <see cref="P:System.Collections.ICollection.SyncRoot"/> property.
If the <see cref="T:System.Collections.Generic.IDictionary`2"/> does not implement <see cref="T:System.Collections.ICollection"/>
or its <see cref="P:System.Collections.ICollection.IsSynchronized"/> property returns <c>false</c>,
a lock will be placed on the <paramref name="properties"/> object.
Either way, it is up to the implementation of the <see cref="T:System.Collections.Generic.IDictionary`2"/>
and/or its calling code to respect thread safety.
</summary>
<param name="properties">A <see cref="T:System.Collections.Generic.IDictionary`2"/> containing
key value pairs that correspond to property names and values.</param>
<param name="output">A <see cref="T:System.IO.Stream"/> to write to.</param>
<param name="comments">A description of the property list.</param>
<exception cref="T:System.IO.IOException">If writing this property list to the specified
output stream throws an <see cref="T:System.IO.IOException"/>.</exception>
<exception cref="T:System.ArgumentNullException">If <paramref name="properties"/>,
<paramref name="output"/>, or <paramref name="comments"/> is <c>null</c>.</exception>
</member>
<member name="M:J2N.PropertyExtensions.SaveProperties(System.Collections.Generic.IDictionary{System.String,System.String},System.IO.TextWriter)">
<summary>
Writes this property list (key and element pairs) in this
<see cref="T:System.Collections.Generic.IDictionary`2"/> table to the <see cref="T:System.IO.TextWriter"/>
in a format suitable for using the <see cref="M:J2N.PropertyExtensions.LoadProperties(System.Collections.Generic.IDictionary{System.String,System.String},System.IO.TextReader)"/>
method.
<para/>
The file format is compatible with Java properties, so they can easily be written or consumed by .NET.
<para/>
A comment line is always written, consisting of an ASCII
<c>#</c> character, the current date and time (as if produced
by <c>DateTime.UtcNow.ToString("yyyy-MM-dd", CultureInfo.InvariantCulture)</c>
for the current time, and a line separator as generated by the <see cref="T:System.IO.TextWriter"/>.
<para/>
Then every entry in this <paramref name="properties"/> dictionary is
written out, one per line. For each entry the key string is
written, then an ASCII <c>=</c>, then the associated
element string. For the key, all space characters are
written with a preceding <c>\</c> character. For the
element, leading space characters, but not embedded or trailing
space characters, are written with a preceding <c>\</c>
character. The key and element characters <c>#</c>,
<c>!</c>, <c>=</c>, and <c>:</c> are written
with a preceding backslash to ensure that they are properly loaded.
<para/>
After the entries have been written, the output stream is flushed.
The output stream remains open after this method returns.
<para/>
An attempt will be tried (but not guaranteed) to be thread-safe.
If the <see cref="T:System.Collections.Generic.IDictionary`2"/> implements <see cref="T:System.Collections.ICollection"/>
and its <see cref="P:System.Collections.ICollection.IsSynchronized"/> property returns <c>true</c>,
a lock will be placed on its <see cref="P:System.Collections.ICollection.SyncRoot"/> property.
If the <see cref="T:System.Collections.Generic.IDictionary`2"/> does not implement <see cref="T:System.Collections.ICollection"/>
or its <see cref="P:System.Collections.ICollection.IsSynchronized"/> property returns <c>false</c>,
a lock will be placed on the <paramref name="properties"/> object.
Either way, it is up to the implementation of the <see cref="T:System.Collections.Generic.IDictionary`2"/>
and/or its calling code to respect thread safety.
</summary>
<param name="properties">A <see cref="T:System.Collections.Generic.IDictionary`2"/> containing
key value pairs that correspond to property names and values.</param>
<param name="writer">A <see cref="T:System.IO.TextWriter"/>.</param>
<exception cref="T:System.IO.IOException">If writing this property list to the specified
output stream throws an <see cref="T:System.IO.IOException"/>.</exception>
<exception cref="T:System.ArgumentNullException">If <paramref name="properties"/> or
<paramref name="writer"/> is <c>null</c>.</exception>
</member>
<member name="M:J2N.PropertyExtensions.SaveProperties(System.Collections.Generic.IDictionary{System.String,System.String},System.IO.TextWriter,System.String)">
<summary>
Writes this property list (key and element pairs) in this
<see cref="T:System.Collections.Generic.IDictionary`2"/> table to the <see cref="T:System.IO.TextWriter"/>
in a format suitable for using the <see cref="M:J2N.PropertyExtensions.LoadProperties(System.Collections.Generic.IDictionary{System.String,System.String},System.IO.TextReader)"/>
method.
<para/>
The file format is compatible with Java properties, so they can easily be written or consumed by .NET.
<para/>
For the <paramref name="comments"/> argument, an ASCII <c>#</c>
character, the comments string, and a line separater are first written to the output stream.
Thus, the <paramref name="comments"/> can serve as an identifying comment. Any one of a line
feed ('\n'), a carriage return ('\r'), or a carriage return followed immediately by a line feed
in comments is replaced by a line separator generated by the <see cref="T:System.IO.TextWriter"/>
and if the next character in comments is not character <c>#</c> or
character <c>!</c> then an ASCII <c>#</c> is written out
after that line separator.
<para/>
Next, a comment line is always written, consisting of an ASCII
<c>#</c> character, the current date and time (as if produced
by <c>DateTime.UtcNow.ToString("yyyy-MM-dd", CultureInfo.InvariantCulture)</c>
for the current time, and a line separator as generated by the <see cref="T:System.IO.TextWriter"/>.
<para/>
Then every entry in this <paramref name="properties"/> dictionary is
written out, one per line. For each entry the key string is
written, then an ASCII <c>=</c>, then the associated
element string. For the key, all space characters are
written with a preceding <c>\</c> character. For the
element, leading space characters, but not embedded or trailing
space characters, are written with a preceding <c>\</c>
character. The key and element characters <c>#</c>,
<c>!</c>, <c>=</c>, and <c>:</c> are written
with a preceding backslash to ensure that they are properly loaded.
<para/>
After the entries have been written, the output stream is flushed.
The output stream remains open after this method returns.
<para/>
An attempt will be tried (but not guaranteed) to be thread-safe.
If the <see cref="T:System.Collections.Generic.IDictionary`2"/> implements <see cref="T:System.Collections.ICollection"/>
and its <see cref="P:System.Collections.ICollection.IsSynchronized"/> property returns <c>true</c>,
a lock will be placed on its <see cref="P:System.Collections.ICollection.SyncRoot"/> property.
If the <see cref="T:System.Collections.Generic.IDictionary`2"/> does not implement <see cref="T:System.Collections.ICollection"/>
or its <see cref="P:System.Collections.ICollection.IsSynchronized"/> property returns <c>false</c>,
a lock will be placed on the <paramref name="properties"/> object.
Either way, it is up to the implementation of the <see cref="T:System.Collections.Generic.IDictionary`2"/>
and/or its calling code to respect thread safety.
</summary>
<param name="properties">A <see cref="T:System.Collections.Generic.IDictionary`2"/> containing
key value pairs that correspond to property names and values.</param>
<param name="writer">A <see cref="T:System.IO.TextWriter"/>.</param>
<param name="comments">A description of the property list.</param>
<exception cref="T:System.IO.IOException">If writing this property list to the specified
output stream throws an <see cref="T:System.IO.IOException"/>.</exception>
<exception cref="T:System.ArgumentNullException">If <paramref name="properties"/>,
<paramref name="writer"/>, or <paramref name="comments"/> is <c>null</c>.</exception>
</member>
<member name="T:J2N.PropertyExtensions.LineReader">
<summary>
Read in a "logical line" from an Stream/TextReader, skip all comment
and blank lines and filter out those leading whitespace characters
(\u0020, \u0009 and \u000c) from the beginning of a "natural line".
Method returns the char length of the "logical line" and stores
the line in "lineBuf".
</summary>
</member>
<member name="M:J2N.PropertyExtensions.LoadConvert(System.Char[],System.Int32,System.Int32,System.Char[])">
<summary>
Converts encoded &#92;uxxxx to unicode chars
and changes special saved chars to their original forms.
</summary>
</member>
<member name="M:J2N.PropertyExtensions.SaveConvert(System.String,System.Boolean,System.Boolean)">
<summary>
Converts unicodes to encoded &#92;uxxxx and escapes
special characters with a preceding slash.
</summary>
</member>
<member name="M:J2N.PropertyExtensions.ToHex(System.Int32)">
<summary>
Convert a nibble to a hex character.
</summary>
<param name="nibble">The nibble to convert.</param>
</member>
<member name="F:J2N.PropertyExtensions.hexDigit">
<summary>A table of hex digits</summary>
</member>
<member name="T:J2N.Randomizer">
<summary>
This class provides methods that generates pseudo-random numbers of different
types, such as <see cref="T:System.Int32"/>, <see cref="T:System.Int64"/>, <see cref="T:System.Double"/>, and <see cref="T:System.Single"/>.
<para/>
Usage Note:
<para/>
This class differs from <see cref="T:System.Random"/> in the following ways:
<list type="bullet">
<item><description>It uses the same pseudo-random algorithm that is used in Java, so setting
the seed to the same value on both platforms produces identical results.</description></item>
<item><description>The random seed is provided as <see cref="T:System.Int64"/> rather than <see cref="T:System.Int32"/>.</description></item>
<item><description>The random seed can be set again after the instance is created using <see cref="P:J2N.Randomizer.Seed"/>.
This sets the instance back to the same state as if it were newly created with that seed value.</description></item>
<item><description>It provides random values for <see cref="T:System.Boolean"/>, <see cref="T:System.Int32"/>,
<see cref="T:System.Int64"/>, <see cref="T:System.Double"/>, and <see cref="T:System.Single"/> as well as a
<see cref="M:J2N.Randomizer.NextGaussian"/> method.</description></item>
<item><description>Random number generation is thread-safe.</description></item>
</list>
<para/>
This class differs from <c>java.util.Random</c> in the following ways:
<list type="bullet">
<item><description>It subclasses <see cref="T:System.Random"/> (so it can be used interchangably in .NET).</description></item>
<item><description>It provides the <see cref="M:J2N.Randomizer.Next(System.Int32,System.Int32)"/> overload.</description></item>
<item><description>It doesn't use the <see cref="T:J2N.Randomizer"/> instance for thread synchronization, instead it
exposes its lock object through its <see cref="P:J2N.Randomizer.SyncRoot"/> property.</description></item>
<item><description>Its initial seed can be read (as well as set) through the <see cref="P:J2N.Randomizer.Seed"/> property.</description></item>
<item><description>The <c>nextInt()</c> methods were renamed <see cref="M:J2N.Randomizer.Next"/> and <see cref="M:J2N.Randomizer.Next(System.Int32)"/> to
override the <see cref="T:System.Random"/> methods.</description></item>
<item><description>The <c>next(int)</c> protected method was renamed <see cref="M:J2N.Randomizer.NextInt(System.Int32)"/>. Keep this in mind when subclassing.</description></item>
</list>
</summary>
</member>
<member name="F:J2N.Randomizer.seed">
<summary>
The backing field for the user. This is the value the user sets, and
is the value returned from the <see cref="P:J2N.Randomizer.Seed"/> property, however <see cref="F:J2N.Randomizer.internalSeed"/>
is the actual value used to generate random numbers.
</summary>
</member>
<member name="F:J2N.Randomizer.haveNextNextGaussian">
<summary>
The boolean value indicating if the second Gaussian number is available.
</summary>
</member>
<member name="F:J2N.Randomizer.internalSeed">
<summary>
It is associated with the internal state of this generator.
</summary>
</member>
<member name="F:J2N.Randomizer.nextNextGaussian">
<summary>
The second Gaussian generated number.
</summary>
</member>
<member name="M:J2N.Randomizer.#ctor">
<summary>
Construct a random generator with the current time of day in milliseconds
as the initial state.
</summary>
<seealso cref="P:J2N.Randomizer.Seed"/>
</member>
<member name="M:J2N.Randomizer.#ctor(System.Int64)">
<summary>
Construct a random generator with the given <paramref name="seed"/> as the
initial state.
</summary>
<param name="seed">The seed that will determine the initial state of this random
number generator.</param>
<seealso cref="P:J2N.Randomizer.Seed"/>
</member>
<member name="M:J2N.Randomizer.NextInt(System.Int32)">
<summary>
Returns a pseudo-random uniformly distributed <see cref="T:System.Int32"/> value of
the number of bits specified by the argument <paramref name="bits"/> as
described by Donald E. Knuth in <i>The Art of Computer Programming,
Volume 2: Seminumerical Algorithms</i>, section 3.2.1.
<para/>
NOTE: This was next() in Java.
</summary>
<param name="bits">Number of bits of the returned value.</param>
<returns>A pseudo-random generated int number.</returns>
<seealso cref="M:J2N.Randomizer.NextBytes(System.Byte[])"/>
<seealso cref="M:J2N.Randomizer.NextDouble"/>
<seealso cref="M:J2N.Randomizer.NextSingle"/>
<seealso cref="M:J2N.Randomizer.Next"/>
<seealso cref="M:J2N.Randomizer.Next(System.Int32)"/>
<seealso cref="M:J2N.Randomizer.Next(System.Int32,System.Int32)"/>
<seealso cref="M:J2N.Randomizer.NextGaussian"/>
<seealso cref="M:J2N.Randomizer.NextInt64"/>
</member>
<member name="M:J2N.Randomizer.NextBoolean">
<summary>
Returns the next pseudo-random, uniformly distributed <see cref="T:System.Boolean"/> value
generated by this generator.
</summary>
<returns>A pseudo-random, uniformly distributed <see cref="T:System.Boolean"/> value.</returns>
</member>
<member name="M:J2N.Randomizer.NextBytes(System.Byte[])">
<summary>
Modifies the <see cref="T:System.Byte"/> array by a random sequence of <see cref="T:System.Byte"/>s generated by this
random number generator.
</summary>
<param name="buffer">Array to contain the new random <see cref="T:System.Byte"/>s.</param>
<exception cref="T:System.ArgumentNullException">If <paramref name="buffer"/> is <c>null</c>.</exception>
<seealso cref="M:J2N.Randomizer.NextInt(System.Int32)"/>
</member>
<member name="M:J2N.Randomizer.NextDouble">
<summary>
Generates a normally distributed random <see cref="T:System.Double"/> number between 0.0
inclusively and 1.0 exclusively.
</summary>
<returns>A random <see cref="T:System.Double"/> in the range [0.0 - 1.0).</returns>
<seealso cref="M:J2N.Randomizer.NextSingle"/>
</member>
<member name="M:J2N.Randomizer.NextSingle">
<summary>
Generates a normally distributed random <see cref="T:System.Single"/> number between 0.0
inclusively and 1.0 exclusively.
</summary>
<returns>A random <see cref="T:System.Single"/> number between [0.0 and 1.0).</returns>
<seealso cref="M:J2N.Randomizer.NextDouble"/>
</member>
<member name="M:J2N.Randomizer.NextGaussian">
<summary>
Pseudo-randomly generates (approximately) a normally distributed
<see cref="T:System.Double"/> value with mean 0.0 and a standard deviation value
of <c>1.0</c> using the <i>polar method</i> of G. E. P. Box, M.
E. Muller, and G. Marsaglia, as described by Donald E. Knuth in <i>The
Art of Computer Programming, Volume 2: Seminumerical Algorithms</i>,
section 3.4.1, subsection C, algorithm P.
</summary>
<returns>A random <see cref="T:System.Double"/>.</returns>
<seealso cref="M:J2N.Randomizer.NextDouble"/>
</member>
<member name="M:J2N.Randomizer.Next">
<summary>
Generates a non-negative uniformly distributed 32-bit <see cref="T:System.Int32"/> value from
the random number sequence.
<para/>
NOTE: This was nextInt() in Java.
</summary>
<returns>A uniformly distributed <see cref="T:System.Int32"/> value.</returns>
<seealso cref="F:System.Int32.MaxValue"/>
<seealso cref="F:System.Int32.MinValue"/>
<seealso cref="M:J2N.Randomizer.NextInt(System.Int32)"/>
<seealso cref="M:J2N.Randomizer.NextInt64"/>;
</member>
<member name="M:J2N.Randomizer.Next(System.Int32)">
<summary>
Returns a new non-negative pseudo-random <see cref="T:System.Int32"/> value which is uniformly distributed
between 0 (inclusively) and the value of <paramref name="maxValue"/> (exclusively).
<para/>
NOTE: This was nextInt(int) in Java.
</summary>
<param name="maxValue">The exclusive upper bound of the range.</param>
<returns>A random <see cref="T:System.Int32"/>.</returns>
</member>
<member name="M:J2N.Randomizer.Next(System.Int32,System.Int32)">
<summary>
Returns a new non-negative pseudo-random <see cref="T:System.Int32"/> value which is uniformly distributed
between <paramref name="minValue"/> (inclusively) and the value of <paramref name="maxValue"/> (exclusively).
<para/>
NOTE: This was nextInt(int, int) in Java.
</summary>
<param name="minValue">The inclusive lower bound of the range.</param>
<param name="maxValue">The exclusive upper bound of the range. <paramref name="maxValue"/>
must be greater than or equal to <paramref name="minValue"/>.</param>
<returns>A random <see cref="T:System.Int32"/>.</returns>
<exception cref="T:System.ArgumentOutOfRangeException">If <paramref name="minValue"/> is greater than <paramref name="maxValue"/>.</exception>
</member>
<member name="M:J2N.Randomizer.NextInt64">
<summary>
Generates a uniformly distributed 64-bit integer value from
the random number sequence.
<para/>
NOTE: This was nextLong() in Java.
</summary>
<returns>64-bit random integer.</returns>
<seealso cref="F:System.Int64.MaxValue"/>
<seealso cref="F:System.Int64.MinValue"/>
<seealso cref="M:J2N.Randomizer.NextInt(System.Int32)"/>
<seealso cref="M:J2N.Randomizer.Next"/>
<seealso cref="M:J2N.Randomizer.Next(System.Int32)"/>
<seealso cref="M:J2N.Randomizer.Next(System.Int32,System.Int32)"/>
</member>
<member name="P:J2N.Randomizer.Seed">
<summary>
Gets or sets the seed using linear congruential formula presented in <i>The
Art of Computer Programming, Volume 2</i>, Section 3.2.1.
<para/>
Although the seed is exposed here as an instance member that doesn't change,
its value reflects the original seed that was set, not the current state of the seed
that is used for the next operation. This allows the initial seed to be read regardless
of the current state of <see cref="T:J2N.Randomizer"/>, so it can be set again to produce repeatable
results.
<para/>
Setting the <see cref="P:J2N.Randomizer.Seed"/> resets the state of <see cref="T:J2N.Randomizer"/> to the same
state as creating a new <see cref="T:J2N.Randomizer"/> instance with the same seed value passed to
its constructor.
<para/>
Note that while <see cref="T:J2N.Randomizer"/> is thread safe, getting and setting
(or using operators) on <see cref="P:J2N.Randomizer.Seed"/> are not atomic. To synchronize,
use the <see cref="P:J2N.Randomizer.SyncRoot"/> property. Example:
<code>
Random random = new Random(123);
lock (random.SyncRoot)
random.Seed++;
</code>
which is equivalent to
<code>
Random random = new Random(123);
lock (random.SyncRoot)
random.Seed = random.Seed + 1;
</code>
that is, both operations require a get, an addition, and then a set. So,
the lock is necessary to ensure the 3 operations happen atomically.
</summary>
<seealso cref="M:J2N.Randomizer.#ctor"/>
<seealso cref="M:J2N.Randomizer.#ctor(System.Int64)"/>
<seealso cref="P:J2N.Randomizer.SyncRoot"/>
</member>
<member name="P:J2N.Randomizer.SyncRoot">
<summary>
Gets an object that can be used to synchronize access to the <see cref="T:J2N.Randomizer"/>.
</summary>
<seealso cref="P:J2N.Randomizer.Seed"/>
</member>
<member name="T:J2N.Resources.Strings">
<summary>
A strongly-typed resource class, for looking up localized strings, etc.
</summary>
</member>
<member name="P:J2N.Resources.Strings.ResourceManager">
<summary>
Returns the cached ResourceManager instance used by this class.
</summary>
</member>
<member name="P:J2N.Resources.Strings.Culture">
<summary>
Overrides the current thread's CurrentUICulture property for all
resource lookups using this strongly typed resource class.
</summary>
</member>
<member name="P:J2N.Resources.Strings.Arg_ArrayLengthsDiffer">
<summary>
Looks up a localized string similar to Array lengths must be the same..
</summary>
</member>
<member name="P:J2N.Resources.Strings.Arg_ArrayPlusOffTooSmall">
<summary>
Looks up a localized string similar to Destination array is not long enough to copy all the items in the collection. Check array index and length..
</summary>
</member>
<member name="P:J2N.Resources.Strings.Arg_BitArrayTypeUnsupported">
<summary>
Looks up a localized string similar to Only supported array types for CopyTo on BitArrays are Boolean[], Int32[] and Byte[]..
</summary>
</member>
<member name="P:J2N.Resources.Strings.Arg_BogusIComparer">
<summary>
Looks up a localized string similar to Unable to sort because the IComparer.Compare() method returns inconsistent results. Either a value does not compare equal to itself, or one value repeatedly compared to another value yields different results. IComparer: &apos;{0}&apos;..
</summary>
</member>
<member name="P:J2N.Resources.Strings.Arg_ExponentRequiredIfTypeSpecifierUsed">
<summary>
Looks up a localized string similar to With the AllowHexSpecifier and AllowTypeSpecifier bits set in the enum bit field, the parser is unable to distinguish between a type specifier d, D, f, or F and a hexadecimal digit. Therefore, AllowExponent is also required to delineate between hexadecimal digits and type specifier and an exponent must be supplied if type specifier d, D, f, or F is used..
</summary>
</member>
<member name="P:J2N.Resources.Strings.Arg_HSCapacityOverflow">
<summary>
Looks up a localized string similar to HashSet capacity is too big..
</summary>
</member>
<member name="P:J2N.Resources.Strings.Arg_HTCapacityOverflow">
<summary>
Looks up a localized string similar to Hashtable&apos;s capacity overflowed and went negative. Check load factor, capacity and the current size of the table..
</summary>
</member>
<member name="P:J2N.Resources.Strings.Arg_InsufficientSpace">
<summary>
Looks up a localized string similar to Insufficient space in the target location to copy the information..
</summary>
</member>
<member name="P:J2N.Resources.Strings.Arg_InvalidANSIString">
<summary>
Looks up a localized string similar to The ANSI string passed in could not be converted from the default ANSI code page to Unicode..
</summary>
</member>
<member name="P:J2N.Resources.Strings.Arg_InvalidHexFloatStyle">
<summary>
Looks up a localized string similar to With the AllowHexSpecifier bit set in the enum bit field, the only other valid bits that can be combined into the enum value must be a subset of those in HexFloat or AllowTypeSpecifier. The bit(s) &apos;{0}&apos; were also specified, which are not allowed..
</summary>
</member>
<member name="P:J2N.Resources.Strings.Arg_InvalidHexStyle">
<summary>
Looks up a localized string similar to With the AllowHexSpecifier bit set in the enum bit field, the only other valid bits that can be combined into the enum value must be a subset of those in HexNumber. The bit(s) &apos;{0}&apos; were also specified, which are not allowed..
</summary>
</member>
<member name="P:J2N.Resources.Strings.Arg_KeyNotFoundWithKey">
<summary>
Looks up a localized string similar to The given key &apos;{0}&apos; was not present in the dictionary..
</summary>
</member>
<member name="P:J2N.Resources.Strings.Arg_LongerThanSrcString">
<summary>
Looks up a localized string similar to Source string was not long enough. Check sourceIndex and count..
</summary>
</member>
<member name="P:J2N.Resources.Strings.Arg_MustBeByte">
<summary>
Looks up a localized string similar to Object must be of type Byte..
</summary>
</member>
<member name="P:J2N.Resources.Strings.Arg_MustBeDouble">
<summary>
Looks up a localized string similar to Object must be of type Double..
</summary>
</member>
<member name="P:J2N.Resources.Strings.Arg_MustBeInt16">
<summary>
Looks up a localized string similar to Object must be of type Int16..
</summary>
</member>
<member name="P:J2N.Resources.Strings.Arg_MustBeInt32">
<summary>
Looks up a localized string similar to Object must be of type Int32..
</summary>
</member>
<member name="P:J2N.Resources.Strings.Arg_MustBeInt64">
<summary>
Looks up a localized string similar to Object must be of type Int16..
</summary>
</member>
<member name="P:J2N.Resources.Strings.Arg_MustBeSByte">
<summary>
Looks up a localized string similar to Object must be of type SByte..
</summary>
</member>
<member name="P:J2N.Resources.Strings.Arg_MustBeSingle">
<summary>
Looks up a localized string similar to Object must be of type Single..
</summary>
</member>
<member name="P:J2N.Resources.Strings.Arg_Need1DArray">
<summary>
Looks up a localized string similar to Array was not a one-dimensional array..
</summary>
</member>
<member name="P:J2N.Resources.Strings.Arg_NonZeroLowerBound">
<summary>
Looks up a localized string similar to The lower bound of target array must be zero..
</summary>
</member>
<member name="P:J2N.Resources.Strings.Arg_RankMultiDimNotSupported">
<summary>
Looks up a localized string similar to Only single dimensional arrays are supported for the requested action..
</summary>
</member>
<member name="P:J2N.Resources.Strings.Arg_TypeSpecifierNotAllowedIfCurrencyUsed">
<summary>
Looks up a localized string similar to The AllowCurrencySymbol bit and AllowTypeSpecifier bit may not be combined..
</summary>
</member>
<member name="P:J2N.Resources.Strings.Arg_WrongType">
<summary>
Looks up a localized string similar to The value &apos;{0}&apos; is not of type &apos;{1}&apos; and cannot be used in this generic collection..
</summary>
</member>
<member name="P:J2N.Resources.Strings.Argument_AddingDuplicate">
<summary>
Looks up a localized string similar to An item with the same key has already been added. Key: {0}.
</summary>
</member>
<member name="P:J2N.Resources.Strings.Argument_ArrayTooLarge">
<summary>
Looks up a localized string similar to The input array length must not exceed Int32.MaxValue / {0}. Otherwise BitArray.Length would exceed Int32.MaxValue..
</summary>
</member>
<member name="P:J2N.Resources.Strings.Argument_BadFormatSpecifier">
<summary>
Looks up a localized string similar to Format specifier was invalid..
</summary>
</member>
<member name="P:J2N.Resources.Strings.Argument_CollectionMustNotBeThis">
<summary>
Looks up a localized string similar to collection must not be the same instance as this..
</summary>
</member>
<member name="P:J2N.Resources.Strings.Argument_DestinationTooShort">
<summary>
Looks up a localized string similar to Destination is too short..
</summary>
</member>
<member name="P:J2N.Resources.Strings.Argument_InvalidArgumentForComparison">
<summary>
Looks up a localized string similar to Type of argument is not compatible with the generic comparer..
</summary>
</member>
<member name="P:J2N.Resources.Strings.Argument_InvalidArrayType">
<summary>
Looks up a localized string similar to Target array type is not compatible with the type of items in the collection..
</summary>
</member>
<member name="P:J2N.Resources.Strings.Argument_InvalidCodePoint">
<summary>
Looks up a localized string similar to &apos;{0}&apos; is not a valid Unicode code point..
</summary>
</member>
<member name="P:J2N.Resources.Strings.Argument_InvalidNumberStyle">
<summary>
Looks up a localized string similar to An undefined NumberStyle value is being used: {0}..
</summary>
</member>
<member name="P:J2N.Resources.Strings.Argument_InvalidOffLen">
<summary>
Looks up a localized string similar to Offset and length were out of bounds for the array or count is greater than the number of elements from index to the end of the source collection..
</summary>
</member>
<member name="P:J2N.Resources.Strings.Argument_MinMaxValue">
<summary>
Looks up a localized string similar to &apos;{0}&apos; cannot be greater than {1}..
</summary>
</member>
<member name="P:J2N.Resources.Strings.Argument_MustBePrimitiveType">
<summary>
Looks up a localized string similar to &apos;{0}&apos; is not a primitive type..
</summary>
</member>
<member name="P:J2N.Resources.Strings.Argument_MustNotBeThis">
<summary>
Looks up a localized string similar to &apos;{0}&apos; must not be the same instance as this..
</summary>
</member>
<member name="P:J2N.Resources.Strings.Argument_TypeOfKeyIncorrect">
<summary>
Looks up a localized string similar to The key was of an incorrect type for this dictionary..
</summary>
</member>
<member name="P:J2N.Resources.Strings.Argument_TypeOfValueIncorrect">
<summary>
Looks up a localized string similar to The value was of an incorrect type for this dictionary..
</summary>
</member>
<member name="P:J2N.Resources.Strings.ArgumentNull_CollectionDoesntSupportNull">
<summary>
Looks up a localized string similar to The collection does not support null values..
</summary>
</member>
<member name="P:J2N.Resources.Strings.ArgumentOutOfRange_BiggerThanCollection">
<summary>
Looks up a localized string similar to Must be less than or equal to the size of the collection..
</summary>
</member>
<member name="P:J2N.Resources.Strings.ArgumentOutOfRange_Count">
<summary>
Looks up a localized string similar to Count must be positive and count must refer to a location within the string/array/collection..
</summary>
</member>
<member name="P:J2N.Resources.Strings.ArgumentOutOfRange_Generic_MustBeNonNegative">
<summary>
Looks up a localized string similar to {0} (&apos;{1}&apos;) must be a non-negative value..
</summary>
</member>
<member name="P:J2N.Resources.Strings.ArgumentOutOfRange_Index">
<summary>
Looks up a localized string similar to Index was out of range. Must be non-negative and less than the size of the string/array/collection..
</summary>
</member>
<member name="P:J2N.Resources.Strings.ArgumentOutOfRange_IndexBefore">
<summary>
Looks up a localized string similar to Index was out of range. Must be at least 1 and less than or equal to the size of the string/array/collection..
</summary>
</member>
<member name="P:J2N.Resources.Strings.ArgumentOutOfRange_IndexLength">
<summary>
Looks up a localized string similar to Index and length must refer to a location within the string..
</summary>
</member>
<member name="P:J2N.Resources.Strings.ArgumentOutOfRange_IndexMustBeLessOrEqual">
<summary>
Looks up a localized string similar to Index was out of range. Must be non-negative and less than or equal to the size of the collection..
</summary>
</member>
<member name="P:J2N.Resources.Strings.ArgumentOutOfRange_ListInsert">
<summary>
Looks up a localized string similar to Index must be within the bounds of the List..
</summary>
</member>
<member name="P:J2N.Resources.Strings.ArgumentOutOfRange_NeedCapacityAtLeast1">
<summary>
Looks up a localized string similar to capacity must be at least 1..
</summary>
</member>
<member name="P:J2N.Resources.Strings.ArgumentOutOfRange_NeedLimitAtLeast1">
<summary>
Looks up a localized string similar to limit must be at least 1..
</summary>
</member>
<member name="P:J2N.Resources.Strings.ArgumentOutOfRange_NeedNonNegNum">
<summary>
Looks up a localized string similar to Non-negative number required..
</summary>
</member>
<member name="P:J2N.Resources.Strings.ArgumentOutOfRange_Radix">
<summary>
Looks up a localized string similar to Radix must be greater than or equal to Character.MinRadix and less than or equal to Character.MaxRadix..
</summary>
</member>
<member name="P:J2N.Resources.Strings.ArgumentOutOfRange_SmallCapacity">
<summary>
Looks up a localized string similar to capacity was less than the current size..
</summary>
</member>
<member name="P:J2N.Resources.Strings.ConcurrentCollection_SyncRoot_NotSupported">
<summary>
Looks up a localized string similar to The SyncRoot property may not be used for the synchronization of concurrent collections..
</summary>
</member>
<member name="P:J2N.Resources.Strings.ExternalLinkedListNode">
<summary>
Looks up a localized string similar to The LinkedList node does not belong to current LinkedList..
</summary>
</member>
<member name="P:J2N.Resources.Strings.Format_EmptyInputString">
<summary>
Looks up a localized string similar to Input string was either empty or contained only whitespace..
</summary>
</member>
<member name="P:J2N.Resources.Strings.Format_ExtraJunkAtEnd">
<summary>
Looks up a localized string similar to Additional non-parsable characters are at the end of the string..
</summary>
</member>
<member name="P:J2N.Resources.Strings.Format_InvalidString">
<summary>
Looks up a localized string similar to Input string was not in a correct format. Value: &apos;{0}&apos;..
</summary>
</member>
<member name="P:J2N.Resources.Strings.Format_InvalidUTFSpec2ndByte">
<summary>
Looks up a localized string similar to Second byte at {0} does not match UTF8 Specification..
</summary>
</member>
<member name="P:J2N.Resources.Strings.Format_InvalidUTFSpec2ndOr3rdByte">
<summary>
Looks up a localized string similar to Second or third byte at {0} does not match UTF8 Specification..
</summary>
</member>
<member name="P:J2N.Resources.Strings.Format_InvalidUTFSpec3rdByte">
<summary>
Looks up a localized string similar to Third byte at {0} does not match UTF8 Specification..
</summary>
</member>
<member name="P:J2N.Resources.Strings.Format_InvalidUTFSpecInput">
<summary>
Looks up a localized string similar to Input at {0} does not match UTF8 Specification..
</summary>
</member>
<member name="P:J2N.Resources.Strings.Format_InvalidUTFTooLong">
<summary>
Looks up a localized string similar to UTF8 data format too long..
</summary>
</member>
<member name="P:J2N.Resources.Strings.Format_NoParsibleDigits">
<summary>
Looks up a localized string similar to Could not find any recognizable digits..
</summary>
</member>
<member name="P:J2N.Resources.Strings.InvalidCast_DBNull">
<summary>
Looks up a localized string similar to Object cannot be cast to DBNull..
</summary>
</member>
<member name="P:J2N.Resources.Strings.InvalidCast_Empty">
<summary>
Looks up a localized string similar to Object cannot be cast to Empty..
</summary>
</member>
<member name="P:J2N.Resources.Strings.InvalidCast_FromTo">
<summary>
Looks up a localized string similar to Invalid cast from &apos;{0}&apos; to &apos;{1}&apos;..
</summary>
</member>
<member name="P:J2N.Resources.Strings.InvalidOperation_CannotEditNullObject">
<summary>
Looks up a localized string similar to Cannot edit a null {0}..
</summary>
</member>
<member name="P:J2N.Resources.Strings.InvalidOperation_CannotIndexNullObject">
<summary>
Looks up a localized string similar to Cannot index a null {0}..
</summary>
</member>
<member name="P:J2N.Resources.Strings.InvalidOperation_CollectionCorrupted">
<summary>
Looks up a localized string similar to Operations that change non-concurrent collections must have exclusive access. A concurrent update was performed on this collection and corrupted its state. The collection&apos;s state is no longer correct..
</summary>
</member>
<member name="P:J2N.Resources.Strings.InvalidOperation_ComparerRequired">
<summary>
Looks up a localized string similar to Either an IComparer&lt;T&gt; must be supplied via a constructor, or the generic closing type must implement IComparable&lt;T&gt;..
</summary>
</member>
<member name="P:J2N.Resources.Strings.InvalidOperation_ConcurrentOperationsNotSupported">
<summary>
Looks up a localized string similar to Operations that change non-concurrent collections must have exclusive access. A concurrent update was performed on this collection and corrupted its state. The collection&apos;s state is no longer correct..
</summary>
</member>
<member name="P:J2N.Resources.Strings.InvalidOperation_EmptyQueue">
<summary>
Looks up a localized string similar to Queue empty..
</summary>
</member>
<member name="P:J2N.Resources.Strings.InvalidOperation_EmptyStack">
<summary>
Looks up a localized string similar to Stack empty..
</summary>
</member>
<member name="P:J2N.Resources.Strings.InvalidOperation_EnumEnded">
<summary>
Looks up a localized string similar to Enumeration already finished..
</summary>
</member>
<member name="P:J2N.Resources.Strings.InvalidOperation_EnumFailedVersion">
<summary>
Looks up a localized string similar to Collection was modified after the enumerator was instantiated..
</summary>
</member>
<member name="P:J2N.Resources.Strings.InvalidOperation_EnumNotStarted">
<summary>
Looks up a localized string similar to Enumeration has not started. Call MoveNext..
</summary>
</member>
<member name="P:J2N.Resources.Strings.InvalidOperation_EnumOpCantHappen">
<summary>
Looks up a localized string similar to Enumeration has either not started or has already finished..
</summary>
</member>
<member name="P:J2N.Resources.Strings.InvalidOperation_IComparerFailed">
<summary>
Looks up a localized string similar to Failed to compare two elements in the array..
</summary>
</member>
<member name="P:J2N.Resources.Strings.InvalidOperation_ViewFailedVersion">
<summary>
Looks up a localized string similar to Ancestral collection was modified after the view was instantiated..
</summary>
</member>
<member name="P:J2N.Resources.Strings.LinkedListEmpty">
<summary>
Looks up a localized string similar to The LinkedList is empty..
</summary>
</member>
<member name="P:J2N.Resources.Strings.LinkedListNodeIsAttached">
<summary>
Looks up a localized string similar to The LinkedList node already belongs to a LinkedList..
</summary>
</member>
<member name="P:J2N.Resources.Strings.LurchTable_CorruptedData">
<summary>
Looks up a localized string similar to The LurchTable internal datastructure appears to be corrupted..
</summary>
</member>
<member name="P:J2N.Resources.Strings.LurchTable_NeedLimitIntMaxValue">
<summary>
Looks up a localized string similar to For an unordered LurchTable (LurchTableOrder.None), the limit must be set to int.MaxValue..
</summary>
</member>
<member name="P:J2N.Resources.Strings.NotSupported_KeyCollectionSet">
<summary>
Looks up a localized string similar to Mutating a key collection derived from a dictionary is not allowed..
</summary>
</member>
<member name="P:J2N.Resources.Strings.NotSupported_ReadOnlyCollection">
<summary>
Looks up a localized string similar to Collection is read-only..
</summary>
</member>
<member name="P:J2N.Resources.Strings.NotSupported_SortedListNestedWrite">
<summary>
Looks up a localized string similar to This operation is not supported on SortedList nested types because they require modifying the original SortedList..
</summary>
</member>
<member name="P:J2N.Resources.Strings.NotSupported_ValueCollectionSet">
<summary>
Looks up a localized string similar to Mutating a value collection derived from a dictionary is not allowed..
</summary>
</member>
<member name="P:J2N.Resources.Strings.Overflow_Byte">
<summary>
Looks up a localized string similar to Value was either too large or too small for an unsigned byte..
</summary>
</member>
<member name="P:J2N.Resources.Strings.Overflow_Decimal">
<summary>
Looks up a localized string similar to Value was either too large or too small for a Decimal..
</summary>
</member>
<member name="P:J2N.Resources.Strings.Overflow_Int16">
<summary>
Looks up a localized string similar to Value was either too large or too small for an Int16..
</summary>
</member>
<member name="P:J2N.Resources.Strings.Overflow_Int32">
<summary>
Looks up a localized string similar to Value was either too large or too small for an Int32..
</summary>
</member>
<member name="P:J2N.Resources.Strings.Overflow_Int64">
<summary>
Looks up a localized string similar to Value was either too large or too small for an Int64..
</summary>
</member>
<member name="P:J2N.Resources.Strings.Overflow_NegativeUnsigned">
<summary>
Looks up a localized string similar to The string was being parsed as an unsigned number and could not have a negative sign..
</summary>
</member>
<member name="P:J2N.Resources.Strings.Overflow_SByte">
<summary>
Looks up a localized string similar to Value was either too large or too small for a signed byte..
</summary>
</member>
<member name="P:J2N.Resources.Strings.Overflow_UInt16">
<summary>
Looks up a localized string similar to Value was either too large or too small for a UInt16..
</summary>
</member>
<member name="P:J2N.Resources.Strings.Overflow_UInt32">
<summary>
Looks up a localized string similar to Value was either too large or too small for a UInt32..
</summary>
</member>
<member name="P:J2N.Resources.Strings.Overflow_UInt64">
<summary>
Looks up a localized string similar to Value was either too large or too small for a UInt64..
</summary>
</member>
<member name="P:J2N.Resources.Strings.Serialization_InvalidOnDeser">
<summary>
Looks up a localized string similar to OnDeserialization method was called while the object was not being deserialized..
</summary>
</member>
<member name="P:J2N.Resources.Strings.Serialization_MismatchedCount">
<summary>
Looks up a localized string similar to The serialized Count information doesn&apos;t match the number of items..
</summary>
</member>
<member name="P:J2N.Resources.Strings.Serialization_MissingKeys">
<summary>
Looks up a localized string similar to The keys for this dictionary are missing..
</summary>
</member>
<member name="P:J2N.Resources.Strings.Serialization_MissingValues">
<summary>
Looks up a localized string similar to The values for this dictionary are missing..
</summary>
</member>
<member name="P:J2N.Resources.Strings.SortedSet_LowerValueGreaterThanUpperValue">
<summary>
Looks up a localized string similar to Must be less than or equal to upperValue..
</summary>
</member>
<member name="T:J2N.Runtime.CompilerServices.IdentityEqualityComparer`1">
<summary>
An equality comparer that compares objects for reference equality.
<para/>
The comparison is made by calling <see cref="M:System.Object.ReferenceEquals(System.Object,System.Object)"/>
rather than by calling the <see cref="M:System.Object.Equals(System.Object)"/> method.
</summary>
<typeparam name="T">The type of objects to compare. Must be a reference type.</typeparam>
</member>
<member name="P:J2N.Runtime.CompilerServices.IdentityEqualityComparer`1.Default">
<summary>
Gets the default instance of the
<see cref="T:J2N.Runtime.CompilerServices.IdentityEqualityComparer`1"/> class.
</summary>
<value>A <see cref="T:J2N.Runtime.CompilerServices.IdentityEqualityComparer`1"/> instance.</value>
</member>
<member name="M:J2N.Runtime.CompilerServices.IdentityEqualityComparer`1.Equals(`0,`0)">
<inheritdoc />
</member>
<member name="M:J2N.Runtime.CompilerServices.IdentityEqualityComparer`1.GetHashCode(`0)">
<inheritdoc />
</member>
<member name="M:J2N.Runtime.CompilerServices.IdentityEqualityComparer`1.Equals(System.Object,System.Object)">
<inheritdoc />
</member>
<member name="M:J2N.Runtime.CompilerServices.IdentityEqualityComparer`1.GetHashCode(System.Object)">
<inheritdoc />
</member>
<member name="M:J2N.Runtime.CompilerServices.RuntimeHelper.IsReferenceOrContainsReferences``1">
<summary>
Returns a value that indicates whether the specified type is a reference type or
a value type that contains references.
</summary>
<typeparam name="T">The type.</typeparam>
<returns><c>true</c> if the given type is a reference type or a value type that
contains references; otherwise, <c>false</c>.</returns>
</member>
<member name="T:J2N.Runtime.InteropServices.CollectionMarshal">
<summary>
An unsafe class that provides a set of methods to access the underlying data representations of collections.
</summary>
</member>
<member name="M:J2N.Runtime.InteropServices.CollectionMarshal.AsSpan``1(J2N.Collections.Generic.List{``0})">
<summary>
Get a <see cref="T:System.Span`1"/> view over a <see cref="T:J2N.Collections.Generic.List`1"/>'s data.
Items should not be added or removed from the <see cref="T:J2N.Collections.Generic.List`1"/> while the <see cref="T:System.Span`1"/> is in use.
</summary>
<param name="list">The list to get the data view over.</param>
<typeparam name="T">The type of the elements in the list.</typeparam>
</member>
<member name="M:J2N.Runtime.InteropServices.CollectionMarshal.GetValueRefOrNullRef``2(J2N.Collections.Generic.Dictionary{``0,``1},``0)">
<summary>
Gets either a ref to a <typeparamref name="TValue"/> in the <see cref="T:J2N.Collections.Generic.Dictionary`2"/> or a ref null if it does not exist in the <paramref name="dictionary"/>.
</summary>
<param name="dictionary">The dictionary to get the ref to <typeparamref name="TValue"/> from.</param>
<param name="key">The key used for lookup.</param>
<typeparam name="TKey">The type of the keys in the dictionary.</typeparam>
<typeparam name="TValue">The type of the values in the dictionary.</typeparam>
<remarks>
Items should not be added or removed from the <see cref="T:J2N.Collections.Generic.Dictionary`2"/> while the ref <typeparamref name="TValue"/> is in use.
The ref null can be detected using System.Runtime.CompilerServices.Unsafe.IsNullRef
</remarks>
</member>
<member name="M:J2N.Runtime.InteropServices.CollectionMarshal.GetValueRefOrAddDefault``2(J2N.Collections.Generic.Dictionary{``0,``1},``0,System.Boolean@)">
<summary>
Gets a ref to a <typeparamref name="TValue"/> in the <see cref="T:J2N.Collections.Generic.Dictionary`2"/>, adding a new entry with a default value if it does not exist in the <paramref name="dictionary"/>.
</summary>
<param name="dictionary">The dictionary to get the ref to <typeparamref name="TValue"/> from.</param>
<param name="key">The key used for lookup.</param>
<param name="exists">Whether or not a new entry for the given key was added to the dictionary.</param>
<typeparam name="TKey">The type of the keys in the dictionary.</typeparam>
<typeparam name="TValue">The type of the values in the dictionary.</typeparam>
<remarks>Items should not be added to or removed from the <see cref="T:J2N.Collections.Generic.Dictionary`2"/> while the ref <typeparamref name="TValue"/> is in use.</remarks>
</member>
<member name="M:J2N.Runtime.InteropServices.CollectionMarshal.SetCount``1(J2N.Collections.Generic.List{``0},System.Int32)">
<summary>
Sets the count of the <see cref="T:J2N.Collections.Generic.List`1"/> to the specified value.
</summary>
<param name="list">The list to set the count of.</param>
<param name="count">The value to set the list's count to.</param>
<typeparam name="T">The type of the elements in the list.</typeparam>
<exception cref="T:System.ArgumentNullException">
<paramref name="list"/> is <see langword="null"/>.
</exception>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="count"/> is negative.
</exception>
<remarks>
When increasing the count, uninitialized data is being exposed.
</remarks>
</member>
<member name="T:J2N.SingleExtensions">
<summary>
Extensions to the <see cref="T:System.Single"/> structure.
</summary>
</member>
<member name="M:J2N.SingleExtensions.IsFinite(System.Single)">
<summary>
Determines whether the specified value is finite (zero, subnormal, or normal).
</summary>
<param name="f">A single-precision floating-point number.</param>
<returns><c>true</c> if the value is finite (zero, subnormal or normal); otherwise <c>false</c>.</returns>
</member>
<member name="M:J2N.SingleExtensions.IsInfinity(System.Single)">
<summary>
Returns a value indicating whether the specified value evaluates to negative or positive infinity.
</summary>
<param name="f">A single-precision floating-point number.</param>
<returns><c>true</c> if the value evaluates to <see cref="F:System.Single.PositiveInfinity"/> or
<see cref="F:System.Single.NegativeInfinity"/>; otherwise, <c>false</c>.</returns>
</member>
<member name="M:J2N.SingleExtensions.IsNaN(System.Single)">
<summary>
Returns a value that indicates whether the specified value is not a number
(<see cref="F:System.Single.NaN"/>).
</summary>
<param name="f">A single-precision floating-point number.</param>
<returns><c>true</c> if the value evaluates to <see cref="F:System.Single.NaN"/>;
otherwise, <c>false</c>.</returns>
</member>
<member name="M:J2N.SingleExtensions.IsNegative(System.Single)">
<summary>
Determines whether the specified value is negative.
</summary>
<param name="f">A single-precision floating-point number.</param>
<returns><c>true</c> if the value is negative; otherwise, <c>false</c>.</returns>
</member>
<member name="M:J2N.SingleExtensions.IsNegativeInfinity(System.Single)">
<summary>
Returns a value indicating whether the specified number evaluates to negative
infinity.
</summary>
<param name="f">A single-precision floating-point number.</param>
<returns><c>true</c> if <paramref name="f"/> evaluates to <see cref="F:System.Single.NegativeInfinity"/>;
otherwise, <c>false</c>.</returns>
</member>
<member name="M:J2N.SingleExtensions.IsNegativeZero(System.Single)">
<summary>
Gets a value indicating whether the current <see cref="T:System.Single"/> has the value negative zero (<c>-0.0f</c>).
While negative zero is supported by the <see cref="T:System.Single"/> datatype in .NET, comparisons and string formatting ignore
this feature. This method allows a simple way to check whether the current <see cref="T:System.Single"/> has the value negative zero.
</summary>
<param name="f">A single-precision floating-point number.</param>
<returns><c>true</c> if the current value represents negative zero; otherwise, <c>false</c>.</returns>
</member>
<member name="M:J2N.SingleExtensions.IsNormal(System.Single)">
<summary>
Determines whether the specified value is normal.
</summary>
<param name="f">A single-precision floating-point number.</param>
<returns><c>true</c> if the value is normal; <c>false</c> otherwise.</returns>
</member>
<member name="M:J2N.SingleExtensions.IsPositiveInfinity(System.Single)">
<summary>
Returns a value indicating whether the specified number evaluates to positive infinity.
</summary>
<param name="f">A single-precision floating-point number.</param>
<returns><c>true</c> if <paramref name="f"/> evaluates to <see cref="F:System.Single.PositiveInfinity"/>; otherwise, <c>false</c>.</returns>
</member>
<member name="M:J2N.SingleExtensions.IsSubnormal(System.Single)">
<summary>
Determines whether the specified value is subnormal.
</summary>
<param name="f">A single-precision floating-point number.</param>
<returns><c>true</c> if the value is subnormal; <c>false</c> otherwise.</returns>
</member>
<member name="M:J2N.SingleExtensions.ToHexString(System.Single,System.IFormatProvider)">
<summary>
Returns a hexadecimal string representation of the <see cref="T:System.Single"/> argument. All characters mentioned below are ASCII characters.
<list type="bullet">
<item><description>If the argument is <see cref="F:System.Single.NaN"/>, the result is <see cref="P:System.Globalization.NumberFormatInfo.NumberDecimalSeparator"/>
of the <paramref name="provider"/>. </description></item>
<item><description>Otherwise, the result is a string that represents the sign and magnitude of the argument. If the sign
is negative, it is prefixed by <see cref="P:System.Globalization.NumberFormatInfo.NegativeSign"/> of the <paramref name="provider"/>; if the
sign is positive, no sign character appears in the result. As for the magnitude <i>m</i>: </description>
<list type="bullet">
<item><description>If <i>m</i> is positive infinity, it is represented by <see cref="P:System.Globalization.NumberFormatInfo.PositiveInfinitySymbol"/> of the <paramref name="provider"/>;
if <i>m</i> is negative infinity, it is represented by <see cref="P:System.Globalization.NumberFormatInfo.NegativeInfinitySymbol"/> of the <paramref name="provider"/>.</description></item>
<item><description>If <i>m</i> is zero, it is represented by the string "0x0.0p0"; thus, negative zero produces the result
"-0x0.0p0" and positive zero produces the result "0x0.0p0". The negative symbol is represented by <see cref="P:System.Globalization.NumberFormatInfo.NegativeSign"/>
and decimal separator character is represented by <see cref="P:System.Globalization.NumberFormatInfo.NumberDecimalSeparator"/>.</description></item>
<item><description>If <i>m</i> is a <see cref="T:System.Single"/> value with a normalized representation, substrings are used to represent the
significand and exponent fields. The significand is represented by the characters "0x1" followed by <see cref="P:System.Globalization.NumberFormatInfo.NumberDecimalSeparator"/>,
followed by a lowercase hexadecimal representation of the rest of the significand as a fraction. Trailing zeros in the hexadecimal representation
are removed unless all the digits are zero, in which case a single zero is used. Next, the exponent is represented by "p"
followed by a decimal string of the unbiased exponent as if produced by a call to <see cref="M:System.Int32.ToString"/> with invariant culture on the exponent value. </description></item>
<item><description>If <i>m</i> is a <see cref="T:System.Single"/> value with a subnormal representation, the significand is represented by the characters "0x0"
followed by <see cref="P:System.Globalization.NumberFormatInfo.NumberDecimalSeparator"/>, followed by a hexadecimal representation of the rest of the significand as a fraction.
Trailing zeros in the hexadecimal representation are removed. Next, the exponent is represented by "p-126". Note that there must be at least one nonzero
digit in a subnormal significand. </description></item>
</list>
</item>
</list>
<para/>
The value of <see cref="P:System.Globalization.NumberFormatInfo.NumberNegativePattern"/> of <paramref name="provider"/> is ignored.
<para/>
<h3>Examples (using <see cref="P:System.Globalization.NumberFormatInfo.InvariantInfo"/>)</h3>
<list type="table">
<listheader>
<term>Floating-point Value</term>
<term>Hexadecimal String</term>
</listheader>
<item>
<term>1.0</term>
<term>0x1.0p0</term>
</item>
<item>
<term>-1.0</term>
<term>-0x1.0p0</term>
</item>
<item>
<term>2.0</term>
<term>0x1.0p1</term>
</item>
<item>
<term>3.0</term>
<term>0x1.8p1</term>
</item>
<item>
<term>0.5</term>
<term>0x1.0p-1</term>
</item>
<item>
<term>0.25</term>
<term>0x1.0p-2</term>
</item>
<item>
<term><see cref="F:System.Single.MaxValue"/></term>
<term>0x1.fffffep127</term>
</item>
<item>
<term>Minimum Normal Value</term>
<term>0x1.0p-126</term>
</item>
<item>
<term>Maximum Subnormal Value</term>
<term>0x0.fffffep-126</term>
</item>
<item>
<term><see cref="F:System.Single.Epsilon"/></term>
<term>0x0.000002p-126</term>
</item>
</list>
</summary>
<param name="value">The <see cref="T:System.Single"/> to be converted.</param>
<param name="provider">An object that supplies culture-specific formatting information.</param>
<returns>A hex string representing <paramref name="value"/>.</returns>
</member>
<member name="T:J2N.Text.AppendableExtensions">
<summary>
Extensions to the <see cref="T:J2N.Text.IAppendable"/> interface.
</summary>
</member>
<member name="M:J2N.Text.AppendableExtensions.Append``1(``0,System.ReadOnlySpan{System.Char})">
<summary>
Appends the string representation of a specified read-only character span to this <paramref name="appendable"/>.
</summary>
<param name="appendable">This <see cref="T:J2N.Text.IAppendable"/>.</param>
<param name="value">The read-only character span to append.</param>
<returns>A reference to this <see cref="T:J2N.Text.IAppendable"/> instance after the append operation is completed.</returns>
<remarks>
If the <paramref name="appendable"/> supports <see cref="T:J2N.Text.ISpanAppendable"/>, the optimized
<see cref="M:J2N.Text.ISpanAppendable.Append(System.ReadOnlySpan{System.Char})"/> method is called on the <paramref name="appendable"/> implementation.
If not, a <see cref="T:char[]"/> is obtained from the shared array pool and used to provide the chars via the
<see cref="M:J2N.Text.IAppendable.Append(System.Char[],System.Int32,System.Int32)"/> method. For larger strings, the data is appended in chunks
up to 512 characters long.
</remarks>
<exception cref="T:System.ArgumentNullException"><paramref name="appendable"/> is <c>null</c>.</exception>
</member>
<member name="T:J2N.Text.CharArrayCharSequence">
<summary>
A wrapper class that represents a <see cref="T:char[]"/> and implements <see cref="T:J2N.Text.ICharSequence"/>.
</summary>
</member>
<member name="M:J2N.Text.CharArrayCharSequence.#ctor(System.Char[])">
<summary>
Initializes a new instance of <see cref="T:J2N.Text.CharArrayCharSequence"/> with the provided <paramref name="value"/>.
</summary>
<param name="value">A <see cref="T:char[]"/> to wrap in a <see cref="T:J2N.Text.ICharSequence"/>. The value may be <c>null</c>.</param>
</member>
<member name="P:J2N.Text.CharArrayCharSequence.Value">
<summary>
Gets the current <see cref="T:char[]"/> value.
</summary>
</member>
<member name="P:J2N.Text.CharArrayCharSequence.HasValue">
<summary>
Gets a value indicating whether the current <see cref="T:J2N.Text.CharArrayCharSequence"/>
has a valid <see cref="T:char[]"/> value.
</summary>
</member>
<member name="P:J2N.Text.CharArrayCharSequence.Item(System.Int32)">
<summary>
Gets the character at the specified index, with the first character
having index zero.
</summary>
<param name="index">The index of the character to return.</param>
<returns>The requested character.</returns>
<exception cref="T:System.IndexOutOfRangeException">
If <c>index &lt; 0</c> or <c>index</c> is greater than the
length of this sequence.
</exception>
<exception cref="T:System.InvalidOperationException">
If the underlying value of this sequence is <c>null</c>.
</exception>
</member>
<member name="P:J2N.Text.CharArrayCharSequence.Length">
<summary>
Gets the number of characters in this sequence.
</summary>
</member>
<member name="M:J2N.Text.CharArrayCharSequence.Subsequence(System.Int32,System.Int32)">
<summary>
Retrieves a sub-sequence from this instance.
The sub-sequence starts at a specified character position and has a specified length.
<para/>
IMPORTANT: This method has .NET semantics, that is, the second parameter is a length,
not an exclusive end index as it would be in Java. To translate from Java to .NET,
callers must account for this by subtracting (end - start) for the <paramref name="length"/>.
</summary>
<param name="startIndex">
The start index of the sub-sequence. It is inclusive, that
is, the index of the first character that is included in the
sub-sequence.
</param>
<param name="length">The number of characters to return in the sub-sequence.</param>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="startIndex"/> plus <paramref name="length"/> indicates a position not within this instance.
<para/>
-or-
<para/>
<paramref name="startIndex"/> or <paramref name="length"/> is less than zero.
</exception>
</member>
<member name="M:J2N.Text.CharArrayCharSequence.ToString">
<summary>
Returns a string with the same characters in the same order as in this
sequence.
</summary>
<returns>A string based on this sequence.</returns>
</member>
<member name="M:J2N.Text.CharArrayCharSequence.op_Equality(J2N.Text.CharArrayCharSequence,J2N.Text.CharArrayCharSequence)">
<summary>
Compares <paramref name="csq1"/> and <paramref name="csq2"/> for equality.
Two character sequences are considered equal if they have the same characters
in the same order.
</summary>
<param name="csq1">The first sequence.</param>
<param name="csq2">The second sequence.</param>
<returns><c>true</c> if <paramref name="csq1"/> and <paramref name="csq2"/> represent to the same instance; otherwise, <c>false</c>.</returns>
</member>
<member name="M:J2N.Text.CharArrayCharSequence.op_Inequality(J2N.Text.CharArrayCharSequence,J2N.Text.CharArrayCharSequence)">
<summary>
Compares <paramref name="csq1"/> and <paramref name="csq2"/> for inequality.
Two character sequences are considered equal if they have the same characters
in the same order.
</summary>
<param name="csq1">The first sequence.</param>
<param name="csq2">The second sequence.</param>
<returns><c>true</c> if <paramref name="csq1"/> and <paramref name="csq2"/> do not represent to the same instance; otherwise, <c>false</c>.</returns>
</member>
<member name="M:J2N.Text.CharArrayCharSequence.op_Equality(J2N.Text.CharArrayCharSequence,System.Char[])">
<summary>
Compares <paramref name="csq1"/> and <paramref name="csq2"/> for equality.
Two character sequences are considered equal if they have the same characters
in the same order.
</summary>
<param name="csq1">The first sequence.</param>
<param name="csq2">The second sequence.</param>
<returns><c>true</c> if <paramref name="csq1"/> and <paramref name="csq2"/> represent to the same instance; otherwise, <c>false</c>.</returns>
</member>
<member name="M:J2N.Text.CharArrayCharSequence.op_Inequality(J2N.Text.CharArrayCharSequence,System.Char[])">
<summary>
Compares <paramref name="csq1"/> and <paramref name="csq2"/> for inequality.
Two character sequences are considered equal if they have the same characters
in the same order.
</summary>
<param name="csq1">The first sequence.</param>
<param name="csq2">The second sequence.</param>
<returns><c>true</c> if <paramref name="csq1"/> and <paramref name="csq2"/> do not represent to the same instance; otherwise, <c>false</c>.</returns>
</member>
<member name="M:J2N.Text.CharArrayCharSequence.op_Equality(System.Char[],J2N.Text.CharArrayCharSequence)">
<summary>
Compares <paramref name="csq1"/> and <paramref name="csq2"/> for equality.
Two character sequences are considered equal if they have the same characters
in the same order.
</summary>
<param name="csq1">The first sequence.</param>
<param name="csq2">The second sequence.</param>
<returns><c>true</c> if <paramref name="csq1"/> and <paramref name="csq2"/> represent to the same instance; otherwise, <c>false</c>.</returns>
</member>
<member name="M:J2N.Text.CharArrayCharSequence.op_Inequality(System.Char[],J2N.Text.CharArrayCharSequence)">
<summary>
Compares <paramref name="csq1"/> and <paramref name="csq2"/> for inequality.
Two character sequences are considered equal if they have the same characters
in the same order.
</summary>
<param name="csq1">The first sequence.</param>
<param name="csq2">The second sequence.</param>
<returns><c>true</c> if <paramref name="csq1"/> and <paramref name="csq2"/> do not represent to the same instance; otherwise, <c>false</c>.</returns>
</member>
<member name="M:J2N.Text.CharArrayCharSequence.Equals(J2N.Text.ICharSequence)">
<summary>
Determines whether this <see cref="T:J2N.Text.CharArrayCharSequence"/> is equal to <paramref name="other"/>.
</summary>
<param name="other">An <see cref="T:J2N.Text.ICharSequence"/> to compare to the current <see cref="T:J2N.Text.CharArrayCharSequence"/>.</param>
<returns><c>true</c> if <paramref name="other"/> is equal to the current <see cref="T:J2N.Text.CharArrayCharSequence"/>; otherwise, <c>false</c>.</returns>
</member>
<member name="M:J2N.Text.CharArrayCharSequence.Equals(J2N.Text.CharArrayCharSequence)">
<summary>
Determines whether this <see cref="T:J2N.Text.CharArrayCharSequence"/> is equal to <paramref name="other"/>.
</summary>
<param name="other">A <see cref="T:J2N.Text.CharArrayCharSequence"/> to compare to the current <see cref="T:J2N.Text.CharArrayCharSequence"/>.</param>
<returns><c>true</c> if <paramref name="other"/> is equal to the current <see cref="T:J2N.Text.CharArrayCharSequence"/>; otherwise, <c>false</c>.</returns>
</member>
<member name="M:J2N.Text.CharArrayCharSequence.Equals(J2N.Text.StringBuilderCharSequence)">
<summary>
Determines whether this <see cref="T:J2N.Text.CharArrayCharSequence"/> is equal to <paramref name="other"/>.
</summary>
<param name="other">A <see cref="T:J2N.Text.StringBuilderCharSequence"/> to compare to the current <see cref="T:J2N.Text.CharArrayCharSequence"/>.</param>
<returns><c>true</c> if <paramref name="other"/> is equal to the current <see cref="T:J2N.Text.CharArrayCharSequence"/>; otherwise, <c>false</c>.</returns>
</member>
<member name="M:J2N.Text.CharArrayCharSequence.Equals(J2N.Text.StringCharSequence)">
<summary>
Determines whether this <see cref="T:J2N.Text.CharArrayCharSequence"/> is equal to <paramref name="other"/>.
</summary>
<param name="other">A <see cref="T:J2N.Text.StringCharSequence"/> to compare to the current <see cref="T:J2N.Text.CharArrayCharSequence"/>.</param>
<returns><c>true</c> if <paramref name="other"/> is equal to the current <see cref="T:J2N.Text.CharArrayCharSequence"/>; otherwise, <c>false</c>.</returns>
</member>
<member name="M:J2N.Text.CharArrayCharSequence.Equals(System.String)">
<summary>
Determines whether this <see cref="T:J2N.Text.CharArrayCharSequence"/> is equal to <paramref name="other"/>.
</summary>
<param name="other">A <see cref="T:System.String"/> to compare to the current <see cref="T:J2N.Text.CharArrayCharSequence"/>.</param>
<returns><c>true</c> if <paramref name="other"/> is equal to the current <see cref="T:J2N.Text.CharArrayCharSequence"/>; otherwise, <c>false</c>.</returns>
</member>
<member name="M:J2N.Text.CharArrayCharSequence.Equals(System.Text.StringBuilder)">
<summary>
Determines whether this <see cref="T:J2N.Text.CharArrayCharSequence"/> is equal to <paramref name="other"/>.
</summary>
<param name="other">A <see cref="T:System.Text.StringBuilder"/> to compare to the current <see cref="T:J2N.Text.CharArrayCharSequence"/>.</param>
<returns><c>true</c> if <paramref name="other"/> is equal to the current <see cref="T:J2N.Text.CharArrayCharSequence"/>; otherwise, <c>false</c>.</returns>
</member>
<member name="M:J2N.Text.CharArrayCharSequence.Equals(System.Char[])">
<summary>
Determines whether this <see cref="T:J2N.Text.CharArrayCharSequence"/> is equal to <paramref name="other"/>.
</summary>
<param name="other">A <see cref="T:char[]"/> to compare to the current <see cref="T:J2N.Text.CharArrayCharSequence"/>.</param>
<returns><c>true</c> if <paramref name="other"/> is equal to the current <see cref="T:J2N.Text.CharArrayCharSequence"/>; otherwise, <c>false</c>.</returns>
</member>
<member name="M:J2N.Text.CharArrayCharSequence.Equals(System.Object)">
<summary>
Determines whether this <see cref="T:J2N.Text.CharArrayCharSequence"/> is equal to <paramref name="other"/>.
</summary>
<param name="other">An object to compare to the current <see cref="T:J2N.Text.CharArrayCharSequence"/>.</param>
<returns><c>true</c> if <paramref name="other"/> is equal to the current <see cref="T:J2N.Text.CharArrayCharSequence"/>; otherwise, <c>false</c>.</returns>
</member>
<member name="M:J2N.Text.CharArrayCharSequence.GetHashCode">
<summary>
Gets the hash code for the current <see cref="T:J2N.Text.ICharSequence"/>.
</summary>
<returns>Returns the hash code for <see cref="P:J2N.Text.CharArrayCharSequence.Value"/>. If <see cref="P:J2N.Text.CharArrayCharSequence.Value"/> is <c>null</c>, returns <see cref="F:System.Int32.MaxValue"/>.</returns>
</member>
<member name="M:J2N.Text.CharArrayCharSequence.CompareTo(J2N.Text.ICharSequence)">
<summary>
Compares this instance with a specified <see cref="T:J2N.Text.ICharSequence"/> object and indicates whether
this instance precedes, follows, or appears in the same position in the sort order as the specified string.
</summary>
<param name="other">The <see cref="T:J2N.Text.ICharSequence"/> to compare with this instance.</param>
<returns>
An integer that indicates the lexical relationship between the two comparands.
Less than zero indicates the comparison value is greater than the current string.
Zero indicates the strings are equal.
Greater than zero indicates the comparison value is less than the current string.
</returns>
</member>
<member name="M:J2N.Text.CharArrayCharSequence.CompareTo(System.String)">
<summary>
Compares this instance with a specified <see cref="T:System.String"/> object and indicates whether
this instance precedes, follows, or appears in the same position in the sort order as the specified string.
</summary>
<param name="other">The <see cref="T:System.String"/> to compare with this instance.</param>
<returns>
An integer that indicates the lexical relationship between the two comparands.
Less than zero indicates the comparison value is greater than the current string.
Zero indicates the strings are equal.
Greater than zero indicates the comparison value is less than the current string.
</returns>
</member>
<member name="M:J2N.Text.CharArrayCharSequence.CompareTo(System.Text.StringBuilder)">
<summary>
Compares this instance with a specified <see cref="T:System.Text.StringBuilder"/> object and indicates whether
this instance precedes, follows, or appears in the same position in the sort order as the specified string.
</summary>
<param name="other">The <see cref="T:System.Text.StringBuilder"/> to compare with this instance.</param>
<returns>
An integer that indicates the lexical relationship between the two comparands.
Less than zero indicates the comparison value is greater than the current string.
Zero indicates the strings are equal.
Greater than zero indicates the comparison value is less than the current string.
</returns>
</member>
<member name="M:J2N.Text.CharArrayCharSequence.CompareTo(System.Char[])">
<summary>
Compares this instance with a specified <see cref="T:char[]"/> object and indicates whether
this instance precedes, follows, or appears in the same position in the sort order as the specified string.
</summary>
<param name="other">The <see cref="T:char[]"/> to compare with this instance.</param>
<returns>
An integer that indicates the lexical relationship between the two comparands.
Less than zero indicates the comparison value is greater than the current string.
Zero indicates the strings are equal.
Greater than zero indicates the comparison value is less than the current string.
</returns>
</member>
<member name="M:J2N.Text.CharArrayCharSequence.CompareTo(System.Object)">
<summary>
Compares this instance with a specified <see cref="T:System.Object"/> and indicates whether
this instance precedes, follows, or appears in the same position in the sort order as the specified string.
</summary>
<param name="other">The <see cref="T:System.Object"/> to compare with this instance.</param>
<returns>
An integer that indicates the lexical relationship between the two comparands.
Less than zero indicates the comparison value is greater than the current string.
Zero indicates the strings are equal.
Greater than zero indicates the comparison value is less than the current string.
</returns>
</member>
<member name="T:J2N.Text.CharArrayExtensions">
<summary>
Extensions to <see cref="T:char[]"/> arrays.
</summary>
</member>
<member name="M:J2N.Text.CharArrayExtensions.AsCharSequence(System.Char[])">
<summary>
Convenience method to wrap a string in a <see cref="T:J2N.Text.CharArrayCharSequence"/>
so a <see cref="T:char[]"/> can be used as <see cref="T:J2N.Text.ICharSequence"/> in .NET.
</summary>
<param name="text">This <see cref="T:char[]"/>.</param>
</member>
<member name="M:J2N.Text.CharArrayExtensions.Subsequence(System.Char[],System.Int32,System.Int32)">
<summary>
Retrieves a sub-sequence from this instance.
The sub-sequence starts at a specified character position and has a specified length.
<para/>
IMPORTANT: This method has .NET semantics, that is, the second parameter is a length,
not an exclusive end index as it would be in Java.
</summary>
<param name="startIndex">
The start index of the sub-sequence. It is inclusive, that
is, the index of the first character that is included in the
sub-sequence.
</param>
<param name="text">This <see cref="T:char[]"/>.</param>
<param name="length">The number of characters to return in the sub-sequence.</param>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="startIndex"/> plus <paramref name="length"/> indicates a position not within this instance.
<para/>
-or-
<para/>
<paramref name="startIndex"/> or <paramref name="length"/> is less than zero.
</exception>
</member>
<member name="M:J2N.Text.CharArrayExtensions.CompareToOrdinal(System.Char[],System.Char[])">
<summary>
This method mimics the Java String.compareTo(CharSequence) method in that it
<list type="number">
<item><description>Compares the strings using lexographic sorting rules</description></item>
<item><description>Performs a culture-insensitive comparison</description></item>
</list>
This method is a convenience to replace the .NET CompareTo method
on all strings, provided the logic does not expect specific values
but is simply comparing them with <c>&gt;</c> or <c>&lt;</c>.
</summary>
<param name="str">This string.</param>
<param name="value">The string to compare with.</param>
<returns>
An integer that indicates the lexical relationship between the two comparands.
Less than zero indicates the comparison value is greater than the current string.
Zero indicates the strings are equal.
Greater than zero indicates the comparison value is less than the current string.
</returns>
</member>
<member name="M:J2N.Text.CharArrayExtensions.CompareToOrdinal(System.Char[],System.Text.StringBuilder)">
<summary>
This method mimics the Java String.compareTo(CharSequence) method in that it
<list type="number">
<item><description>Compares the strings using lexographic sorting rules</description></item>
<item><description>Performs a culture-insensitive comparison</description></item>
</list>
This method is a convenience to replace the .NET CompareTo method
on all strings, provided the logic does not expect specific values
but is simply comparing them with <c>&gt;</c> or <c>&lt;</c>.
</summary>
<param name="str">This string.</param>
<param name="value">The string to compare with.</param>
<returns>
An integer that indicates the lexical relationship between the two comparands.
Less than zero indicates the comparison value is greater than the current string.
Zero indicates the strings are equal.
Greater than zero indicates the comparison value is less than the current string.
</returns>
</member>
<member name="M:J2N.Text.CharArrayExtensions.CompareToOrdinal(System.Char[],System.String)">
<summary>
This method mimics the Java String.compareTo(CharSequence) method in that it
<list type="number">
<item><description>Compares the strings using lexographic sorting rules</description></item>
<item><description>Performs a culture-insensitive comparison</description></item>
</list>
This method is a convenience to replace the .NET CompareTo method
on all strings, provided the logic does not expect specific values
but is simply comparing them with <c>&gt;</c> or <c>&lt;</c>.
</summary>
<param name="str">This string.</param>
<param name="value">The string to compare with.</param>
<returns>
An integer that indicates the lexical relationship between the two comparands.
Less than zero indicates the comparison value is greater than the current string.
Zero indicates the strings are equal.
Greater than zero indicates the comparison value is less than the current string.
</returns>
</member>
<member name="M:J2N.Text.CharArrayExtensions.CompareToOrdinal(System.Char[],J2N.Text.ICharSequence)">
<summary>
This method mimics the Java String.compareTo(CharSequence) method in that it
<list type="number">
<item><description>Compares the strings using lexographic sorting rules</description></item>
<item><description>Performs a culture-insensitive comparison</description></item>
</list>
This method is a convenience to replace the .NET CompareTo method
on all strings, provided the logic does not expect specific values
but is simply comparing them with <c>&gt;</c> or <c>&lt;</c>.
</summary>
<param name="str">This string.</param>
<param name="value">The string to compare with.</param>
<returns>
An integer that indicates the lexical relationship between the two comparands.
Less than zero indicates the comparison value is greater than the current string.
Zero indicates the strings are equal.
Greater than zero indicates the comparison value is less than the current string.
</returns>
</member>
<member name="M:J2N.Text.CharArrayExtensions.CompareToOrdinal(System.Char[],System.ReadOnlySpan{System.Char})">
<summary>
This method mimics the Java String.compareTo(CharSequence) method in that it
<list type="number">
<item><description>Compares the strings using lexographic sorting rules</description></item>
<item><description>Performs a culture-insensitive comparison</description></item>
</list>
This method is a convenience to replace the .NET CompareTo method
on all strings, provided the logic does not expect specific values
but is simply comparing them with <c>&gt;</c> or <c>&lt;</c>.
</summary>
<param name="str">This string.</param>
<param name="value">The string to compare with.</param>
<returns>
An integer that indicates the lexical relationship between the two comparands.
Less than zero indicates the comparison value is greater than the current string.
Zero indicates the strings are equal.
Greater than zero indicates the comparison value is less than the current string.
</returns>
</member>
<member name="T:J2N.Text.CharSequenceComparer">
<summary>
Represents a character sequence comparison operation that uses specific case and culture-based ordinal comparison rules.
</summary>
</member>
<member name="P:J2N.Text.CharSequenceComparer.Ordinal">
<summary>
Gets a <see cref="T:J2N.Text.CharSequenceComparer"/> object that performs a case-sensitive ordinal string comparison.
</summary>
</member>
<member name="M:J2N.Text.CharSequenceComparer.Compare(System.Object,System.Object)">
<summary>
Compares two objects and returns an indication of their relative sort order.
</summary>
<param name="x">An object to compare to <paramref name="y"/>.</param>
<param name="y">An object to compare to <paramref name="x"/>.</param>
<returns>
A signed integer that indicates the relative values of <paramref name="x"/> and <paramref name="y"/>, as shown in the following table.
<list type="table">
<listheader>
<term>Value</term>
<term>Meaning</term>
</listheader>
<item>
<term>Less than zero </term>
<term><paramref name="x"/> precedes y in the sort order. -or- <paramref name="x"/> is <c>null</c> and <paramref name="y"/> is not <c>null</c>.</term>
</item>
<item>
<term>Zero </term>
<term><paramref name="x"/> is equal to <paramref name="y"/>. -or- <paramref name="x"/> and <paramref name="y"/> are both <c>null</c>.</term>
</item>
<item>
<term>Greater than zero </term>
<term><paramref name="x"/> follows <paramref name="y"/> in the sort order. -or- <paramref name="y"/> is <c>null</c> and <paramref name="x"/> is not <c>null</c>.</term>
</item>
</list>
</returns>
</member>
<member name="M:J2N.Text.CharSequenceComparer.Compare(J2N.Text.ICharSequence,J2N.Text.ICharSequence)">
<summary>
Compares two <see cref="T:J2N.Text.ICharSequence"/>s and returns an indication of their relative sort order.
</summary>
<param name="x">A <see cref="T:J2N.Text.ICharSequence"/> to compare to <paramref name="y"/>.</param>
<param name="y">An <see cref="T:J2N.Text.ICharSequence"/> to compare to <paramref name="x"/>.</param>
<returns>
A signed integer that indicates the relative values of <paramref name="x"/> and <paramref name="y"/>, as shown in the following table.
<list type="table">
<listheader>
<term>Value</term>
<term>Meaning</term>
</listheader>
<item>
<term>Less than zero </term>
<term><paramref name="x"/> precedes y in the sort order. -or- <paramref name="x"/> is <c>null</c> and <paramref name="y"/> is not <c>null</c>.</term>
</item>
<item>
<term>Zero </term>
<term><paramref name="x"/> is equal to <paramref name="y"/>. -or- <paramref name="x"/> and <paramref name="y"/> are both <c>null</c>.</term>
</item>
<item>
<term>Greater than zero </term>
<term><paramref name="x"/> follows <paramref name="y"/> in the sort order. -or- <paramref name="y"/> is <c>null</c> and <paramref name="x"/> is not <c>null</c>.</term>
</item>
</list>
</returns>
</member>
<member name="M:J2N.Text.CharSequenceComparer.Compare(J2N.Text.ICharSequence,System.Char[])">
<summary>
Compares two character sequences and returns an indication of their relative sort order.
</summary>
<param name="x">A <see cref="T:J2N.Text.ICharSequence"/> to compare to <paramref name="y"/>.</param>
<param name="y">A <see cref="T:char[]"/> to compare to <paramref name="x"/>.</param>
<returns>
A signed integer that indicates the relative values of <paramref name="x"/> and <paramref name="y"/>, as shown in the following table.
<list type="table">
<listheader>
<term>Value</term>
<term>Meaning</term>
</listheader>
<item>
<term>Less than zero </term>
<term><paramref name="x"/> precedes y in the sort order. -or- <paramref name="x"/> is <c>null</c> and <paramref name="y"/> is not <c>null</c>.</term>
</item>
<item>
<term>Zero </term>
<term><paramref name="x"/> is equal to <paramref name="y"/>. -or- <paramref name="x"/> and <paramref name="y"/> are both <c>null</c>.</term>
</item>
<item>
<term>Greater than zero </term>
<term><paramref name="x"/> follows <paramref name="y"/> in the sort order. -or- <paramref name="y"/> is <c>null</c> and <paramref name="x"/> is not <c>null</c>.</term>
</item>
</list>
</returns>
</member>
<member name="M:J2N.Text.CharSequenceComparer.Compare(J2N.Text.ICharSequence,System.Text.StringBuilder)">
<summary>
Compares two character sequences and returns an indication of their relative sort order.
</summary>
<param name="x">A <see cref="T:J2N.Text.ICharSequence"/> to compare to <paramref name="y"/>.</param>
<param name="y">A <see cref="T:System.Text.StringBuilder"/> to compare to <paramref name="x"/>.</param>
<returns>
A signed integer that indicates the relative values of <paramref name="x"/> and <paramref name="y"/>, as shown in the following table.
<list type="table">
<listheader>
<term>Value</term>
<term>Meaning</term>
</listheader>
<item>
<term>Less than zero </term>
<term><paramref name="x"/> precedes y in the sort order. -or- <paramref name="x"/> is <c>null</c> and <paramref name="y"/> is not <c>null</c>.</term>
</item>
<item>
<term>Zero </term>
<term><paramref name="x"/> is equal to <paramref name="y"/>. -or- <paramref name="x"/> and <paramref name="y"/> are both <c>null</c>.</term>
</item>
<item>
<term>Greater than zero </term>
<term><paramref name="x"/> follows <paramref name="y"/> in the sort order. -or- <paramref name="y"/> is <c>null</c> and <paramref name="x"/> is not <c>null</c>.</term>
</item>
</list>
</returns>
</member>
<member name="M:J2N.Text.CharSequenceComparer.Compare(J2N.Text.ICharSequence,System.String)">
<summary>
Compares two character sequences and returns an indication of their relative sort order.
</summary>
<param name="x">A <see cref="T:J2N.Text.ICharSequence"/> to compare to <paramref name="y"/>.</param>
<param name="y">A <see cref="T:System.String"/> to compare to <paramref name="x"/>.</param>
<returns>
A signed integer that indicates the relative values of <paramref name="x"/> and <paramref name="y"/>, as shown in the following table.
<list type="table">
<listheader>
<term>Value</term>
<term>Meaning</term>
</listheader>
<item>
<term>Less than zero </term>
<term><paramref name="x"/> precedes y in the sort order. -or- <paramref name="x"/> is <c>null</c> and <paramref name="y"/> is not <c>null</c>.</term>
</item>
<item>
<term>Zero </term>
<term><paramref name="x"/> is equal to <paramref name="y"/>. -or- <paramref name="x"/> and <paramref name="y"/> are both <c>null</c>.</term>
</item>
<item>
<term>Greater than zero </term>
<term><paramref name="x"/> follows <paramref name="y"/> in the sort order. -or- <paramref name="y"/> is <c>null</c> and <paramref name="x"/> is not <c>null</c>.</term>
</item>
</list>
</returns>
</member>
<member name="M:J2N.Text.CharSequenceComparer.Compare(J2N.Text.ICharSequence,J2N.Text.CharArrayCharSequence)">
<summary>
Compares two character sequences and returns an indication of their relative sort order.
</summary>
<param name="x">A <see cref="T:J2N.Text.ICharSequence"/> to compare to <paramref name="y"/>.</param>
<param name="y">A <see cref="T:J2N.Text.CharArrayCharSequence"/> to compare to <paramref name="x"/>.</param>
<returns>
A signed integer that indicates the relative values of <paramref name="x"/> and <paramref name="y"/>, as shown in the following table.
<list type="table">
<listheader>
<term>Value</term>
<term>Meaning</term>
</listheader>
<item>
<term>Less than zero </term>
<term><paramref name="x"/> precedes y in the sort order. -or- <paramref name="x"/> is <c>null</c> and <paramref name="y"/> is not <c>null</c>.</term>
</item>
<item>
<term>Zero </term>
<term><paramref name="x"/> is equal to <paramref name="y"/>. -or- <paramref name="x"/> and <paramref name="y"/> are both <c>null</c>.</term>
</item>
<item>
<term>Greater than zero </term>
<term><paramref name="x"/> follows <paramref name="y"/> in the sort order. -or- <paramref name="y"/> is <c>null</c> and <paramref name="x"/> is not <c>null</c>.</term>
</item>
</list>
</returns>
</member>
<member name="M:J2N.Text.CharSequenceComparer.Compare(J2N.Text.ICharSequence,J2N.Text.StringBuilderCharSequence)">
<summary>
Compares two character sequences and returns an indication of their relative sort order.
</summary>
<param name="x">A <see cref="T:J2N.Text.ICharSequence"/> to compare to <paramref name="y"/>.</param>
<param name="y">A <see cref="T:J2N.Text.StringBuilderCharSequence"/> to compare to <paramref name="x"/>.</param>
<returns>
A signed integer that indicates the relative values of <paramref name="x"/> and <paramref name="y"/>, as shown in the following table.
<list type="table">
<listheader>
<term>Value</term>
<term>Meaning</term>
</listheader>
<item>
<term>Less than zero </term>
<term><paramref name="x"/> precedes y in the sort order. -or- <paramref name="x"/> is <c>null</c> and <paramref name="y"/> is not <c>null</c>.</term>
</item>
<item>
<term>Zero </term>
<term><paramref name="x"/> is equal to <paramref name="y"/>. -or- <paramref name="x"/> and <paramref name="y"/> are both <c>null</c>.</term>
</item>
<item>
<term>Greater than zero </term>
<term><paramref name="x"/> follows <paramref name="y"/> in the sort order. -or- <paramref name="y"/> is <c>null</c> and <paramref name="x"/> is not <c>null</c>.</term>
</item>
</list>
</returns>
</member>
<member name="M:J2N.Text.CharSequenceComparer.Compare(J2N.Text.ICharSequence,J2N.Text.StringCharSequence)">
<summary>
Compares two character sequences and returns an indication of their relative sort order.
</summary>
<param name="x">A <see cref="T:J2N.Text.ICharSequence"/> to compare to <paramref name="y"/>.</param>
<param name="y">A <see cref="T:J2N.Text.StringCharSequence"/> to compare to <paramref name="x"/>.</param>
<returns>
A signed integer that indicates the relative values of <paramref name="x"/> and <paramref name="y"/>, as shown in the following table.
<list type="table">
<listheader>
<term>Value</term>
<term>Meaning</term>
</listheader>
<item>
<term>Less than zero </term>
<term><paramref name="x"/> precedes y in the sort order. -or- <paramref name="x"/> is <c>null</c> and <paramref name="y"/> is not <c>null</c>.</term>
</item>
<item>
<term>Zero </term>
<term><paramref name="x"/> is equal to <paramref name="y"/>. -or- <paramref name="x"/> and <paramref name="y"/> are both <c>null</c>.</term>
</item>
<item>
<term>Greater than zero </term>
<term><paramref name="x"/> follows <paramref name="y"/> in the sort order. -or- <paramref name="y"/> is <c>null</c> and <paramref name="x"/> is not <c>null</c>.</term>
</item>
</list>
</returns>
</member>
<member name="M:J2N.Text.CharSequenceComparer.Equals(System.Object,System.Object)">
<summary>
Indicates whether two objects or character sequences are equal.
</summary>
<param name="x">An <see cref="T:J2N.Text.ICharSequence"/> to compare to <paramref name="y"/>.</param>
<param name="y">An <see cref="T:J2N.Text.ICharSequence"/> to compare to <paramref name="x"/>.</param>
<returns><c>true</c> if <paramref name="x"/> and <paramref name="y"/> refer to the same object,
or <paramref name="x"/> and <paramref name="y"/> both contain the same sequence of characters,
or both <paramref name="x"/> and <paramref name="y"/> are <c>null</c>; otherwise <c>false</c>.</returns>
</member>
<member name="M:J2N.Text.CharSequenceComparer.Equals(J2N.Text.ICharSequence,J2N.Text.ICharSequence)">
<summary>
Indicates whether two character sequences are equal.
</summary>
<param name="x">A <see cref="T:J2N.Text.ICharSequence"/> to compare to <paramref name="y"/>.</param>
<param name="y">A <see cref="T:J2N.Text.ICharSequence"/> to compare to <paramref name="x"/>.</param>
<returns><c>true</c> if <paramref name="x"/> and <paramref name="y"/> refer to the same object,
or <paramref name="x"/> and <paramref name="y"/> both contain the same sequence of characters,
or both <paramref name="x"/> and <paramref name="y"/> are <c>null</c>; otherwise <c>false</c>.</returns>
</member>
<member name="M:J2N.Text.CharSequenceComparer.Equals(J2N.Text.ICharSequence,System.Char[])">
<summary>
Indicates whether two character sequences are equal.
</summary>
<param name="x">A <see cref="T:J2N.Text.ICharSequence"/> to compare to <paramref name="y"/>.</param>
<param name="y">A <see cref="T:char[]"/> to compare to <paramref name="x"/>.</param>
<returns><c>true</c> if <paramref name="x"/> and <paramref name="y"/> refer to the same object,
or <paramref name="x"/> and <paramref name="y"/> both contain the same sequence of characters,
or both <paramref name="x"/> and <paramref name="y"/> are <c>null</c>; otherwise <c>false</c>.</returns>
</member>
<member name="M:J2N.Text.CharSequenceComparer.Equals(J2N.Text.ICharSequence,System.Text.StringBuilder)">
<summary>
Indicates whether two character sequences are equal.
</summary>
<param name="x">A <see cref="T:J2N.Text.ICharSequence"/> to compare to <paramref name="y"/>.</param>
<param name="y">A <see cref="T:System.Text.StringBuilder"/> to compare to <paramref name="x"/>.</param>
<returns><c>true</c> if <paramref name="x"/> and <paramref name="y"/> refer to the same object,
or <paramref name="x"/> and <paramref name="y"/> both contain the same sequence of characters,
or both <paramref name="x"/> and <paramref name="y"/> are <c>null</c>; otherwise <c>false</c>.</returns>
</member>
<member name="M:J2N.Text.CharSequenceComparer.Equals(J2N.Text.ICharSequence,System.String)">
<summary>
Indicates whether two character sequences are equal.
</summary>
<param name="x">A <see cref="T:J2N.Text.ICharSequence"/> to compare to <paramref name="y"/>.</param>
<param name="y">A <see cref="T:System.String"/> to compare to <paramref name="x"/>.</param>
<returns><c>true</c> if <paramref name="x"/> and <paramref name="y"/> refer to the same object,
or <paramref name="x"/> and <paramref name="y"/> both contain the same sequence of characters,
or both <paramref name="x"/> and <paramref name="y"/> are <c>null</c>; otherwise <c>false</c>.</returns>
</member>
<member name="M:J2N.Text.CharSequenceComparer.GetHashCode(System.Object)">
<summary>
Gets the hash code for the specified object.
</summary>
<param name="obj">An object.</param>
<returns>A 32-bit signed hash code calculated from the value of the <paramref name="obj"/> parameter,
or <see cref="F:System.Int32.MaxValue"/> if <paramref name="obj"/> is <c>null</c>.</returns>
</member>
<member name="M:J2N.Text.CharSequenceComparer.GetHashCode(J2N.Text.ICharSequence)">
<summary>
Gets the hash code for the specified character sequence.
</summary>
<param name="obj">A character sequence.</param>
<returns>A 32-bit signed hash code calculated from the value of the <paramref name="obj"/> parameter,
or <see cref="F:System.Int32.MaxValue"/> if <paramref name="obj"/> is <c>null</c>.</returns>
</member>
<member name="M:J2N.Text.CharSequenceComparer.GetHashCode(System.Char[])">
<summary>
Gets the hash code for the specified character sequence.
</summary>
<param name="obj">A character sequence.</param>
<returns>A 32-bit signed hash code calculated from the value of the <paramref name="obj"/> parameter,
or <see cref="F:System.Int32.MaxValue"/> if <paramref name="obj"/> is <c>null</c>.</returns>
</member>
<member name="M:J2N.Text.CharSequenceComparer.GetHashCode(System.Text.StringBuilder)">
<summary>
Gets the hash code for the specified character sequence.
</summary>
<param name="obj">A character sequence.</param>
<returns>A 32-bit signed hash code calculated from the value of the <paramref name="obj"/> parameter,
or <see cref="F:System.Int32.MaxValue"/> if <paramref name="obj"/> is <c>null</c>.</returns>
</member>
<member name="M:J2N.Text.CharSequenceComparer.GetHashCode(System.String)">
<summary>
Gets the hash code for the specified character sequence.
</summary>
<param name="obj">A character sequence.</param>
<returns>A 32-bit signed hash code calculated from the value of the <paramref name="obj"/> parameter,
or <see cref="F:System.Int32.MaxValue"/> if <paramref name="obj"/> is <c>null</c>.</returns>
</member>
<member name="T:J2N.Text.IAppendable">
<summary>
Declares methods to append characters or character sequences.
</summary>
</member>
<member name="M:J2N.Text.IAppendable.Append(System.Char)">
<summary>
Appends the string representation of a specified <see cref="T:System.Char"/> object to this instance.
</summary>
<param name="value">The UTF-16-encoded code unit to append.</param>
<returns>A reference to this instance after the append operation has completed.</returns>
</member>
<member name="M:J2N.Text.IAppendable.Append(System.String)">
<summary>
Appends a copy of the specified string to this instance.
</summary>
<param name="value">The string to append.</param>
<returns>A reference to this instance after the append operation has completed.</returns>
</member>
<member name="M:J2N.Text.IAppendable.Append(System.String,System.Int32,System.Int32)">
<summary>
Appends a copy of a specified substring to this instance.
<para/>
IMPORTANT: This method has .NET semantics, that is, the third parameter is a length,
not an exclusive end index as it would be in Java. To translate from Java to .NET,
callers must account for this by subtracting (end - start) for the <paramref name="count"/>.
</summary>
<param name="value">The <see cref="T:System.Text.StringBuilder"/> that contains the substring to append.</param>
<param name="startIndex">The starting position of the substring within <paramref name="value"/>.</param>
<param name="count">The number of characters in <paramref name="value"/> to append.</param>
<returns>A reference to this instance after the append operation has completed.</returns>
<exception cref="T:System.ArgumentNullException"><paramref name="value"/> is <c>null</c>, and
<paramref name="startIndex"/> and <paramref name="count"/> are not zero.</exception>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="count"/> less than zero.
<para/>
-or-
<para/>
<paramref name="startIndex"/> less than zero.
<para/>
-or-
<para/>
<paramref name="startIndex"/> + <paramref name="count"/> is greater than the length of <paramref name="value"/>.
</exception>
</member>
<member name="M:J2N.Text.IAppendable.Append(System.Text.StringBuilder)">
<summary>
Appends a copy of the specified string to this instance.
</summary>
<param name="value">The <see cref="T:System.Text.StringBuilder"/> that contains the string to append.</param>
<returns>A reference to this instance after the append operation has completed.</returns>
</member>
<member name="M:J2N.Text.IAppendable.Append(System.Text.StringBuilder,System.Int32,System.Int32)">
<summary>
Appends a copy of a specified substring to this instance.
<para/>
IMPORTANT: This method has .NET semantics, that is, the third parameter is a length,
not an exclusive end index as it would be in Java. To translate from Java to .NET,
callers must account for this by subtracting (end - start) for the <paramref name="count"/>.
</summary>
<param name="value">The <see cref="T:System.Text.StringBuilder"/> that contains the substring to append.</param>
<param name="startIndex">The starting position of the substring within <paramref name="value"/>.</param>
<param name="count">The number of characters in <paramref name="value"/> to append.</param>
<returns>A reference to this instance after the append operation has completed.</returns>
<exception cref="T:System.ArgumentNullException"><paramref name="value"/> is <c>null</c>, and
<paramref name="startIndex"/> and <paramref name="count"/> are not zero.</exception>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="count"/> less than zero.
<para/>
-or-
<para/>
<paramref name="startIndex"/> less than zero.
<para/>
-or-
<para/>
<paramref name="startIndex"/> + <paramref name="count"/> is greater than the length of <paramref name="value"/>.
</exception>
</member>
<member name="M:J2N.Text.IAppendable.Append(System.Char[])">
<summary>
Appends the string representation of the Unicode characters in a specified array to this instance.
</summary>
<param name="value">The array of characters to append.</param>
<returns>A reference to this instance after the append operation has completed.</returns>
</member>
<member name="M:J2N.Text.IAppendable.Append(System.Char[],System.Int32,System.Int32)">
<summary>
Appends the string representation of a specified subarray of Unicode characters to this instance.
<para/>
IMPORTANT: This method has .NET semantics, that is, the third parameter is a length,
not an exclusive end index as it would be in Java. To translate from Java to .NET,
callers must account for this by subtracting (end - start) for the <paramref name="count"/>.
</summary>
<param name="value">A character array.</param>
<param name="startIndex">The starting position in <paramref name="value"/>.</param>
<param name="count">The number of characters in <paramref name="value"/> to append.</param>
<returns>A reference to this instance after the append operation has completed.</returns>
<exception cref="T:System.ArgumentNullException"><paramref name="value"/> is <c>null</c>, and
<paramref name="startIndex"/> and <paramref name="count"/> are not zero.</exception>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="count"/> less than zero.
<para/>
-or-
<para/>
<paramref name="startIndex"/> less than zero.
<para/>
-or-
<para/>
<paramref name="startIndex"/> + <paramref name="count"/> is greater than the length of <paramref name="value"/>.
</exception>
</member>
<member name="M:J2N.Text.IAppendable.Append(J2N.Text.ICharSequence)">
<summary>
Appends the string representation of the Unicode characters in a specified <see cref="T:J2N.Text.ICharSequence"/> to this instance.
</summary>
<param name="value">The <see cref="T:J2N.Text.ICharSequence"/> containing the characters to append.</param>
<returns>A reference to this instance after the append operation has completed.</returns>
</member>
<member name="M:J2N.Text.IAppendable.Append(J2N.Text.ICharSequence,System.Int32,System.Int32)">
<summary>
Appends the string representation of a specified <see cref="T:J2N.Text.ICharSequence"/> of Unicode characters to this instance.
<para/>
IMPORTANT: This method has .NET semantics, that is, the third parameter is a length,
not an exclusive end index as it would be in Java. To translate from Java to .NET,
callers must account for this by subtracting (end - start) for the <paramref name="count"/>.
</summary>
<param name="value">The <see cref="T:J2N.Text.ICharSequence"/> containing the characters to append.</param>
<param name="startIndex">The starting position in <paramref name="value"/>.</param>
<param name="count">The number of characters in <paramref name="value"/> to append.</param>
<returns>A reference to this instance after the append operation has completed.</returns>
<exception cref="T:System.ArgumentNullException"><paramref name="value"/> is <c>null</c>, and
<paramref name="startIndex"/> and <paramref name="count"/> are not zero.</exception>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="count"/> less than zero.
<para/>
-or-
<para/>
<paramref name="startIndex"/> less than zero.
<para/>
-or-
<para/>
<paramref name="startIndex"/> + <paramref name="count"/> is greater than the length of <paramref name="value"/>.
</exception>
</member>
<member name="T:J2N.Text.ICharacterEnumerator">
<summary>
An interface for the bidirectional iteration over a group of characters. The
iteration starts at the begin index in the group of characters and continues
for the length of the character sequence.
</summary>
</member>
<member name="M:J2N.Text.ICharacterEnumerator.Clone">
<summary>
Returns a new <see cref="T:J2N.Text.ICharacterEnumerator"/> with the same properties.
</summary>
<returns>A shallow copy of this character enumerator.</returns>
</member>
<member name="M:J2N.Text.ICharacterEnumerator.MovePrevious">
<summary>
Decrements the current index.
</summary>
<returns><c>true</c> if the move operation was successful; otherwise, <c>false</c>.</returns>
</member>
<member name="M:J2N.Text.ICharacterEnumerator.MoveFirst">
<summary>
Sets the current position to the begin index.
</summary>
<returns><c>true</c> if the move operation was successful. <c>false</c> if no move
operation took place because of a 0 length.</returns>
</member>
<member name="M:J2N.Text.ICharacterEnumerator.MoveLast">
<summary>
Sets the current position to the begin index + length.
</summary>
<returns><c>true</c> if the move operation was successful. <c>false</c> if no move
operation took place because of a 0 length.</returns>
</member>
<member name="P:J2N.Text.ICharacterEnumerator.StartIndex">
<summary>
Gets the begin index. Returns the index of the first character of the iteration.
</summary>
</member>
<member name="P:J2N.Text.ICharacterEnumerator.EndIndex">
<summary>
Gets the end index. Returns the last character of the iteration.
<para/>
IMPORTANT: This method has .NET semantics. That is, the end index is inclusive,
not exclusive as it would be in Java. To translate from Java, always use <c>EndIndex + 1</c>.
</summary>
</member>
<member name="P:J2N.Text.ICharacterEnumerator.Length">
<summary>
Gets the number of characters in the iteration.
</summary>
</member>
<member name="P:J2N.Text.ICharacterEnumerator.Index">
<summary>
Gets or sets the current index.
</summary>
<exception cref="T:System.ArgumentOutOfRangeException">The value set indicates a position less than
<see cref="P:J2N.Text.ICharacterEnumerator.StartIndex"/> or greater than <see cref="P:J2N.Text.ICharacterEnumerator.EndIndex"/>.</exception>
</member>
<member name="M:J2N.Text.ICharacterEnumerator.TrySetIndex(System.Int32)">
<summary>
Attempts to set the <see cref="P:J2N.Text.ICharacterEnumerator.Index"/> to <paramref name="value"/>.
<para/>
Returns <c>true</c> if the <paramref name="value"/> passed is between
<see cref="P:J2N.Text.ICharacterEnumerator.StartIndex"/> and <see cref="P:J2N.Text.ICharacterEnumerator.EndIndex"/> inclusive; otherwise, returns <c>false</c>.
<para/>
If <paramref name="value"/> is less than <see cref="P:J2N.Text.ICharacterEnumerator.StartIndex"/>, the
<see cref="P:J2N.Text.ICharacterEnumerator.Index"/> will be set to <see cref="P:J2N.Text.ICharacterEnumerator.StartIndex"/>.
<para/>
If <paramref name="value"/> is greater than <see cref="P:J2N.Text.ICharacterEnumerator.EndIndex"/>, the
<see cref="P:J2N.Text.ICharacterEnumerator.Index"/> will be set to <see cref="P:J2N.Text.ICharacterEnumerator.EndIndex"/>.
</summary>
<param name="value">The new index.</param>
<returns><c>true</c> if the <paramref name="value"/> passed is between
<see cref="P:J2N.Text.ICharacterEnumerator.StartIndex"/> and <see cref="P:J2N.Text.ICharacterEnumerator.EndIndex"/> inclusive; otherwise, <c>false</c>.</returns>
</member>
<member name="T:J2N.Text.ICharSequence">
<summary>
This interface represents an ordered set of characters and defines the
methods to probe them.
</summary>
</member>
<member name="P:J2N.Text.ICharSequence.HasValue">
<summary>
Gets a value indicating whether the current <see cref="T:J2N.Text.ICharSequence"/>
has a valid value of its underlying type.
</summary>
</member>
<member name="P:J2N.Text.ICharSequence.Length">
<summary>
Gets the number of characters in this sequence.
</summary>
</member>
<member name="P:J2N.Text.ICharSequence.Item(System.Int32)">
<summary>
Gets the character at the specified index, with the first character
having index zero.
</summary>
<param name="index">The index of the character to return.</param>
<returns>The requested character.</returns>
<exception cref="T:System.IndexOutOfRangeException">
If <c>index &lt; 0</c> or <c>index</c> is greater than the
length of this sequence.
</exception>
<exception cref="T:System.InvalidOperationException">
If the underlying value of this sequence is <c>null</c>.
</exception>
</member>
<member name="M:J2N.Text.ICharSequence.Subsequence(System.Int32,System.Int32)">
<summary>
Retrieves a sub-sequence from this instance.
The sub-sequence starts at a specified character position and has a specified length.
<para/>
IMPORTANT: This method has .NET semantics, that is, the second parameter is a length,
not an exclusive end index as it would be in Java. To translate from Java to .NET,
callers must account for this by subtracting (end - start) for the <paramref name="length"/>.
</summary>
<param name="startIndex">
The start index of the sub-sequence. It is inclusive, that
is, the index of the first character that is included in the
sub-sequence.
</param>
<param name="length">The number of characters to return in the sub-sequence.</param>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="startIndex"/> plus <paramref name="length"/> indicates a position not within this instance.
<para/>
-or-
<para/>
<paramref name="startIndex"/> or <paramref name="length"/> is less than zero.
</exception>
</member>
<member name="M:J2N.Text.ICharSequence.ToString">
<summary>
Returns a string with the same characters in the same order as in this
sequence.
</summary>
<returns>A string based on this sequence.</returns>
</member>
<member name="T:J2N.Text.ISpanAppendable">
<summary>
Provides functionality to append the characters from <see cref="T:System.ReadOnlySpan`1"/> to an
<see cref="T:J2N.Text.IAppendable"/> implementation.
</summary>
</member>
<member name="M:J2N.Text.ISpanAppendable.Append(System.ReadOnlySpan{System.Char})">
<summary>
Appends the string representation of a specified read-only character span to this instance.
<para/>
<see cref="T:J2N.Text.IAppendable"/> types that implement this interface will be called by the
<see cref="M:J2N.Text.AppendableExtensions.Append``1(``0,System.ReadOnlySpan{System.Char})"/> to provide a better
optimized implementation than the default, which uses a <see cref="T:char[]"/> buffer obtained
from the shared array pool and calls the <see cref="M:J2N.Text.IAppendable.Append(System.Char[],System.Int32,System.Int32)"/>
method to perform the append operation (in chunks).
</summary>
<param name="value">The read-only character span to append.</param>
<returns>A reference to this instance after the append operation is completed.</returns>
<seealso cref="T:J2N.Text.AppendableExtensions"/>
<seealso cref="M:J2N.Text.AppendableExtensions.Append``1(``0,System.ReadOnlySpan{System.Char})"/>
</member>
<member name="T:J2N.Text.IStructuralFormattable">
<summary>
Provides functionality to format the value of an collection into a string representation.
</summary>
</member>
<member name="M:J2N.Text.IStructuralFormattable.ToString(System.String,System.IFormatProvider)">
<summary>
Formats the value of the current instance using the specified format.
</summary>
<param name="format">
The format to use. -or- A null reference (Nothing in Visual Basic) to use the
default format defined for the type of the <see cref="T:System.IFormattable"/> implementation.</param>
<param name="formatProvider">
The provider to use to format the value. -or- A null reference (Nothing in Visual
Basic) to obtain the numeric format information from the current locale setting
of the operating system.</param>
<returns>The value of the current instance in the specified format.</returns>
</member>
<member name="T:J2N.Text.ParseException">
<summary>
A <see cref="T:J2N.Text.ParseException"/> is thrown when elements are written
to a buffer but there is not enough remaining space in the buffer.
</summary>
</member>
<member name="M:J2N.Text.ParseException.#ctor(System.String,System.Int32)">
<summary>
Initializes a new instance of <see cref="T:J2N.Text.ParseException"/>
with the specified <paramref name="message"/> and <paramref name="errorOffset"/>.
</summary>
<param name="message">The message that describes the error.</param>
<param name="errorOffset">The position where the error is found while parsing.</param>
</member>
<member name="M:J2N.Text.ParseException.#ctor(System.String,System.Int32,System.Exception)">
<summary>
Initializes a new instance of <see cref="T:J2N.Text.ParseException"/>
with the specified <paramref name="message"/>, <paramref name="errorOffset"/> and <paramref name="innerException"/>.
</summary>
<param name="message">The message that describes the error.</param>
<param name="errorOffset">The position where the error is found while parsing.</param>
<param name="innerException">The original cause of this parse exception.</param>
</member>
<member name="M:J2N.Text.ParseException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
<summary>
Initializes a new instance of this class with serialized data.
</summary>
<param name="info">The <see cref="T:System.Runtime.Serialization.SerializationInfo"/> that holds the serialized object data about the exception being thrown.</param>
<param name="context">The <see cref="T:System.Runtime.Serialization.StreamingContext"/> that contains contextual information about the source or destination.</param>
</member>
<member name="M:J2N.Text.ParseException.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
<summary>
Sets the <see cref="T:System.Runtime.Serialization.SerializationInfo"/> with information about the exception.
</summary>
<param name="info">The <see cref="T:System.Runtime.Serialization.SerializationInfo"/> that holds the serialized object data about the exception being thrown.</param>
<param name="context">The <see cref="T:System.Runtime.Serialization.StreamingContext"/> that contains contextual information about the source or destination.</param>
</member>
<member name="P:J2N.Text.ParseException.ErrorOffset">
<summary>
Returns the position where the error was found.
</summary>
</member>
<member name="T:J2N.Text.ParsePosition">
<summary>
Tracks the current position in a parsed string. In case of an error the error
index can be set to the position where the error occurred without having to
change the parse position.
</summary>
</member>
<member name="M:J2N.Text.ParsePosition.#ctor(System.Int32)">
<summary>
Constructs a new <see cref="T:J2N.Text.ParsePosition"/> with the specified index.
</summary>
<param name="index">The index to begin parsing.</param>
</member>
<member name="M:J2N.Text.ParsePosition.Equals(System.Object)">
<summary>
Compares the specified object to this <see cref="T:J2N.Text.ParsePosition"/> and indicates
if they are equal. In order to be equal, <paramref name="obj"/> must be an
instance of <see cref="T:J2N.Text.ParsePosition"/> and it must have the same index and
error index.
</summary>
<param name="obj">The object to compare with this object.</param>
<returns><c>true</c> if the specified object is equal to this
<see cref="T:J2N.Text.ParsePosition"/>; <c>false</c> otherwise.</returns>
<seealso cref="M:J2N.Text.ParsePosition.GetHashCode"/>
</member>
<member name="P:J2N.Text.ParsePosition.ErrorIndex">
<summary>
Gets or sets the index at which the parse could not continue.
<para/>
Returns -1 if there is no error.
</summary>
</member>
<member name="P:J2N.Text.ParsePosition.Index">
<summary>
Gets or sets the current parse position.
</summary>
</member>
<member name="M:J2N.Text.ParsePosition.GetHashCode">
<summary>
Gets the hash code for this instance.
</summary>
<returns>A hash code.</returns>
</member>
<member name="M:J2N.Text.ParsePosition.ToString">
<summary>
Returns the string representation of this parse position.
</summary>
<returns>The string representation of this parse position.</returns>
</member>
<member name="T:J2N.Text.StringArrayExtensions">
<summary>
Extensions to <see cref="T:string[]"/>.
</summary>
</member>
<member name="M:J2N.Text.StringArrayExtensions.TrimEnd(System.String[])">
<summary>
Removes <c>null</c> or empty elements from the end of a string array.
<para/>
Usage Note: In Java, the <c>Split()</c> methods of the <c>java.util.regex.Pattern</c> class
trim empty entries from the end of the array automatically. This method can be used
on the result of either the static or instance <see cref="M:System.Text.RegularExpressions.Regex.Split(System.String)"/>
overloads to remove the empty entries from the end of the array, but leave them
in the beginning and middle of the array.
<code>
string[] split = Regex.Split(" The string with spaces. ", "\\s+");
// split : { "", "", "The", "string", "with", "spaces", "", "", "" }
string[] splitAndTrimmed = split.TrimEnd();
// splitAndTrimmed : { "", "", "The", "string", "with", "spaces" }
</code>
The methods can be safely combined to produce the results seamlessly
<c>string[] split = Regex.Split(" The string with spaces. ", "\\s+").TrimEnd();</c>
<para/>
A <c>null</c> array <paramref name="input"/> will return a <c>null</c> array.
</summary>
<param name="input">This string array.</param>
<returns>The array with any null or empty elements removed from the end.</returns>
</member>
<member name="T:J2N.Text.StringBuffer">
<summary>
A thread-safe, mutable sequence of characters.
A string buffer is like a <see cref="T:System.String"/>, but can be modified. At any
point in time it contains some particular sequence of characters, but
the length and content of the sequence can be changed through certain
method calls.
<para/>
String buffers are safe for use by multiple threads. The methods
are synchronized where necessary so that all the operations on any
particular instance behave as if they occur in some serial order
that is consistent with the order of the method calls made by each of
the individual threads involved.
<para/>
The principal operations on a <see cref="T:J2N.Text.StringBuffer"/> are the
<see cref="M:J2N.Text.StringBuffer.Append(System.String)"/> and <see cref="M:J2N.Text.StringBuffer.Insert(System.Int32,System.String)"/> methods, which are
overloaded so as to accept data of any type. Each effectively
converts a given datum to a string and then appends or inserts the
characters of that string to the string buffer. The
<see cref="M:J2N.Text.StringBuffer.Append(System.String)"/> method always adds these characters at the end
of the buffer; the <see cref="M:J2N.Text.StringBuffer.Insert(System.Int32,System.String)"/> method adds the characters at
a specified point.
<para/>
For example, if <c>z</c> refers to a string buffer object
whose current contents are "<c>start</c>", then
the method call <c>z.Append("le")</c> would cause the string
buffer to contain "<c>startle</c>", whereas
<c>z.Insert(4, "le")</c> would alter the string buffer to
contain "<c>starlet</c>".
<para/>
In general, if sb refers to an instance of a <see cref="T:J2N.Text.StringBuffer"/>,
then <c>sb.Append(x)</c> has the same effect as
<c>sb.Insert(sb.Length,&#160;x)</c>.
<para/>
Whenever an operation occurs involving a source sequence (such as
appending or inserting from a source sequence) this class synchronizes
only on the string buffer performing the operation, not on the source.
<para/>
Every string buffer has a capacity. As long as the length of the
character sequence contained in the string buffer does not exceed
the capacity, it is not necessary to allocate a new internal
buffer array. If the internal buffer overflows, it is
automatically made larger.
<para/>
Usage Note: The <see cref="T:System.Text.StringBuilder"/> class should generally be used in preference to
this one, as it supports all of the same operations but it is faster, as
it performs no synchronization.
<para/>
<see cref="T:J2N.Text.StringBuffer"/> takes a naive approach to locking, and is intended
mainly as a drop in replacement for Java's <c>StringBuffer</c> class.
</summary>
<seealso cref="T:System.Text.StringBuilder"/>
<seealso cref="T:System.String"/>
</member>
<member name="M:J2N.Text.StringBuffer.#ctor">
<summary>
Initializes a new instance of the <see cref="T:J2N.Text.StringBuffer"/> class with an
initial capacity of 16 characters.
</summary>
</member>
<member name="M:J2N.Text.StringBuffer.#ctor(System.Int32)">
<summary>
Initializes a new instance of the <see cref="T:J2N.Text.StringBuffer"/> class using the specified capacity.
</summary>
<param name="capacity">The suggested starting size of this instance.</param>
<exception cref="T:System.ArgumentOutOfRangeException"><paramref name="capacity"/> is less than zero.</exception>
</member>
<member name="M:J2N.Text.StringBuffer.#ctor(System.String)">
<summary>
Initializes a new instance of the <see cref="T:J2N.Text.StringBuffer"/> class using the specified string.
</summary>
<param name="value">The string used to initialize the value of the instance.
If <paramref name="value"/> is <c>null</c>, the new <see cref="T:J2N.Text.StringBuffer"/> will
contain the empty string (that is, it contains <see cref="F:System.String.Empty"/>).</param>
</member>
<member name="M:J2N.Text.StringBuffer.#ctor(J2N.Text.ICharSequence)">
<summary>
Initializes a new instance of the <see cref="T:J2N.Text.StringBuffer"/> class using the
specified character sequence.
</summary>
<param name="value">The character sequence used to initialize the value of the instance.
If <paramref name="value"/> is <c>null</c>, the new <see cref="T:J2N.Text.StringBuffer"/> will
contain the empty string (that is, it contains <see cref="F:System.String.Empty"/>).</param>
</member>
<member name="M:J2N.Text.StringBuffer.#ctor(J2N.Text.ICharSequence,System.Int32)">
<summary>
Initializes a new instance of the <see cref="T:J2N.Text.StringBuffer"/> class
using the specified character sequence and capacity.
</summary>
<param name="value">The string used to initialize the value of the instance.
If <paramref name="value"/> is <c>null</c>, the new <see cref="T:J2N.Text.StringBuffer"/> will
contain the empty string (that is, it contains <see cref="F:System.String.Empty"/>).</param>
<param name="capacity">The suggested starting size of the <see cref="T:J2N.Text.StringBuffer"/>.</param>
<exception cref="T:System.ArgumentOutOfRangeException"><paramref name="capacity"/> is less than zero.</exception>
</member>
<member name="M:J2N.Text.StringBuffer.#ctor(J2N.Text.ICharSequence,System.Int32,System.Int32,System.Int32)">
<summary>
Initializes a new instance of the <see cref="T:J2N.Text.StringBuffer"/> class
from the specified subsequence and capacity.
</summary>
<param name="value">The string used to initialize the value of the instance.
If <paramref name="value"/> is <c>null</c>, the new <see cref="T:J2N.Text.StringBuffer"/> will
contain the empty string (that is, it contains <see cref="F:System.String.Empty"/>).</param>
<param name="startIndex">The position within <paramref name="value"/> where the substring begins.</param>
<param name="length">The number of characters in the substring.</param>
<param name="capacity">The suggested starting size of the <see cref="T:J2N.Text.StringBuffer"/>.</param>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="capacity"/> is less than zero.
<para/>
-or-
<para/>
<paramref name="startIndex"/> plus <paramref name="length"/> is not a position within <paramref name="value"/>.
</exception>
</member>
<member name="M:J2N.Text.StringBuffer.#ctor(System.Text.StringBuilder)">
<summary>
Initializes a new instance of the <see cref="T:J2N.Text.StringBuffer"/> class using the
specified character sequence.
</summary>
<param name="value">The character sequence used to initialize the value of the instance.
If <paramref name="value"/> is <c>null</c>, the new <see cref="T:J2N.Text.StringBuffer"/> will
contain the empty string (that is, it contains <see cref="F:System.String.Empty"/>).</param>
</member>
<member name="M:J2N.Text.StringBuffer.#ctor(System.Text.StringBuilder,System.Int32)">
<summary>
Initializes a new instance of the <see cref="T:J2N.Text.StringBuffer"/> class
using the specified string and capacity.
</summary>
<param name="value">The string used to initialize the value of the instance.
If <paramref name="value"/> is <c>null</c>, the new <see cref="T:J2N.Text.StringBuffer"/> will
contain the empty string (that is, it contains <see cref="F:System.String.Empty"/>).</param>
<param name="capacity">The suggested starting size of the <see cref="T:J2N.Text.StringBuffer"/>.</param>
<exception cref="T:System.ArgumentOutOfRangeException"><paramref name="capacity"/> is less than zero.</exception>
</member>
<member name="M:J2N.Text.StringBuffer.#ctor(System.Text.StringBuilder,System.Int32,System.Int32,System.Int32)">
<summary>
Initializes a new instance of the <see cref="T:J2N.Text.StringBuffer"/> class
from the specified substring and capacity.
</summary>
<param name="value">The string used to initialize the value of the instance.
If <paramref name="value"/> is <c>null</c>, the new <see cref="T:J2N.Text.StringBuffer"/> will
contain the empty string (that is, it contains <see cref="F:System.String.Empty"/>).</param>
<param name="startIndex">The position within <paramref name="value"/> where the substring begins.</param>
<param name="length">The number of characters in the substring.</param>
<param name="capacity">The suggested starting size of the <see cref="T:J2N.Text.StringBuffer"/>.</param>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="capacity"/> is less than zero.
<para/>
-or-
<para/>
<paramref name="startIndex"/> plus <paramref name="length"/> is not a position within <paramref name="value"/>.
</exception>
</member>
<member name="M:J2N.Text.StringBuffer.#ctor(System.Char[])">
<summary>
Initializes a new instance of the <see cref="T:J2N.Text.StringBuffer"/> class using the
specified character sequence.
</summary>
<param name="value">The character sequence used to initialize the value of the instance.
If <paramref name="value"/> is <c>null</c>, the new <see cref="T:J2N.Text.StringBuffer"/> will
contain the empty string (that is, it contains <see cref="F:System.String.Empty"/>).</param>
</member>
<member name="M:J2N.Text.StringBuffer.#ctor(System.Char[],System.Int32)">
<summary>
Initializes a new instance of the <see cref="T:J2N.Text.StringBuffer"/> class
using the specified subsequence and capacity.
</summary>
<param name="value">The string used to initialize the value of the instance.
If <paramref name="value"/> is <c>null</c>, the new <see cref="T:J2N.Text.StringBuffer"/> will
contain the empty string (that is, it contains <see cref="F:System.String.Empty"/>).</param>
<param name="capacity">The suggested starting size of the <see cref="T:J2N.Text.StringBuffer"/>.</param>
<exception cref="T:System.ArgumentOutOfRangeException"><paramref name="capacity"/> is less than zero.</exception>
</member>
<member name="M:J2N.Text.StringBuffer.#ctor(System.Char[],System.Int32,System.Int32,System.Int32)">
<summary>
Initializes a new instance of the <see cref="T:J2N.Text.StringBuffer"/> class
from the specified character array and capacity.
</summary>
<param name="value">The string used to initialize the value of the instance.
If <paramref name="value"/> is <c>null</c>, the new <see cref="T:J2N.Text.StringBuffer"/> will
contain the empty string (that is, it contains <see cref="F:System.String.Empty"/>).</param>
<param name="startIndex">The position within <paramref name="value"/> where the substring begins.</param>
<param name="length">The number of characters in the substring.</param>
<param name="capacity">The suggested starting size of the <see cref="T:J2N.Text.StringBuffer"/>.</param>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="capacity"/> is less than zero.
<para/>
-or-
<para/>
<paramref name="startIndex"/> plus <paramref name="length"/> is not a position within <paramref name="value"/>.
</exception>
</member>
<member name="M:J2N.Text.StringBuffer.#ctor(System.Int32,System.Int32)">
<summary>
Initializes a new instance of the <see cref="T:J2N.Text.StringBuffer"/> class that starts
with a specified capacity and can grow to a specified maximum.
</summary>
<param name="capacity">The suggested starting size of the <see cref="T:J2N.Text.StringBuffer"/>.</param>
<param name="maxCapacity">The maximum number of characters the current string can contain.</param>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="maxCapacity"/>is less than one, <paramref name="capacity"/> is less than zero,
or <paramref name="capacity"/> is greater than <paramref name="maxCapacity"/>.</exception>
</member>
<member name="M:J2N.Text.StringBuffer.#ctor(System.String,System.Int32)">
<summary>
Initializes a new instance of the <see cref="T:J2N.Text.StringBuffer"/> class
using the specified string and capacity.
</summary>
<param name="value">The string used to initialize the value of the instance.
If <paramref name="value"/> is <c>null</c>, the new <see cref="T:J2N.Text.StringBuffer"/> will
contain the empty string (that is, it contains <see cref="F:System.String.Empty"/>).</param>
<param name="capacity">The suggested starting size of the <see cref="T:J2N.Text.StringBuffer"/>.</param>
<exception cref="T:System.ArgumentOutOfRangeException"><paramref name="capacity"/> is less than zero.</exception>
</member>
<member name="M:J2N.Text.StringBuffer.#ctor(System.String,System.Int32,System.Int32,System.Int32)">
<summary>
Initializes a new instance of the <see cref="T:J2N.Text.StringBuffer"/> class
from the specified substring and capacity.
</summary>
<param name="value">The string used to initialize the value of the instance.
If <paramref name="value"/> is <c>null</c>, the new <see cref="T:J2N.Text.StringBuffer"/> will
contain the empty string (that is, it contains <see cref="F:System.String.Empty"/>).</param>
<param name="startIndex">The position within <paramref name="value"/> where the substring begins.</param>
<param name="length">The number of characters in the substring.</param>
<param name="capacity">The suggested starting size of the <see cref="T:J2N.Text.StringBuffer"/>.</param>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="capacity"/> is less than zero.
<para/>
-or-
<para/>
<paramref name="startIndex"/> plus <paramref name="length"/> is not a position within <paramref name="value"/>.
</exception>
</member>
<member name="P:J2N.Text.StringBuffer.SyncRoot">
<summary>
Gets an object that can be used to synchronize access to the <see cref="T:J2N.Text.StringBuffer"/>.
</summary>
</member>
<member name="P:J2N.Text.StringBuffer.Length">
<summary>
Gets or sets the length of the current <see cref="T:J2N.Text.StringBuffer"/> object.
</summary>
<exception cref="T:System.ArgumentOutOfRangeException">The value specified for a set
operation is less than zero or greater than <see cref="P:J2N.Text.StringBuffer.MaxCapacity"/>.</exception>
</member>
<member name="P:J2N.Text.StringBuffer.MaxCapacity">
<summary>
Gets the maximum capacity of this instance.
</summary>
</member>
<member name="P:J2N.Text.StringBuffer.Capacity">
<summary>
Gets or sets the maximum number of characters that can be contained
in the memory allocated by the current instance.
</summary>
<exception cref="T:System.ArgumentOutOfRangeException">
The value specified for a set operation is less than the current length of this instance.
<para/>
-or-
<para/>
The value specified for a set operation is greater than the maximum capacity.
</exception>
</member>
<member name="P:J2N.Text.StringBuffer.Item(System.Int32)">
<summary>
Gets or sets the character at the specified character position in this instance.
</summary>
<param name="index">The position of the character.</param>
<returns>The Unicode character at position <paramref name="index"/>.</returns>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="index"/> is outside the bounds of this instance while setting a character.
</exception>
<exception cref="T:System.IndexOutOfRangeException">
<paramref name="index"/> is outside the bounds of this instance while getting a character.
</exception>
</member>
<member name="M:J2N.Text.StringBuffer.CodePointAt(System.Int32)">
<summary>
Returns the code point at <paramref name="index"/> in the specified sequence of
character units. If the unit at <paramref name="index"/> is a high-surrogate unit,
<c><paramref name="index"/> + 1</c> is less than the length of the sequence and the unit at
<c><paramref name="index"/> + 1</c> is a low-surrogate unit, then the supplementary code
point represented by the pair is returned; otherwise the <see cref="T:System.Char"/>
value at <paramref name="index"/> is returned.
</summary>
<param name="index">The position in this instance from which to retrieve the code
point.</param>
<returns>The Unicode code point or <see cref="T:System.Char"/> value at <paramref name="index"/> in
this instance.</returns>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="index"/> is greater than or equal to <see cref="P:J2N.Text.StringBuffer.Length"/>.
<para/>
-or-
<para/>
<paramref name="index"/> is less than zero.
</exception>
</member>
<member name="M:J2N.Text.StringBuffer.CodePointBefore(System.Int32)">
<summary>
Returns the code point that precedes <paramref name="index"/> in the specified
sequence of character units. If the unit at <c><paramref name="index"/> - 1</c> is a
low-surrogate unit, <c><paramref name="index"/> - 2</c> is not negative and the unit at
<c><paramref name="index"/> - 2</c> is a high-surrogate unit, then the supplementary code
point represented by the pair is returned; otherwise the <see cref="T:System.Char"/>
value at <c><paramref name="index"/> - 1</c> is returned.
</summary>
<param name="index">The position in this instance following the code
point that should be returned.</param>
<returns>The Unicode code point or <see cref="T:System.Char"/> value before <paramref name="index"/>
in this instance.</returns>
<exception cref="T:System.ArgumentOutOfRangeException">If the <paramref name="index"/> is less than 1 or greater than
<see cref="P:J2N.Text.StringBuffer.Length"/>.</exception>
</member>
<member name="M:J2N.Text.StringBuffer.CodePointCount(System.Int32,System.Int32)">
<summary>
Returns the number of Unicode code points in the text range of the specified char sequence.
The text range begins at the specified <paramref name="startIndex"/> and extends for the number of characters specified in <paramref name="length"/>.
Unpaired surrogates within the text range count as one code point each.
<para/>
IMPORTANT: This method has .NET semantics. That is, the second parameter is a length rather than an exclusive end index. To convert from
Java, use <c>endIndex - startIndex</c> to obtain the length.
</summary>
<param name="startIndex">The index to the first char of the text range.</param>
<param name="length">The number of characters to consider in the count from this instance.</param>
<returns>The number of Unicode code points in the specified text range.</returns>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="startIndex"/> plus <paramref name="length"/> indicates a position not within this instance.
<para/>
-or-
<para/>
<paramref name="startIndex"/> or <paramref name="length"/> is less than zero.
</exception>
</member>
<member name="M:J2N.Text.StringBuffer.OffsetByCodePoints(System.Int32,System.Int32)">
<summary>
Returns the index within the given char sequence that is offset from the given <paramref name="index"/> by
<paramref name="codePointOffset"/> code points. Unpaired surrogates within the text range given by
<paramref name="index"/> and <paramref name="codePointOffset"/> count as one code point each.
</summary>
<param name="index">The index to be offset.</param>
<param name="codePointOffset">The number of code points to look backwards or forwards; may
be a negative or positive value.</param>
<returns>The index within the char sequence, offset by <paramref name="codePointOffset"/> code points.</returns>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="index"/> is less than zero or greater than the length of this instance.
<para/>
-or-
<para/>
<paramref name="codePointOffset"/> is positive and the subsequence starting with <paramref name="index"/> has fewer than
<paramref name="codePointOffset"/> code points.
<para/>
-or-
<para/>
<paramref name="codePointOffset"/> is negative and the subsequence before <paramref name="index"/> has fewer than
the absolute value of <paramref name="codePointOffset"/> code points.
</exception>
</member>
<member name="M:J2N.Text.StringBuffer.Append(System.ReadOnlySpan{System.Char})">
<summary>
Appends a copy of the specified <see cref="T:System.ReadOnlySpan`1"/> to this instance.
</summary>
<param name="value">The string to append.</param>
<returns>A reference to this instance after the append operation has completed.</returns>
<exception cref="T:System.ArgumentOutOfRangeException">Enlarging the value of this instance would exceed <see cref="P:J2N.Text.StringBuffer.MaxCapacity"/>.</exception>
</member>
<member name="M:J2N.Text.StringBuffer.Append(System.ReadOnlyMemory{System.Char})">
<summary>
Appends a copy of the specified <see cref="T:System.ReadOnlyMemory`1"/> to this instance.
</summary>
<param name="value">The string to append.</param>
<returns>A reference to this instance after the append operation has completed.</returns>
<exception cref="T:System.ArgumentOutOfRangeException">Enlarging the value of this instance would exceed <see cref="P:J2N.Text.StringBuffer.MaxCapacity"/>.</exception>
</member>
<member name="M:J2N.Text.StringBuffer.Append(System.Object)">
<summary>
Appends the string representation of a specified object to this instance.
</summary>
<param name="value">The object to append.</param>
<returns>A reference to this instance after the append operation has completed.</returns>
<exception cref="T:System.ArgumentOutOfRangeException">Enlarging the value of this instance would exceed <see cref="P:J2N.Text.StringBuffer.MaxCapacity"/>.</exception>
</member>
<member name="M:J2N.Text.StringBuffer.Append(System.String)">
<summary>
Appends a copy of the specified string to this instance.
</summary>
<param name="value">The string to append.</param>
<returns>A reference to this instance after the append operation has completed.</returns>
<exception cref="T:System.ArgumentOutOfRangeException">Enlarging the value of this instance would exceed <see cref="P:J2N.Text.StringBuffer.MaxCapacity"/>.</exception>
</member>
<member name="M:J2N.Text.StringBuffer.Append(System.String,System.Int32,System.Int32)">
<summary>
Appends a copy of a specified substring to this instance.
<para/>
IMPORTANT: This method has .NET semantics. That is, the fourth parameter is a count, not an exclusive end index as would be the
case in Java. To translate from Java, use <c>end - start</c> to resolve <paramref name="count"/>.
</summary>
<param name="value">The string that contains the substring to append.</param>
<param name="startIndex">The starting position of the substring within <paramref name="value"/>.</param>
<param name="count">The number of characters in <paramref name="value"/> to append.</param>
<returns>A reference to this instance after the append operation has completed.</returns>
<exception cref="T:System.ArgumentNullException"><paramref name="value"/> is <c>null</c>, and
<paramref name="startIndex"/> and <paramref name="count"/> are not zero.</exception>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="count"/> is less than zero.
<para/>
-or-
<para/>
<paramref name="startIndex"/> is less than zero.
<para/>
-or-
<para/>
<paramref name="startIndex"/> + <paramref name="count"/> is greater than the length of <paramref name="value"/>.
<para/>
-or-
<para/>
Enlarging the value of this instance would exceed <see cref="P:J2N.Text.StringBuffer.MaxCapacity"/>.
</exception>
</member>
<member name="M:J2N.Text.StringBuffer.Append(J2N.Text.StringBuffer)">
<summary>
Appends the string representation of the Unicode characters in a specified <see cref="T:J2N.Text.StringBuffer"/> to this instance.
<para/>
This method synchronizes on this (the destination)
object but does not synchronize on the source <paramref name="value"/>.
<para/>
NOTE: Unlike the Java implementation, this method does not add the word <c>"null"</c> to the <see cref="T:J2N.Text.StringBuffer"/>
if <paramref name="value"/> is <c>null</c>. Instead, no operation is performed.
</summary>
<param name="value">The <see cref="T:J2N.Text.StringBuffer"/> to append.</param>
<returns>A reference to this instance after the append operation has completed.</returns>
<exception cref="T:System.ArgumentOutOfRangeException">Enlarging the value of this instance would exceed <see cref="P:J2N.Text.StringBuffer.MaxCapacity"/>.</exception>
</member>
<member name="M:J2N.Text.StringBuffer.Append(J2N.Text.StringBuffer,System.Int32,System.Int32)">
<summary>
Appends the string representation of a specified subarray of Unicode characters to this instance.
<para/>
IMPORTANT: This method has .NET semantics. That is, the fourth parameter is a count, not an exclusive end index as would be the
case in Java. To translate from Java, use <c>end - start</c> to resolve <paramref name="charCount"/>.
</summary>
<param name="charSequence">The UTF-16-encoded code unit to append.</param>
<param name="startIndex">The starting position in <paramref name="charSequence"/>.</param>
<param name="charCount">The number of characters to append.</param>
<returns>A reference to this instance after the append operation has completed.</returns>
<exception cref="T:System.ArgumentNullException"><paramref name="charSequence"/> is <c>null</c>, and
<paramref name="startIndex"/> and <paramref name="charCount"/> are not zero.</exception>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="charCount"/> is less than zero.
<para/>
-or-
<para/>
<paramref name="startIndex"/> is less than zero.
<para/>
-or-
<para/>
<paramref name="startIndex"/> + <paramref name="charCount"/> is greater than the length of <paramref name="charSequence"/>.
<para/>
-or-
<para/>
Enlarging the value of this instance would exceed <see cref="P:J2N.Text.StringBuffer.MaxCapacity"/>.
</exception>
</member>
<member name="M:J2N.Text.StringBuffer.Append(System.Text.StringBuilder)">
<summary>
Appends the string representation of the Unicode characters in a specified <see cref="T:System.Text.StringBuilder"/> to this instance.
<para/>
NOTE: Unlike the Java implementation, this method does not add the word <c>"null"</c> to the <see cref="T:J2N.Text.StringBuffer"/>
if <paramref name="value"/> is <c>null</c>. Instead, no operation is performed.
</summary>
<param name="value">The <see cref="T:J2N.Text.StringBuffer"/> to append.</param>
<returns>A reference to this instance after the append operation has completed.</returns>
<exception cref="T:System.ArgumentOutOfRangeException">Enlarging the value of this instance would exceed <see cref="P:J2N.Text.StringBuffer.MaxCapacity"/>.</exception>
</member>
<member name="M:J2N.Text.StringBuffer.Append(System.Text.StringBuilder,System.Int32,System.Int32)">
<summary>
Appends the string representation of a specified subarray of Unicode characters to this instance.
<para/>
IMPORTANT: This method has .NET semantics. That is, the fourth parameter is a count, not an exclusive end index as would be the
case in Java. To translate from Java, use <c>end - start</c> to resolve <paramref name="charCount"/>.
</summary>
<param name="charSequence">The UTF-16-encoded code unit to append.</param>
<param name="startIndex">The starting position in <paramref name="charSequence"/>.</param>
<param name="charCount">The number of characters to append.</param>
<returns>A reference to this instance after the append operation has completed.</returns>
<exception cref="T:System.ArgumentNullException"><paramref name="charSequence"/> is <c>null</c>, and
<paramref name="startIndex"/> and <paramref name="charCount"/> are not zero.</exception>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="charCount"/> is less than zero.
<para/>
-or-
<para/>
<paramref name="startIndex"/> is less than zero.
<para/>
-or-
<para/>
<paramref name="startIndex"/> + <paramref name="charCount"/> is greater than the length of <paramref name="charSequence"/>.
<para/>
-or-
<para/>
Enlarging the value of this instance would exceed <see cref="P:J2N.Text.StringBuffer.MaxCapacity"/>.
</exception>
</member>
<member name="M:J2N.Text.StringBuffer.Append(J2N.Text.ICharSequence)">
<summary>
Appends the string representation of the Unicode characters in a specified sequence to this instance.
<para/>
This method synchronizes on this (the destination)
object but does not synchronize on the source <paramref name="charSequence"/>.
<para/>
NOTE: Unlike the Java implementation, this method does not add the word <c>"null"</c> to the <see cref="T:J2N.Text.StringBuffer"/>
if <paramref name="charSequence"/> is <c>null</c>. Instead, no operation is performed.
</summary>
<param name="charSequence">The sequence of characters to append.</param>
<returns>A reference to this instance after the append operation has completed.</returns>
<exception cref="T:System.ArgumentOutOfRangeException">Enlarging the value of this instance would exceed <see cref="P:J2N.Text.StringBuffer.MaxCapacity"/>.</exception>
</member>
<member name="M:J2N.Text.StringBuffer.Append(J2N.Text.ICharSequence,System.Int32,System.Int32)">
<summary>
Appends the string representation of a specified subarray of Unicode characters to this instance.
</summary>
<param name="charSequence">The UTF-16-encoded code unit to append.</param>
<param name="startIndex">The starting position in <paramref name="charSequence"/>.</param>
<param name="charCount">The number of characters to append.</param>
<returns>A reference to this instance after the append operation has completed.</returns>
<exception cref="T:System.ArgumentNullException"><paramref name="charSequence"/> is <c>null</c>, and
<paramref name="startIndex"/> and <paramref name="charCount"/> are not zero.</exception>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="charCount"/> is less than zero.
<para/>
-or-
<para/>
<paramref name="startIndex"/> is less than zero.
<para/>
-or-
<para/>
<paramref name="startIndex"/> + <paramref name="charCount"/> is greater than the length of <paramref name="charSequence"/>.
<para/>
-or-
<para/>
Enlarging the value of this instance would exceed <see cref="P:J2N.Text.StringBuffer.MaxCapacity"/>.
</exception>
</member>
<member name="M:J2N.Text.StringBuffer.Append(System.Char[])">
<summary>
Appends the string representation of the Unicode characters in a specified array to this instance.
</summary>
<param name="value">The array of characters to append.</param>
<returns>A reference to this instance after the append operation has completed.</returns>
<exception cref="T:System.ArgumentOutOfRangeException">Enlarging the value of this instance would exceed <see cref="P:J2N.Text.StringBuffer.MaxCapacity"/>.</exception>
</member>
<member name="M:J2N.Text.StringBuffer.Append(System.Char[],System.Int32,System.Int32)">
<summary>
Appends the string representation of a specified subarray of Unicode characters to this instance.
</summary>
<param name="value">The UTF-16-encoded code unit to append.</param>
<param name="startIndex">The starting position in <paramref name="value"/>.</param>
<param name="charCount">The number of characters to append.</param>
<returns>A reference to this instance after the append operation has completed.</returns>
<exception cref="T:System.ArgumentNullException"><paramref name="value"/> is <c>null</c>, and
<paramref name="startIndex"/> and <paramref name="charCount"/> are not zero.</exception>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="charCount"/> is less than zero.
<para/>
-or-
<para/>
<paramref name="startIndex"/> is less than zero.
<para/>
-or-
<para/>
<paramref name="startIndex"/> + <paramref name="charCount"/> is greater than the length of <paramref name="value"/>.
<para/>
-or-
<para/>
Enlarging the value of this instance would exceed <see cref="P:J2N.Text.StringBuffer.MaxCapacity"/>.
</exception>
</member>
<member name="M:J2N.Text.StringBuffer.Append(System.Boolean)">
<summary>
Appends the string representation of a specified Boolean value to this instance.
</summary>
<param name="value">The UTF-16-encoded code unit to append.</param>
<returns>A reference to this instance after the append operation has completed.</returns>
<exception cref="T:System.ArgumentOutOfRangeException">Enlarging the value of this instance would exceed <see cref="P:J2N.Text.StringBuffer.MaxCapacity"/>.</exception>
</member>
<member name="M:J2N.Text.StringBuffer.Append(System.Char)">
<summary>
Appends the string representation of a specified <see cref="T:System.Char"/> object to this instance.
</summary>
<param name="value">The UTF-16-encoded code unit to append.</param>
<returns>A reference to this instance after the append operation has completed.</returns>
<exception cref="T:System.ArgumentOutOfRangeException">Enlarging the value of this instance would exceed <see cref="P:J2N.Text.StringBuffer.MaxCapacity"/>.</exception>
</member>
<member name="M:J2N.Text.StringBuffer.Append(System.Char,System.Int32)">
<summary>
Appends a specified number of copies of the string representation of a Unicode character to this instance.
</summary>
<param name="value">The UTF-16-encoded code unit to append.</param>
<param name="repeatCount">The number of times to append <paramref name="value"/>.</param>
<returns>A reference to this instance after the append operation has completed.</returns>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="repeatCount"/> is less than zero.
<para/>
-or-
<para/>
Enlarging the value of this instance would exceed <see cref="P:J2N.Text.StringBuffer.MaxCapacity"/>.
</exception>
</member>
<member name="M:J2N.Text.StringBuffer.Append(System.Int32)">
<summary>
Appends the string representation of a specified 32-bit signed integer to this instance.
</summary>
<param name="value">The value to append.</param>
<returns>A reference to this instance after the append operation has completed.</returns>
<exception cref="T:System.ArgumentOutOfRangeException">Enlarging the value of this instance would exceed <see cref="P:J2N.Text.StringBuffer.MaxCapacity"/>.</exception>
</member>
<member name="M:J2N.Text.StringBuffer.Append(System.Int64)">
<summary>
Appends the string representation of a specified 64-bit signed integer to this instance.
</summary>
<param name="value">The value to append.</param>
<returns>A reference to this instance after the append operation has completed.</returns>
<exception cref="T:System.ArgumentOutOfRangeException">Enlarging the value of this instance would exceed <see cref="P:J2N.Text.StringBuffer.MaxCapacity"/>.</exception>
</member>
<member name="M:J2N.Text.StringBuffer.Append(System.Single)">
<summary>
Appends the string representation of a specified single-precision floating-point number to this instance.
</summary>
<param name="value">The value to append.</param>
<returns>A reference to this instance after the append operation has completed.</returns>
<exception cref="T:System.ArgumentOutOfRangeException">Enlarging the value of this instance would exceed <see cref="P:J2N.Text.StringBuffer.MaxCapacity"/>.</exception>
</member>
<member name="M:J2N.Text.StringBuffer.Append(System.Double)">
<summary>
Appends the string representation of a specified double-precision floating-point number to this instance.
</summary>
<param name="value">The value to append.</param>
<returns>A reference to this instance after the append operation has completed.</returns>
<exception cref="T:System.ArgumentOutOfRangeException">Enlarging the value of this instance would exceed <see cref="P:J2N.Text.StringBuffer.MaxCapacity"/>.</exception>
</member>
<member name="M:J2N.Text.StringBuffer.Append(System.Decimal)">
<summary>
Appends the string representation of a specified decimal number to this instance.
</summary>
<param name="value">The value to append.</param>
<returns>A reference to this instance after the append operation has completed.</returns>
<exception cref="T:System.ArgumentOutOfRangeException">Enlarging the value of this instance would exceed <see cref="P:J2N.Text.StringBuffer.MaxCapacity"/>.</exception>
</member>
<member name="M:J2N.Text.StringBuffer.Append(System.Byte)">
<summary>
Appends the string representation of a specified 8-bit unsigned integer to this instance.
</summary>
<param name="value">The value to append.</param>
<returns>A reference to this instance after the append operation has completed.</returns>
<exception cref="T:System.ArgumentOutOfRangeException">Enlarging the value of this instance would exceed <see cref="P:J2N.Text.StringBuffer.MaxCapacity"/>.</exception>
</member>
<member name="M:J2N.Text.StringBuffer.Append(System.SByte)">
<summary>
Appends the string representation of a specified 8-bit signed integer to this instance.
</summary>
<param name="value">The value to append.</param>
<returns>A reference to this instance after the append operation has completed.</returns>
<exception cref="T:System.ArgumentOutOfRangeException">Enlarging the value of this instance would exceed <see cref="P:J2N.Text.StringBuffer.MaxCapacity"/>.</exception>
</member>
<member name="M:J2N.Text.StringBuffer.Append(System.Int16)">
<summary>
Appends the string representation of a specified 16-bit signed integer to this instance.
</summary>
<param name="value">The value to append.</param>
<returns>A reference to this instance after the append operation has completed.</returns>
<exception cref="T:System.ArgumentOutOfRangeException">Enlarging the value of this instance would exceed <see cref="P:J2N.Text.StringBuffer.MaxCapacity"/>.</exception>
</member>
<member name="M:J2N.Text.StringBuffer.Append(System.UInt32)">
<summary>
Appends the string representation of a specified 32-bit unsigned integer to this instance.
</summary>
<param name="value">The value to append.</param>
<returns>A reference to this instance after the append operation has completed.</returns>
<exception cref="T:System.ArgumentOutOfRangeException">Enlarging the value of this instance would exceed <see cref="P:J2N.Text.StringBuffer.MaxCapacity"/>.</exception>
</member>
<member name="M:J2N.Text.StringBuffer.Append(System.UInt64)">
<summary>
Appends the string representation of a specified 64-bit unsigned integer to this instance.
</summary>
<param name="value">The value to append.</param>
<returns>A reference to this instance after the append operation has completed.</returns>
<exception cref="T:System.ArgumentOutOfRangeException">Enlarging the value of this instance would exceed <see cref="P:J2N.Text.StringBuffer.MaxCapacity"/>.</exception>
</member>
<member name="M:J2N.Text.StringBuffer.Append(System.UInt16)">
<summary>
Appends the string representation of a specified 16-bit unsigned integer to this instance.
</summary>
<param name="value">The value to append.</param>
<returns>A reference to this instance after the append operation has completed.</returns>
<exception cref="T:System.ArgumentOutOfRangeException">Enlarging the value of this instance would exceed <see cref="P:J2N.Text.StringBuffer.MaxCapacity"/>.</exception>
</member>
<member name="M:J2N.Text.StringBuffer.AppendCodePoint(System.Int32)">
<summary>
Appends the string representation of the <paramref name="codePoint"/>
argument to this sequence.
<para>
The argument is appended to the contents of this sequence.
The length of this sequence increases by <see cref="M:J2N.Character.CharCount(System.Int32)"/>.
</para>
<para>
The overall effect is exactly as if the argument were
converted to a <see cref="T:System.Char"/> array by the method
<see cref="M:J2N.Character.ToChars(System.Int32)"/> and the character in that array
were then <see cref="M:System.Text.StringBuilder.Append(System.Char[])">appended</see> to this
<see cref="T:System.Text.StringBuilder"/>.
</para>
</summary>
<param name="codePoint">A Unicode code point</param>
<returns>This <see cref="T:System.Text.StringBuilder"/>, for chaining.</returns>
</member>
<member name="M:J2N.Text.StringBuffer.AppendFormat(System.String,System.Object)">
<summary>
Appends the string returned by processing a composite format string,
which contains zero or more format items, to this instance. Each
format item is replaced by the string representation of a single argument.
</summary>
<param name="format">A composite format string.</param>
<param name="arg0">An object to format.</param>
<returns>A reference to this instance with <paramref name="format"/> appended.
Each format item in <paramref name="format"/> is replaced by the string
representation of <paramref name="arg0"/>.</returns>
<exception cref="T:System.ArgumentNullException"><paramref name="format"/> is <c>null</c>.</exception>
<exception cref="T:System.FormatException">
<paramref name="format"/> is invalid.
<para/>
-or-
<para/>
The index of a format item is less than 0 (zero), or greater than or equal to 1 (one).
</exception>
<exception cref="T:System.ArgumentOutOfRangeException">The length of the expanded string would exceed <see cref="P:J2N.Text.StringBuffer.MaxCapacity"/>.</exception>
</member>
<member name="M:J2N.Text.StringBuffer.AppendFormat(System.IFormatProvider,System.String,System.Object)">
<summary>
Appends the string returned by processing a composite format string,
which contains zero or more format items, to this instance. Each
format item is replaced by the string representation of a single
argument using a specified format provider.
</summary>
<param name="provider">An object that supplies culture-specific formatting information.</param>
<param name="format">A composite format string.</param>
<param name="arg0">An object to format.</param>
<returns>A reference to this instance with <paramref name="format"/> appended.
After the append operation, this instance contains any data that existed before
the operation, suffixed by a copy of <paramref name="format"/> in which any format specification
is replaced by the string representation of <paramref name="arg0"/>.</returns>
<exception cref="T:System.ArgumentNullException"><paramref name="format"/> is <c>null</c>.</exception>
<exception cref="T:System.FormatException">
<paramref name="format"/> is invalid.
<para/>
-or-
<para/>
The index of a format item is less than 0 (zero), or greater than or equal to 1 (one).
</exception>
<exception cref="T:System.ArgumentOutOfRangeException">The length of the expanded string would exceed <see cref="P:J2N.Text.StringBuffer.MaxCapacity"/>.</exception>
</member>
<member name="M:J2N.Text.StringBuffer.AppendFormat(System.String,System.Object,System.Object)">
<summary>
Appends the string returned by processing a composite format string,
which contains zero or more format items, to this instance. Each
format item is replaced by the string representation of either of two arguments.
</summary>
<param name="format">A composite format string.</param>
<param name="arg0">The first object to format.</param>
<param name="arg1">The second object to format.</param>
<returns>A reference to this instance with <paramref name="format"/> appended.
Each format item in <paramref name="format"/> is replaced by the string
representation of the corresponding object argument.</returns>
<exception cref="T:System.ArgumentNullException"><paramref name="format"/> is <c>null</c>.</exception>
<exception cref="T:System.FormatException">
<paramref name="format"/> is invalid.
<para/>
-or-
<para/>
The index of a format item is less than 0 (zero), or greater than or equal to 2 (two).
</exception>
<exception cref="T:System.ArgumentOutOfRangeException">The length of the expanded string would exceed <see cref="P:J2N.Text.StringBuffer.MaxCapacity"/>.</exception>
</member>
<member name="M:J2N.Text.StringBuffer.AppendFormat(System.IFormatProvider,System.String,System.Object,System.Object)">
<summary>
Appends the string returned by processing a composite format string,
which contains zero or more format items, to this instance. Each
format item is replaced by the string representation of either
of two arguments using a specified format provider.
</summary>
<param name="provider">An object that supplies culture-specific formatting information.</param>
<param name="format">A composite format string.</param>
<param name="arg0">The first object to format.</param>
<param name="arg1">The second object to format.</param>
<returns>A reference to this instance with <paramref name="format"/> appended.
After the append operation, this instance contains any data that existed before
the operation, suffixed by a copy of <paramref name="format"/> in which any format specification
is replaced by the string representation of the corresponding object argument.</returns>
<exception cref="T:System.ArgumentNullException"><paramref name="format"/> is <c>null</c>.</exception>
<exception cref="T:System.FormatException">
<paramref name="format"/> is invalid.
<para/>
-or-
<para/>
The index of a format item is less than 0 (zero), or greater than or equal to 2 (two).
</exception>
<exception cref="T:System.ArgumentOutOfRangeException">The length of the expanded string would exceed <see cref="P:J2N.Text.StringBuffer.MaxCapacity"/>.</exception>
</member>
<member name="M:J2N.Text.StringBuffer.AppendFormat(System.String,System.Object,System.Object,System.Object)">
<summary>
Appends the string returned by processing a composite format string,
which contains zero or more format items, to this instance. Each
format item is replaced by the string representation of any of three arguments.
</summary>
<param name="format">A composite format string.</param>
<param name="arg0">The first object to format.</param>
<param name="arg1">The second object to format.</param>
<param name="arg2">The third object to format.</param>
<returns>A reference to this instance with <paramref name="format"/> appended.
Each format item in <paramref name="format"/> is replaced by the string
representation of the corresponding object argument.</returns>
<exception cref="T:System.ArgumentNullException"><paramref name="format"/> is <c>null</c>.</exception>
<exception cref="T:System.FormatException">
<paramref name="format"/> is invalid.
<para/>
-or-
<para/>
The index of a format item is less than 0 (zero), or greater than or equal to 3 (three).
</exception>
<exception cref="T:System.ArgumentOutOfRangeException">The length of the expanded string would exceed <see cref="P:J2N.Text.StringBuffer.MaxCapacity"/>.</exception>
</member>
<member name="M:J2N.Text.StringBuffer.AppendFormat(System.IFormatProvider,System.String,System.Object,System.Object,System.Object)">
<summary>
Appends the string returned by processing a composite format string,
which contains zero or more format items, to this instance. Each
format item is replaced by the string representation of any
of three arguments using a specified format provider.
</summary>
<param name="provider">An object that supplies culture-specific formatting information.</param>
<param name="format">A composite format string.</param>
<param name="arg0">The first object to format.</param>
<param name="arg1">The second object to format.</param>
<param name="arg2">The third object to format.</param>
<returns>A reference to this instance with <paramref name="format"/> appended.
After the append operation, this instance contains any data that existed before
the operation, suffixed by a copy of <paramref name="format"/> in which any format specification
is replaced by the string representation of the corresponding object argument.</returns>
<exception cref="T:System.ArgumentNullException"><paramref name="format"/> is <c>null</c>.</exception>
<exception cref="T:System.FormatException">
<paramref name="format"/> is invalid.
<para/>
-or-
<para/>
The index of a format item is less than 0 (zero), or greater than or equal to 3 (three).
</exception>
<exception cref="T:System.ArgumentOutOfRangeException">The length of the expanded string would exceed <see cref="P:J2N.Text.StringBuffer.MaxCapacity"/>.</exception>
</member>
<member name="M:J2N.Text.StringBuffer.AppendFormat(System.String,System.Object[])">
<summary>
Appends the string returned by processing a composite format string,
which contains zero or more format items, to this instance. Each format
item is replaced by the string representation of a corresponding argument
in a parameter array.
</summary>
<param name="format">A composite format string.</param>
<param name="args">An array of objects to format.</param>
<returns>A reference to this instance with <paramref name="format"/> appended.
Each format item in <paramref name="format"/> is replaced by the string representation
of the corresponding object argument.</returns>
<exception cref="T:System.ArgumentNullException"><paramref name="format"/> or <paramref name="args"/> is <c>null</c>.</exception>
<exception cref="T:System.FormatException">
<paramref name="format"/> is invalid.
<para/>
-or-
<para/>
The index of a format item is less than 0 (zero), or greater than or equal to the
length of the <paramref name="args"/> array.
</exception>
<exception cref="T:System.ArgumentOutOfRangeException">The length of the expanded string would exceed <see cref="P:J2N.Text.StringBuffer.MaxCapacity"/>.</exception>
</member>
<member name="M:J2N.Text.StringBuffer.AppendFormat(System.IFormatProvider,System.String,System.Object[])">
<summary>
Appends the string returned by processing a composite format string, which contains zero or
more format items, to this instance. Each format item is replaced by the string representation
of a corresponding argument in a parameter array using a specified format provider.
</summary>
<param name="provider">An object that supplies culture-specific formatting information.</param>
<param name="format">A composite format string.</param>
<param name="args">An array of objects to format.</param>
<returns>A reference to this instance with <paramref name="format"/> appended.
After the append operation, this instance contains any data that existed before
the operation, suffixed by a copy of <paramref name="format"/> where any format specification is
replaced by the string representation of the corresponding object argument.</returns>
<exception cref="T:System.ArgumentNullException"><paramref name="format"/> is <c>null</c>.</exception>
<exception cref="T:System.FormatException">
<paramref name="format"/> is invalid.
<para/>
-or-
<para/>
The index of a format item is less than 0 (zero), or greater than or equal to the
length of the <paramref name="args"/> array.
</exception>
<exception cref="T:System.ArgumentOutOfRangeException">The length of the expanded string would exceed <see cref="P:J2N.Text.StringBuffer.MaxCapacity"/>.</exception>
</member>
<member name="M:J2N.Text.StringBuffer.AppendLine">
<summary>
Appends the default line terminator to the end of the current <see cref="T:J2N.Text.StringBuffer"/> object.
</summary>
<remarks>
The default line terminator is the current value of the <see cref="P:System.Environment.NewLine"/> property.
<para/>
The capacity of this instance is adjusted as needed.
</remarks>
<returns>A reference to this instance after the append operation has completed.</returns>
<exception cref="T:System.ArgumentOutOfRangeException">Enlarging the value of this instance would exceed <see cref="P:J2N.Text.StringBuffer.MaxCapacity"/>.</exception>
</member>
<member name="M:J2N.Text.StringBuffer.AppendLine(System.String)">
<summary>
Appends a copy of the specified string followed by the default line
terminator to the end of the current <see cref="T:J2N.Text.StringBuffer"/> object.
</summary>
<remarks>
The default line terminator is the current value of the <see cref="P:System.Environment.NewLine"/> property.
<para/>
The capacity of this instance is adjusted as needed.
</remarks>
<param name="value">The string to append.</param>
<returns>A reference to this instance after the append operation has completed.</returns>
<exception cref="T:System.ArgumentOutOfRangeException">Enlarging the value of this instance would exceed <see cref="P:J2N.Text.StringBuffer.MaxCapacity"/>.</exception>
</member>
<member name="M:J2N.Text.StringBuffer.Clear">
<summary>
Removes all characters from the current <see cref="T:J2N.Text.StringBuffer"/> instance.
</summary>
<returns>An object whose <see cref="P:J2N.Text.StringBuffer.Length"/> is 0 (zero).</returns>
</member>
<member name="M:J2N.Text.StringBuffer.CopyTo(System.Int32,System.Char[],System.Int32,System.Int32)">
<summary>
Copies the characters from a specified segment of this instance to a specified segment of a destination <see cref="T:System.Char"/> array.
</summary>
<param name="sourceIndex">The starting position in this instance where characters will be copied from. The index is zero-based.</param>
<param name="destination">The array where characters will be copied.</param>
<param name="destinationIndex">The starting position in <paramref name="destination"/> where characters will be copied. The index is zero-based.</param>
<param name="count">The number of characters to be copied.</param>
<exception cref="T:System.ArgumentNullException">If <paramref name="destination"/> is <c>null</c>.</exception>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="sourceIndex"/>, <paramref name="destinationIndex"/>, or count, is less than zero.
<para/>
-or-
<para/>
<paramref name="sourceIndex"/> is greater than the length of this instance.
</exception>
<exception cref="T:System.ArgumentException">
<paramref name="sourceIndex"/> + <paramref name="count"/> is greater than the length of this instance.
<para/>
-or-
<para/>
<paramref name="destinationIndex"/> + <paramref name="count"/> is greater than the length of <paramref name="destination"/>.
</exception>
</member>
<member name="M:J2N.Text.StringBuffer.CopyTo(System.Int32,System.Span{System.Char},System.Int32)">
<summary>
Copies the characters from a specified segment of this instance to a destination Char span.
</summary>
<param name="sourceIndex">The starting position in this instance where characters will be copied
from. The index is zero-based.</param>
<param name="destination">The writable span where characters will be copied.</param>
<param name="count">The number of characters to be copied.</param>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="sourceIndex"/> or <paramref name="count"/> is less than zero.
<para/>
-or-
<para/>
<paramref name="sourceIndex"/> is greater than the length of this instance.
</exception>
<exception cref="T:System.ArgumentException">
<paramref name="sourceIndex"/> + <paramref name="count"/> is greater than the length of this instance.
<para/>
-or-
<para/>
<paramref name="count"/> is greater than the length of <paramref name="destination"/>.
</exception>
</member>
<member name="M:J2N.Text.StringBuffer.Delete(System.Int32,System.Int32)">
<summary>
Deletes a sequence of characters specified by <paramref name="startIndex"/> and <paramref name="count"/>.
Shifts any remaining characters to the left.
<para/>
Usage Note: This method has .NET semantics. That is, the 3rd parameter is a count rather than
an exclusive end index. To translate from Java, use <c>end - start</c> for <paramref name="count"/>.
<para/>
This method differs from <see cref="M:System.Text.StringBuilder.Remove(System.Int32,System.Int32)"/> in that it will automatically
adjust the <paramref name="count"/> if <c><paramref name="startIndex"/> + <paramref name="count"/> > <see cref="P:J2N.Text.StringBuffer.Length"/></c>
to <c><see cref="P:J2N.Text.StringBuffer.Length"/> - <paramref name="startIndex"/>.</c>, provided it is not bounded by <see cref="P:J2N.Text.StringBuffer.MaxCapacity"/>.
</summary>
<param name="startIndex">The start index in this instance.</param>
<param name="count">The number of characters to delete in this instance.</param>
<returns>This <see cref="T:System.Text.StringBuilder"/>, for chaining.</returns>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="startIndex"/> or <paramref name="count"/> is less than zero.
<para/>
-or-
<para/>
<paramref name="startIndex"/> is greater than or equal to <see cref="P:J2N.Text.StringBuffer.Length"/>.
</exception>
</member>
<member name="M:J2N.Text.StringBuffer.EnsureCapacity(System.Int32)">
<summary>
Ensures that the capacity of this instance of <see cref="T:J2N.Text.StringBuffer"/>
is at least the specified value.
</summary>
<param name="capacity">The minimum capacity to ensure.</param>
<returns>The new capacity of this instance.</returns>
</member>
<member name="M:J2N.Text.StringBuffer.Equals(J2N.Text.StringBuilderCharSequence)">
<summary>
Returns a value indicating whether this instance is equal to a specified object.
</summary>
<param name="other">An object to compare with this instance, or <c>null</c>.</param>
<returns><c>true</c> if this instance and sb have equal string, <see cref="P:J2N.Text.StringBuffer.Capacity"/>,
and <see cref="P:J2N.Text.StringBuffer.MaxCapacity"/> values; otherwise, <c>false</c>.</returns>
</member>
<member name="M:J2N.Text.StringBuffer.Equals(System.Text.StringBuilder)">
<summary>
Returns a value indicating whether this instance is equal to a specified object.
</summary>
<param name="other">An object to compare with this instance, or <c>null</c>.</param>
<returns><c>true</c> if this instance and sb have equal string, <see cref="P:J2N.Text.StringBuffer.Capacity"/>,
and <see cref="P:J2N.Text.StringBuffer.MaxCapacity"/> values; otherwise, <c>false</c>.</returns>
</member>
<member name="M:J2N.Text.StringBuffer.Equals(J2N.Text.StringBuffer)">
<summary>
Returns a value indicating whether this instance is equal to a specified object.
</summary>
<param name="other">An object to compare with this instance, or <c>null</c>.</param>
<returns><c>true</c> if this instance and sb have equal string, <see cref="P:J2N.Text.StringBuffer.Capacity"/>,
and <see cref="P:J2N.Text.StringBuffer.MaxCapacity"/> values; otherwise, <c>false</c>.</returns>
</member>
<member name="M:J2N.Text.StringBuffer.Equals(System.Object)">
<summary>
Returns a value indicating whether this instance is equal to a specified object.
</summary>
<param name="obj">An object to compare with this instance, or <c>null</c>.</param>
<returns><c>true</c> if this instance and sb have equal string, <see cref="P:J2N.Text.StringBuffer.Capacity"/>,
and <see cref="P:J2N.Text.StringBuffer.MaxCapacity"/> values; otherwise, <c>false</c>.</returns>
</member>
<member name="M:J2N.Text.StringBuffer.GetHashCode">
<summary>
Returns a hash code for the builder.
</summary>
<returns>A hash code for the builder.</returns>
</member>
<member name="M:J2N.Text.StringBuffer.Insert(System.Int32,System.ReadOnlySpan{System.Char})">
<summary>
Inserts the string representation of a <see cref="T:System.ReadOnlySpan`1"/> value into this instance at the specified character position.
</summary>
<param name="index">The position in this instance where insertion begins.</param>
<param name="value">The value to insert.</param>
<returns>A reference to this instance after the operation has completed.</returns>
<exception cref="T:System.ArgumentOutOfRangeException"><paramref name="index"/> is less than zero or greater than the length of this instance.</exception>
<exception cref="T:System.OutOfMemoryException">Enlarging the value of this instance would exceed <see cref="P:J2N.Text.StringBuffer.MaxCapacity"/>.</exception>
</member>
<member name="M:J2N.Text.StringBuffer.Insert(System.Int32,System.Boolean)">
<summary>
Inserts the string representation of a Boolean value into this instance at the specified character position.
</summary>
<param name="index">The position in this instance where insertion begins.</param>
<param name="value">The value to insert.</param>
<returns>A reference to this instance after the operation has completed.</returns>
<exception cref="T:System.ArgumentOutOfRangeException"><paramref name="index"/> is less than zero or greater than the length of this instance.</exception>
<exception cref="T:System.OutOfMemoryException">Enlarging the value of this instance would exceed <see cref="P:J2N.Text.StringBuffer.MaxCapacity"/>.</exception>
</member>
<member name="M:J2N.Text.StringBuffer.Insert(System.Int32,System.Byte)">
<summary>
Inserts the string representation of a specified 8-bit unsigned integer into this instance at the specified character position.
</summary>
<param name="index">The position in this instance where insertion begins.</param>
<param name="value">The value to insert.</param>
<returns>A reference to this instance after the operation has completed.</returns>
<exception cref="T:System.ArgumentOutOfRangeException"><paramref name="index"/> is less than zero or greater than the length of this instance.</exception>
<exception cref="T:System.OutOfMemoryException">Enlarging the value of this instance would exceed <see cref="P:J2N.Text.StringBuffer.MaxCapacity"/>.</exception>
</member>
<member name="M:J2N.Text.StringBuffer.Insert(System.Int32,System.Char)">
<summary>
Inserts the string representation of a specified Unicode character into this instance at the specified character position.
</summary>
<param name="index">The position in this instance where insertion begins.</param>
<param name="value">The character array to insert.</param>
<returns>A reference to this instance after the operation has completed.</returns>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="index"/> is less than zero or greater than the length of this instance.
<para/>
-or-
<para/>
Enlarging the value of this instance would exceed <see cref="P:J2N.Text.StringBuffer.MaxCapacity"/>.
</exception>
</member>
<member name="M:J2N.Text.StringBuffer.Insert(System.Int32,System.Char[])">
<summary>
Inserts the string representation of a specified array of Unicode characters into this instance at the specified character position.
</summary>
<param name="index">The position in this instance where insertion begins.</param>
<param name="value">The character array to insert.</param>
<returns>A reference to this instance after the operation has completed.</returns>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="index"/> is less than zero or greater than the length of this instance.
<para/>
-or-
<para/>
Enlarging the value of this instance would exceed <see cref="P:J2N.Text.StringBuffer.MaxCapacity"/>.
</exception>
</member>
<member name="M:J2N.Text.StringBuffer.Insert(System.Int32,System.Char[],System.Int32,System.Int32)">
<summary>
Inserts the string representation of a specified subarray of Unicode characters into this instance at the specified character position.
</summary>
<param name="index">The position in this instance where insertion begins.</param>
<param name="value">A character array.</param>
<param name="startIndex">The starting index within <paramref name="value"/>.</param>
<param name="charCount">The number of characters to insert.</param>
<returns>A reference to this instance after the operation has completed.</returns>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="index"/>, <paramref name="startIndex"/> or <paramref name="charCount"/> is less than zero.
<para/>
-or-
<para/>
<paramref name="index"/> is greater than the length of this instance.
<para/>
-or-
<para/>
<paramref name="startIndex"/> plus <paramref name="charCount"/> is not a position within <paramref name="value"/>.
<para/>
-or-
<para/>
Enlarging the value of this instance would exceed <see cref="P:J2N.Text.StringBuffer.MaxCapacity"/>.
</exception>
</member>
<member name="M:J2N.Text.StringBuffer.Insert(System.Int32,J2N.Text.ICharSequence)">
<summary>
Inserts the string representation of a specified sequence of Unicode characters into this instance at the specified character position.
</summary>
<param name="index">The position in this instance where insertion begins.</param>
<param name="charSequence">The character sequence to insert.</param>
<returns>A reference to this instance after the operation has completed.</returns>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="index"/> is less than zero or greater than the length of this instance.
<para/>
-or-
<para/>
Enlarging the value of this instance would exceed <see cref="P:J2N.Text.StringBuffer.MaxCapacity"/>.
</exception>
</member>
<member name="M:J2N.Text.StringBuffer.Insert(System.Int32,J2N.Text.ICharSequence,System.Int32,System.Int32)">
<summary>
Inserts the string representation of a specified subarray of Unicode characters into this instance at the specified character position.
<para/>
IMPORTANT: This method has .NET semantics. That is, the fourth parameter is a count, not an exclusive end index as would be the
case in Java. To translate from Java, use <c>end - start</c> to resolve <paramref name="charCount"/>.
</summary>
<param name="index">The position in this instance where insertion begins.</param>
<param name="charSequence">A character array.</param>
<param name="startIndex">The starting index within <paramref name="charSequence"/>.</param>
<param name="charCount">The number of characters to insert.</param>
<returns>A reference to this instance after the operation has completed.</returns>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="index"/>, <paramref name="startIndex"/> or <paramref name="charCount"/> is less than zero.
<para/>
-or-
<para/>
<paramref name="index"/> is greater than the length of this instance.
<para/>
-or-
<para/>
<paramref name="startIndex"/> plus <paramref name="charCount"/> is not a position within <paramref name="charSequence"/>.
<para/>
-or-
<para/>
Enlarging the value of this instance would exceed <see cref="P:J2N.Text.StringBuffer.MaxCapacity"/>.
</exception>
</member>
<member name="M:J2N.Text.StringBuffer.Insert(System.Int32,System.Text.StringBuilder)">
<summary>
Inserts the string representation of a specified sequence of Unicode characters into this instance at the specified character position.
</summary>
<param name="index">The position in this instance where insertion begins.</param>
<param name="charSequence">The character sequence to insert.</param>
<returns>A reference to this instance after the operation has completed.</returns>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="index"/> is less than zero or greater than the length of this instance.
<para/>
-or-
<para/>
Enlarging the value of this instance would exceed <see cref="P:J2N.Text.StringBuffer.MaxCapacity"/>.
</exception>
</member>
<member name="M:J2N.Text.StringBuffer.Insert(System.Int32,System.Text.StringBuilder,System.Int32,System.Int32)">
<summary>
Inserts the string representation of a specified subarray of Unicode characters into this instance at the specified character position.
<para/>
IMPORTANT: This method has .NET semantics. That is, the fourth parameter is a count, not an exclusive end index as would be the
case in Java. To translate from Java, use <c>end - start</c> to resolve <paramref name="charCount"/>.
</summary>
<param name="index">The position in this instance where insertion begins.</param>
<param name="charSequence">A character array.</param>
<param name="startIndex">The starting index within <paramref name="charSequence"/>.</param>
<param name="charCount">The number of characters to insert.</param>
<returns>A reference to this instance after the operation has completed.</returns>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="index"/>, <paramref name="startIndex"/> or <paramref name="charCount"/> is less than zero.
<para/>
-or-
<para/>
<paramref name="index"/> is greater than the length of this instance.
<para/>
-or-
<para/>
<paramref name="startIndex"/> plus <paramref name="charCount"/> is not a position within <paramref name="charSequence"/>.
<para/>
-or-
<para/>
Enlarging the value of this instance would exceed <see cref="P:J2N.Text.StringBuffer.MaxCapacity"/>.
</exception>
</member>
<member name="M:J2N.Text.StringBuffer.Insert(System.Int32,System.String)">
<summary>
Inserts one or more copies of a specified string into this instance at the specified character position.
</summary>
<param name="index">The position in this instance where insertion begins.</param>
<param name="value">The string to insert.</param>
<returns>A reference to this instance after the operation has completed.</returns>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="index"/> is less than zero or greater than the length of this instance.
<para/>
-or-
<para/>
Enlarging the value of this instance would exceed <see cref="P:J2N.Text.StringBuffer.MaxCapacity"/>.
</exception>
</member>
<member name="M:J2N.Text.StringBuffer.Insert(System.Int32,System.String,System.Int32,System.Int32)">
<summary>
Inserts the string representation of a specified subarray of Unicode characters into this instance at the specified character position.
<para/>
IMPORTANT: This method has .NET semantics. That is, the fourth parameter is a count, not an exclusive end index as would be the
case in Java. To translate from Java, use <c>end - start</c> to resolve <paramref name="charCount"/>.
</summary>
<param name="index">The position in this instance where insertion begins.</param>
<param name="value">A character array.</param>
<param name="startIndex">The starting index within <paramref name="value"/>.</param>
<param name="charCount">The number of characters to insert.</param>
<returns>A reference to this instance after the operation has completed.</returns>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="index"/>, <paramref name="startIndex"/> or <paramref name="charCount"/> is less than zero.
<para/>
-or-
<para/>
<paramref name="index"/> is greater than the length of this instance.
<para/>
-or-
<para/>
<paramref name="startIndex"/> plus <paramref name="charCount"/> is not a position within <paramref name="value"/>.
<para/>
-or-
<para/>
Enlarging the value of this instance would exceed <see cref="P:J2N.Text.StringBuffer.MaxCapacity"/>.
</exception>
</member>
<member name="M:J2N.Text.StringBuffer.Insert(System.Int32,System.String,System.Int32)">
<summary>
Inserts a string into this instance at the specified character position.
</summary>
<param name="index">The position in this instance where insertion begins.</param>
<param name="value">The string to insert.</param>
<param name="count">The number of times to insert <paramref name="value"/>.</param>
<returns>A reference to this instance after the operation has completed.</returns>
<exception cref="T:System.ArgumentOutOfRangeException"><paramref name="index"/> is less than zero or greater than the length of this instance.</exception>
<exception cref="T:System.OutOfMemoryException">Enlarging the value of this instance would exceed <see cref="P:J2N.Text.StringBuffer.MaxCapacity"/>.</exception>
</member>
<member name="M:J2N.Text.StringBuffer.Insert(System.Int32,System.Object)">
<summary>
Inserts the string representation of an object into this instance at the specified character position.
</summary>
<param name="index">The position in this instance where insertion begins.</param>
<param name="value">The value to insert.</param>
<returns>A reference to this instance after the operation has completed.</returns>
<exception cref="T:System.ArgumentOutOfRangeException"><paramref name="index"/> is less than zero or greater than the length of this instance.</exception>
<exception cref="T:System.OutOfMemoryException">Enlarging the value of this instance would exceed <see cref="P:J2N.Text.StringBuffer.MaxCapacity"/>.</exception>
</member>
<member name="M:J2N.Text.StringBuffer.Insert(System.Int32,System.Int32)">
<summary>
Inserts the string representation of a specified 32-bit signed integer into this instance at the specified character position.
</summary>
<param name="index">The position in this instance where insertion begins.</param>
<param name="value">The value to insert.</param>
<returns>A reference to this instance after the operation has completed.</returns>
<exception cref="T:System.ArgumentOutOfRangeException"><paramref name="index"/> is less than zero or greater than the length of this instance.</exception>
<exception cref="T:System.OutOfMemoryException">Enlarging the value of this instance would exceed <see cref="P:J2N.Text.StringBuffer.MaxCapacity"/>.</exception>
</member>
<member name="M:J2N.Text.StringBuffer.Insert(System.Int32,System.Int64)">
<summary>
Inserts the string representation of a specified 64-bit signed integer into this instance at the specified character position.
</summary>
<param name="index">The position in this instance where insertion begins.</param>
<param name="value">The value to insert.</param>
<returns>A reference to this instance after the operation has completed.</returns>
<exception cref="T:System.ArgumentOutOfRangeException"><paramref name="index"/> is less than zero or greater than the length of this instance.</exception>
<exception cref="T:System.OutOfMemoryException">Enlarging the value of this instance would exceed <see cref="P:J2N.Text.StringBuffer.MaxCapacity"/>.</exception>
</member>
<member name="M:J2N.Text.StringBuffer.Insert(System.Int32,System.Int16)">
<summary>
Inserts the string representation of a specified 16-bit signed integer into this instance at the specified character position.
</summary>
<param name="index">The position in this instance where insertion begins.</param>
<param name="value">The value to insert.</param>
<returns>A reference to this instance after the operation has completed.</returns>
<exception cref="T:System.ArgumentOutOfRangeException"><paramref name="index"/> is less than zero or greater than the length of this instance.</exception>
<exception cref="T:System.OutOfMemoryException">Enlarging the value of this instance would exceed <see cref="P:J2N.Text.StringBuffer.MaxCapacity"/>.</exception>
</member>
<member name="M:J2N.Text.StringBuffer.Insert(System.Int32,System.Single)">
<summary>
Inserts the string representation of a single-precision floating-point number into this instance at the specified character position.
</summary>
<param name="index">The position in this instance where insertion begins.</param>
<param name="value">The value to insert.</param>
<returns>A reference to this instance after the operation has completed.</returns>
<exception cref="T:System.ArgumentOutOfRangeException"><paramref name="index"/> is less than zero or greater than the length of this instance.</exception>
<exception cref="T:System.OutOfMemoryException">Enlarging the value of this instance would exceed <see cref="P:J2N.Text.StringBuffer.MaxCapacity"/>.</exception>
</member>
<member name="M:J2N.Text.StringBuffer.Insert(System.Int32,System.Double)">
<summary>
Inserts the string representation of a double-precision floating-point number into this instance at the specified character position.
</summary>
<param name="index">The position in this instance where insertion begins.</param>
<param name="value">The value to insert.</param>
<returns>A reference to this instance after the operation has completed.</returns>
<exception cref="T:System.ArgumentOutOfRangeException"><paramref name="index"/> is less than zero or greater than the length of this instance.</exception>
<exception cref="T:System.OutOfMemoryException">Enlarging the value of this instance would exceed <see cref="P:J2N.Text.StringBuffer.MaxCapacity"/>.</exception>
</member>
<member name="M:J2N.Text.StringBuffer.Insert(System.Int32,System.Decimal)">
<summary>
Inserts the string representation of a decimal number into this instance at the specified character position.
</summary>
<param name="index">The position in this instance where insertion begins.</param>
<param name="value">The value to insert.</param>
<returns>A reference to this instance after the operation has completed.</returns>
<exception cref="T:System.ArgumentOutOfRangeException"><paramref name="index"/> is less than zero or greater than the length of this instance.</exception>
<exception cref="T:System.OutOfMemoryException">Enlarging the value of this instance would exceed <see cref="P:J2N.Text.StringBuffer.MaxCapacity"/>.</exception>
</member>
<member name="M:J2N.Text.StringBuffer.Insert(System.Int32,System.SByte)">
<summary>
Inserts the string representation of a specified 8-bit signed integer into this instance at the specified character position.
</summary>
<param name="index">The position in this instance where insertion begins.</param>
<param name="value">The value to insert.</param>
<returns>A reference to this instance after the operation has completed.</returns>
<exception cref="T:System.ArgumentOutOfRangeException"><paramref name="index"/> is less than zero or greater than the length of this instance.</exception>
<exception cref="T:System.OutOfMemoryException">Enlarging the value of this instance would exceed <see cref="P:J2N.Text.StringBuffer.MaxCapacity"/>.</exception>
</member>
<member name="M:J2N.Text.StringBuffer.Insert(System.Int32,System.UInt16)">
<summary>
Inserts the string representation of a specified 16-bit unsigned integer into this instance at the specified character position.
</summary>
<param name="index">The position in this instance where insertion begins.</param>
<param name="value">The value to insert.</param>
<returns>A reference to this instance after the operation has completed.</returns>
<exception cref="T:System.ArgumentOutOfRangeException"><paramref name="index"/> is less than zero or greater than the length of this instance.</exception>
<exception cref="T:System.OutOfMemoryException">Enlarging the value of this instance would exceed <see cref="P:J2N.Text.StringBuffer.MaxCapacity"/>.</exception>
</member>
<member name="M:J2N.Text.StringBuffer.Insert(System.Int32,System.UInt32)">
<summary>
Inserts the string representation of a specified 32-bit unsigned integer into this instance at the specified character position.
</summary>
<param name="index">The position in this instance where insertion begins.</param>
<param name="value">The value to insert.</param>
<returns>A reference to this instance after the operation has completed.</returns>
<exception cref="T:System.ArgumentOutOfRangeException"><paramref name="index"/> is less than zero or greater than the length of this instance.</exception>
<exception cref="T:System.OutOfMemoryException">Enlarging the value of this instance would exceed <see cref="P:J2N.Text.StringBuffer.MaxCapacity"/>.</exception>
</member>
<member name="M:J2N.Text.StringBuffer.Insert(System.Int32,System.UInt64)">
<summary>
Inserts the string representation of a specified 64-bit unsigned integer into this instance at the specified character position.
</summary>
<param name="index">The position in this instance where insertion begins.</param>
<param name="value">The value to insert.</param>
<returns>A reference to this instance after the operation has completed.</returns>
<exception cref="T:System.ArgumentOutOfRangeException"><paramref name="index"/> is less than zero or greater than the length of this instance.</exception>
<exception cref="T:System.OutOfMemoryException">Enlarging the value of this instance would exceed <see cref="P:J2N.Text.StringBuffer.MaxCapacity"/>.</exception>
</member>
<member name="M:J2N.Text.StringBuffer.InsertCodePoint(System.Int32,System.Int32)">
<summary>
Insert the string representation of the <paramref name="codePoint"/>
argument to this instance at <paramref name="index"/>.
<para/>
The argument is inserted into to the contents of this sequence.
The length of this sequence increases by <see cref="M:J2N.Character.CharCount(System.Int32)"/>.
<para/>
The overall effect is exactly as if the argument were
converted to a <see cref="T:System.Char"/> array by the method
<see cref="M:J2N.Character.ToChars(System.Int32)"/> and the character in that array
were then <see cref="M:J2N.Text.StringBuffer.Insert(System.Int32,System.Char[])">inserted</see> into this
<see cref="T:J2N.Text.StringBuffer"/>.
</summary>
<param name="index">The position in this instance where insertion begins.</param>
<param name="codePoint">A Unicode code point.</param>
<returns>This <see cref="T:J2N.Text.StringBuffer"/>.</returns>
<exception cref="T:System.ArgumentOutOfRangeException"><paramref name="index"/> is less than zero or greater
than the length of this instance.</exception>
<exception cref="T:System.ArgumentException"><paramref name="codePoint"/> is not a valid Unicode code point.</exception>
</member>
<member name="M:J2N.Text.StringBuffer.IndexOf(System.String,System.StringComparison)">
<summary>
Searches for the index of the specified character. The search for the
character starts at the specified offset and moves towards the end.
</summary>
<param name="value">The string to find.</param>
<param name="comparisonType">One of the enumeration values that specifies the rules for the search.</param>
<returns>The index of the specified character, or <c>-1</c> if the character isn't found.</returns>
<exception cref="T:System.ArgumentNullException">If <paramref name="value"/> is <c>null</c>.</exception>
<exception cref="T:System.ArgumentException"><paramref name="comparisonType"/> is not a <see cref="T:System.StringComparison"/> value.</exception>
</member>
<member name="M:J2N.Text.StringBuffer.IndexOf(System.String,System.Int32,System.StringComparison)">
<summary>
Searches for the index of the specified character. The search for the
character starts at the specified offset and moves towards the end.
</summary>
<param name="value">The string to find.</param>
<param name="startIndex">The starting offset.</param>
<param name="comparisonType">One of the enumeration values that specifies the rules for the search.</param>
<returns>The index of the specified character, or <c>-1</c> if the character isn't found.</returns>
<exception cref="T:System.ArgumentNullException">If <paramref name="value"/> is <c>null</c>.</exception>
<exception cref="T:System.ArgumentOutOfRangeException"><paramref name="startIndex"/> is less than 0 (zero) or greater than the length of this <see cref="T:System.Text.StringBuilder"/>.</exception>
<exception cref="T:System.ArgumentException"><paramref name="comparisonType"/> is not a <see cref="T:System.StringComparison"/> value.</exception>
</member>
<member name="M:J2N.Text.StringBuffer.LastIndexOf(System.String,System.StringComparison)">
<summary>
Searches for the index of the specified character. The search for the
character starts at the specified offset and moves towards the beginning.
</summary>
<param name="value">The string to find.</param>
<param name="comparisonType">One of the enumeration values that specifies the rules for the search.</param>
<returns>The index of the specified character, <c>-1</c> if the character isn't found.</returns>
<exception cref="T:System.ArgumentNullException">If <paramref name="value"/> is <c>null</c>.</exception>
<exception cref="T:System.ArgumentException"><paramref name="comparisonType"/> is not a <see cref="T:System.StringComparison"/> value.</exception>
</member>
<member name="M:J2N.Text.StringBuffer.LastIndexOf(System.String,System.Int32,System.StringComparison)">
<summary>
Searches for the index of the specified character. The search for the
character starts at the specified offset and moves towards the beginning.
</summary>
<param name="value">The string to find.</param>
<param name="startIndex">The starting offset.</param>
<param name="comparisonType">One of the enumeration values that specifies the rules for the search.</param>
<returns>The index of the specified character, <c>-1</c> if the character isn't found.</returns>
<exception cref="T:System.ArgumentNullException">If <paramref name="value"/> is <c>null</c>.</exception>
<exception cref="T:System.ArgumentOutOfRangeException"><paramref name="startIndex"/> is less than 0 (zero) or greater than the length of this <see cref="T:System.Text.StringBuilder"/>.</exception>
<exception cref="T:System.ArgumentException"><paramref name="comparisonType"/> is not a <see cref="T:System.StringComparison"/> value.</exception>
</member>
<member name="M:J2N.Text.StringBuffer.Remove(System.Int32,System.Int32)">
<summary>
Removes the specified range of characters from this instance.
<para/>
Usage Note: This method differs from <see cref="M:J2N.Text.StringBuffer.Delete(System.Int32,System.Int32)"/> in strictness.
This method throws exceptions if the bounds are not exact, where <see cref="M:J2N.Text.StringBuffer.Delete(System.Int32,System.Int32)"/>
will make a best effort to try to correct the bounds to ensure the operation is successful.
</summary>
<param name="startIndex">The zero-based position in this instance where removal begins.</param>
<param name="length">The number of characters to remove.</param>
<returns>A reference to this instance after the excise operation has completed.</returns>
<exception cref="T:System.ArgumentOutOfRangeException">If <paramref name="startIndex"/> or <paramref name="length"/> is less than zero,
or <paramref name="startIndex"/> + <paramref name="length"/> is greater than the length of this instance.</exception>
</member>
<member name="M:J2N.Text.StringBuffer.Replace(System.Int32,System.Int32,System.String)">
<summary>
Replaces the specified subsequence in this builder with the specified
string, <paramref name="newValue"/>. The substring begins at the specified
<paramref name="startIndex"/> and ends to the character at
<c><paramref name="count"/> - <paramref name="startIndex"/></c> or
to the end of the sequence if no such character exists. First the
characters in the substring ar removed and then the specified
<paramref name="newValue"/> is inserted at <paramref name="startIndex"/>.
This <see cref="T:J2N.Text.StringBuffer"/> will be lengthened to accommodate the
specified <paramref name="newValue"/> if necessary.
<para/>
IMPORTANT: This method has .NET semantics. That is, the third parameter is a count
rather than an exclusive end index. To translate from Java, use <c>end - start</c>
to resolve the <paramref name="count"/> parameter.
</summary>
<param name="startIndex">The inclusive begin index in this instance.</param>
<param name="count">The number of characters to replace.</param>
<param name="newValue">The replacement string.</param>
<returns>This <see cref="T:J2N.Text.StringBuffer"/> builder.</returns>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="startIndex"/> or <paramref name="count"/> is less than zero.
<para/>
-or-
<para/>
Enlarging the value of this instance would exceed <see cref="P:System.Text.StringBuilder.MaxCapacity"/>.
</exception>
<exception cref="T:System.ArgumentNullException">If <paramref name="newValue"/> is <c>null</c>.</exception>
</member>
<member name="M:J2N.Text.StringBuffer.Replace(System.Char,System.Char)">
<summary>
Replaces all occurrences of a specified character in this instance with another specified character.
</summary>
<param name="oldChar">The character to replace.</param>
<param name="newChar">The character that replaces <paramref name="oldChar"/>.</param>
<returns>A reference to this instance with <paramref name="oldChar"/> replaced by <paramref name="newChar"/>.</returns>
</member>
<member name="M:J2N.Text.StringBuffer.Replace(System.Char,System.Char,System.Int32,System.Int32)">
<summary>
Replaces, within a substring of this instance, all occurrences of a specified character with another specified character.
</summary>
<param name="oldChar">The character to replace.</param>
<param name="newChar">The character that replaces <paramref name="oldChar"/>.</param>
<param name="startIndex">The position in this instance where the substring begins.</param>
<param name="count">The length of the substring.</param>
<returns>A reference to this instance with <paramref name="oldChar"/> replaced by <paramref name="newChar"/>
in the range from <paramref name="startIndex"/> to <paramref name="startIndex"/> + <paramref name="count"/> - 1.</returns>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="startIndex"/> + <paramref name="count"/> is greater than the length of the value of this instance.
<para/>
-or-
<para/>
<paramref name="startIndex"/> or <paramref name="count"/> is less than zero.
</exception>
</member>
<member name="M:J2N.Text.StringBuffer.Replace(System.String,System.String)">
<summary>
Replaces all occurrences of a specified string in this instance with another specified string.
</summary>
<param name="oldValue">The string to replace.</param>
<param name="newValue">The string that replaces <paramref name="oldValue"/>, or <c>null</c>.</param>
<returns>A reference to this instance with all instances of <paramref name="oldValue"/> replaced by <paramref name="newValue"/>.</returns>
<exception cref="T:System.ArgumentNullException"><paramref name="oldValue"/> is <c>null</c>.</exception>
<exception cref="T:System.ArgumentException">The length of <paramref name="oldValue"/> is zero.</exception>
<exception cref="T:System.ArgumentOutOfRangeException">Enlarging the value of this instance would exceed <see cref="P:J2N.Text.StringBuffer.MaxCapacity"/>.</exception>
</member>
<member name="M:J2N.Text.StringBuffer.Replace(System.String,System.String,System.Int32,System.Int32)">
<summary>
Replaces, within a substring of this instance, all occurrences of a specified string with another specified string.
</summary>
<param name="oldValue">The string to replace.</param>
<param name="newValue">The string that replaces <paramref name="oldValue"/>, or <c>null</c>.</param>
<param name="startIndex">The position in this instance where the substring begins.</param>
<param name="count">The length of the substring.</param>
<returns>A reference to this instance with <paramref name="oldValue"/> replaced by <paramref name="newValue"/>
in the range from <paramref name="startIndex"/> to <paramref name="startIndex"/> + <paramref name="count"/> - 1.</returns>
<exception cref="T:System.ArgumentNullException"><paramref name="oldValue"/> is <c>null</c>.</exception>
<exception cref="T:System.ArgumentException">The length of <paramref name="oldValue"/> is zero.</exception>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="startIndex"/> or <paramref name="count"/> is less than zero.
<para/>
-or-
<para/>
<paramref name="startIndex"/> plus <paramref name="count"/> indicates a character position not within this instance.
<para/>
-or-
<para/>
Enlarging the value of this instance would exceed <see cref="P:J2N.Text.StringBuffer.MaxCapacity"/>.
</exception>
</member>
<member name="M:J2N.Text.StringBuffer.Reverse">
<summary>
Causes this character sequence to be replaced by the reverse of
the sequence. If there are any surrogate pairs included in the
sequence, these are treated as single characters for the
reverse operation. Thus, the order of the high-low surrogates
is never reversed.
<para/>
IMPORTANT: This operation is done in-place. Although a <see cref="T:J2N.Text.StringBuffer"/>
is returned, it is a reference to the current instance.
<para/>
Let <c>n</c> be the character length of this character sequence
(not the length in <see cref="T:System.Char"/> values) just prior to
execution of the <see cref="M:J2N.Text.StringBuffer.Reverse"/> method. Then the
character at index <c>k</c> in the new character sequence is
equal to the character at index <c>n-k-1</c> in the old
character sequence.
<para/>
Note that the reverse operation may result in producing
surrogate pairs that were unpaired low-surrogates and
high-surrogates before the operation. For example, reversing
"&#92;uDC00&#92;uD800" produces "&#92;uD800&#92;uDC00" which is
a valid surrogate pair.
</summary>
<returns>A reference to this <see cref="T:J2N.Text.StringBuffer"/>, for chaining.</returns>
</member>
<member name="M:J2N.Text.StringBuffer.Subsequence(System.Int32,System.Int32)">
<summary>
Retrieves a sub-sequence from this instance.
The sub-sequence starts at a specified character position and has a specified length.
<para/>
IMPORTANT: This method has .NET semantics, that is, the second parameter is a length,
not an exclusive end index as it would be in Java.
</summary>
<param name="startIndex">
The start index of the sub-sequence. It is inclusive, that
is, the index of the first character that is included in the
sub-sequence.
</param>
<param name="length">The number of characters to return in the sub-sequence.</param>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="startIndex"/> plus <paramref name="length"/> indicates a position not within this instance.
<para/>
-or-
<para/>
<paramref name="startIndex"/> or <paramref name="length"/> is less than zero.
</exception>
</member>
<member name="M:J2N.Text.StringBuffer.ToString">
<summary>
Converts the value of this instance to a <see cref="T:System.String"/>.
</summary>
<returns>A string whose value is the same as this instance.</returns>
</member>
<member name="M:J2N.Text.StringBuffer.ToString(System.Int32,System.Int32)">
<summary>
Converts the value of a substring of this instance to a <see cref="T:System.String"/>.
</summary>
<param name="startIndex">The starting position of the substring in this instance.</param>
<param name="length">The length of the substring.</param>
<returns>A string whose value is the same as the specified substring of this instance.</returns>
</member>
<member name="T:J2N.Text.StringBuilderCharSequence">
<summary>
A wrapper class that represents a <see cref="T:System.Text.StringBuilder"/> and implements <see cref="T:J2N.Text.ICharSequence"/>.
</summary>
</member>
<member name="M:J2N.Text.StringBuilderCharSequence.#ctor">
<summary>
Initializes a new instance of <see cref="T:J2N.Text.StringBuilderCharSequence"/> with a new backing <see cref="T:System.Text.StringBuilder"/>.
</summary>
</member>
<member name="M:J2N.Text.StringBuilderCharSequence.#ctor(System.Text.StringBuilder)">
<summary>
Initializes a new instance of <see cref="T:J2N.Text.StringBuilderCharSequence"/> with the provided <paramref name="value"/>.
</summary>
<param name="value">A <see cref="T:System.Text.StringBuilder"/> to wrap in a <see cref="T:J2N.Text.ICharSequence"/>. The value may be <c>null</c>.</param>
</member>
<member name="P:J2N.Text.StringBuilderCharSequence.Value">
<summary>
Gets the current <see cref="T:System.Text.StringBuilder"/> value.
</summary>
</member>
<member name="P:J2N.Text.StringBuilderCharSequence.HasValue">
<summary>
Gets a value indicating whether the current <see cref="T:J2N.Text.StringBuilderCharSequence"/>
has a valid <see cref="T:System.Text.StringBuilder"/> value.
</summary>
</member>
<member name="P:J2N.Text.StringBuilderCharSequence.Item(System.Int32)">
<summary>
Gets the character at the specified index, with the first character
having index zero.
</summary>
<param name="index">The index of the character to return.</param>
<returns>The requested character.</returns>
<exception cref="T:System.IndexOutOfRangeException">
If <c>index &lt; 0</c> or <c>index</c> is greater than the
length of this sequence.
</exception>
<exception cref="T:System.InvalidOperationException">
If the underlying value of this sequence is <c>null</c>.
</exception>
</member>
<member name="P:J2N.Text.StringBuilderCharSequence.Length">
<summary>
Gets the number of characters in this sequence.
</summary>
</member>
<member name="M:J2N.Text.StringBuilderCharSequence.Subsequence(System.Int32,System.Int32)">
<summary>
Retrieves a sub-sequence from this instance.
The sub-sequence starts at a specified character position and has a specified length.
<para/>
IMPORTANT: This method has .NET semantics, that is, the second parameter is a length,
not an exclusive end index as it would be in Java. To translate from Java to .NET,
callers must account for this by subtracting (end - start) for the <paramref name="length"/>.
</summary>
<param name="startIndex">
The start index of the sub-sequence. It is inclusive, that
is, the index of the first character that is included in the
sub-sequence.
</param>
<param name="length">The number of characters to return in the sub-sequence.</param>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="startIndex"/> plus <paramref name="length"/> indicates a position not within this instance.
<para/>
-or-
<para/>
<paramref name="startIndex"/> or <paramref name="length"/> is less than zero.
</exception>
</member>
<member name="M:J2N.Text.StringBuilderCharSequence.ToString">
<summary>
Returns a string with the same characters in the same order as in this
sequence.
</summary>
<returns>A string based on this sequence.</returns>
</member>
<member name="M:J2N.Text.StringBuilderCharSequence.op_Equality(J2N.Text.StringBuilderCharSequence,J2N.Text.StringBuilderCharSequence)">
<summary>
Compares <paramref name="csq1"/> and <paramref name="csq2"/> for equality.
Two character sequences are considered equal if they have the same characters
in the same order.
</summary>
<param name="csq1">The first sequence.</param>
<param name="csq2">The second sequence.</param>
<returns><c>true</c> if <paramref name="csq1"/> and <paramref name="csq2"/> represent to the same instance; otherwise, <c>false</c>.</returns>
</member>
<member name="M:J2N.Text.StringBuilderCharSequence.op_Inequality(J2N.Text.StringBuilderCharSequence,J2N.Text.StringBuilderCharSequence)">
<summary>
Compares <paramref name="csq1"/> and <paramref name="csq2"/> for inequality.
Two character sequences are considered equal if they have the same characters
in the same order.
</summary>
<param name="csq1">The first sequence.</param>
<param name="csq2">The second sequence.</param>
<returns><c>true</c> if <paramref name="csq1"/> and <paramref name="csq2"/> do not represent to the same instance; otherwise, <c>false</c>.</returns>
</member>
<member name="M:J2N.Text.StringBuilderCharSequence.op_Equality(J2N.Text.StringBuilderCharSequence,System.Text.StringBuilder)">
<summary>
Compares <paramref name="csq1"/> and <paramref name="csq2"/> for equality.
Two character sequences are considered equal if they have the same characters
in the same order.
</summary>
<param name="csq1">The first sequence.</param>
<param name="csq2">The second sequence.</param>
<returns><c>true</c> if <paramref name="csq1"/> and <paramref name="csq2"/> represent to the same instance; otherwise, <c>false</c>.</returns>
</member>
<member name="M:J2N.Text.StringBuilderCharSequence.op_Inequality(J2N.Text.StringBuilderCharSequence,System.Text.StringBuilder)">
<summary>
Compares <paramref name="csq1"/> and <paramref name="csq2"/> for inequality.
Two character sequences are considered equal if they have the same characters
in the same order.
</summary>
<param name="csq1">The first sequence.</param>
<param name="csq2">The second sequence.</param>
<returns><c>true</c> if <paramref name="csq1"/> and <paramref name="csq2"/> do not represent to the same instance; otherwise, <c>false</c>.</returns>
</member>
<member name="M:J2N.Text.StringBuilderCharSequence.op_Equality(System.Text.StringBuilder,J2N.Text.StringBuilderCharSequence)">
<summary>
Compares <paramref name="csq1"/> and <paramref name="csq2"/> for equality.
Two character sequences are considered equal if they have the same characters
in the same order.
</summary>
<param name="csq1">The first sequence.</param>
<param name="csq2">The second sequence.</param>
<returns><c>true</c> if <paramref name="csq1"/> and <paramref name="csq2"/> represent to the same instance; otherwise, <c>false</c>.</returns>
</member>
<member name="M:J2N.Text.StringBuilderCharSequence.op_Inequality(System.Text.StringBuilder,J2N.Text.StringBuilderCharSequence)">
<summary>
Compares <paramref name="csq1"/> and <paramref name="csq2"/> for inequality.
Two character sequences are considered equal if they have the same characters
in the same order.
</summary>
<param name="csq1">The first sequence.</param>
<param name="csq2">The second sequence.</param>
<returns><c>true</c> if <paramref name="csq1"/> and <paramref name="csq2"/> do not represent to the same instance; otherwise, <c>false</c>.</returns>
</member>
<member name="M:J2N.Text.StringBuilderCharSequence.Equals(J2N.Text.ICharSequence)">
<summary>
Determines whether this <see cref="T:J2N.Text.StringBuilderCharSequence"/> is equal to <paramref name="other"/>.
</summary>
<param name="other">An <see cref="T:J2N.Text.ICharSequence"/> to compare to the current <see cref="T:J2N.Text.StringBuilderCharSequence"/>.</param>
<returns><c>true</c> if <paramref name="other"/> is equal to the current <see cref="T:J2N.Text.StringBuilderCharSequence"/>; otherwise, <c>false</c>.</returns>
</member>
<member name="M:J2N.Text.StringBuilderCharSequence.Equals(J2N.Text.CharArrayCharSequence)">
<summary>
Determines whether this <see cref="T:J2N.Text.StringBuilderCharSequence"/> is equal to <paramref name="other"/>.
</summary>
<param name="other">A <see cref="T:J2N.Text.CharArrayCharSequence"/> to compare to the current <see cref="T:J2N.Text.StringBuilderCharSequence"/>.</param>
<returns><c>true</c> if <paramref name="other"/> is equal to the current <see cref="T:J2N.Text.StringBuilderCharSequence"/>; otherwise, <c>false</c>.</returns>
</member>
<member name="M:J2N.Text.StringBuilderCharSequence.Equals(J2N.Text.StringBuilderCharSequence)">
<summary>
Determines whether this <see cref="T:J2N.Text.StringBuilderCharSequence"/> is equal to <paramref name="other"/>.
</summary>
<param name="other">A <see cref="T:J2N.Text.StringBuilderCharSequence"/> to compare to the current <see cref="T:J2N.Text.StringBuilderCharSequence"/>.</param>
<returns><c>true</c> if <paramref name="other"/> is equal to the current <see cref="T:J2N.Text.StringBuilderCharSequence"/>; otherwise, <c>false</c>.</returns>
</member>
<member name="M:J2N.Text.StringBuilderCharSequence.Equals(J2N.Text.StringCharSequence)">
<summary>
Determines whether this <see cref="T:J2N.Text.StringBuilderCharSequence"/> is equal to <paramref name="other"/>.
</summary>
<param name="other">A <see cref="T:J2N.Text.StringCharSequence"/> to compare to the current <see cref="T:J2N.Text.StringBuilderCharSequence"/>.</param>
<returns><c>true</c> if <paramref name="other"/> is equal to the current <see cref="T:J2N.Text.StringBuilderCharSequence"/>; otherwise, <c>false</c>.</returns>
</member>
<member name="M:J2N.Text.StringBuilderCharSequence.Equals(System.String)">
<summary>
Determines whether this <see cref="T:J2N.Text.StringBuilderCharSequence"/> is equal to <paramref name="other"/>.
</summary>
<param name="other">A <see cref="T:System.String"/> to compare to the current <see cref="T:J2N.Text.StringBuilderCharSequence"/>.</param>
<returns><c>true</c> if <paramref name="other"/> is equal to the current <see cref="T:J2N.Text.StringBuilderCharSequence"/>; otherwise, <c>false</c>.</returns>
</member>
<member name="M:J2N.Text.StringBuilderCharSequence.Equals(System.Text.StringBuilder)">
<summary>
Determines whether this <see cref="T:J2N.Text.StringBuilderCharSequence"/> is equal to <paramref name="other"/>.
</summary>
<param name="other">A <see cref="T:System.Text.StringBuilder"/> to compare to the current <see cref="T:J2N.Text.StringBuilderCharSequence"/>.</param>
<returns><c>true</c> if <paramref name="other"/> is equal to the current <see cref="T:J2N.Text.StringBuilderCharSequence"/>; otherwise, <c>false</c>.</returns>
</member>
<member name="M:J2N.Text.StringBuilderCharSequence.Equals(System.Char[])">
<summary>
Determines whether this <see cref="T:J2N.Text.StringBuilderCharSequence"/> is equal to <paramref name="other"/>.
</summary>
<param name="other">A <see cref="T:char[]"/> to compare to the current <see cref="T:J2N.Text.StringBuilderCharSequence"/>.</param>
<returns><c>true</c> if <paramref name="other"/> is equal to the current <see cref="T:J2N.Text.StringBuilderCharSequence"/>; otherwise, <c>false</c>.</returns>
</member>
<member name="M:J2N.Text.StringBuilderCharSequence.Equals(System.Object)">
<summary>
Determines whether this <see cref="T:J2N.Text.StringBuilderCharSequence"/> is equal to <paramref name="other"/>.
</summary>
<param name="other">An object to compare to the current <see cref="T:J2N.Text.StringBuilderCharSequence"/>.</param>
<returns><c>true</c> if <paramref name="other"/> is equal to the current <see cref="T:J2N.Text.StringBuilderCharSequence"/>; otherwise, <c>false</c>.</returns>
</member>
<member name="M:J2N.Text.StringBuilderCharSequence.GetHashCode">
<summary>
Gets the hash code for the current <see cref="T:J2N.Text.ICharSequence"/>.
</summary>
<returns>Returns the hash code for <see cref="P:J2N.Text.StringBuilderCharSequence.Value"/>. If <see cref="P:J2N.Text.StringBuilderCharSequence.Value"/> is <c>null</c>, returns <see cref="F:System.Int32.MaxValue"/>.</returns>
</member>
<member name="M:J2N.Text.StringBuilderCharSequence.CompareTo(J2N.Text.ICharSequence)">
<summary>
Compares this instance with a specified <see cref="T:J2N.Text.ICharSequence"/> object and indicates whether
this instance precedes, follows, or appears in the same position in the sort order as the specified string.
</summary>
<param name="other">The <see cref="T:J2N.Text.ICharSequence"/> to compare with this instance.</param>
<returns>
An integer that indicates the lexical relationship between the two comparands.
Less than zero indicates the comparison value is greater than the current string.
Zero indicates the strings are equal.
Greater than zero indicates the comparison value is less than the current string.
</returns>
</member>
<member name="M:J2N.Text.StringBuilderCharSequence.CompareTo(System.String)">
<summary>
Compares this instance with a specified <see cref="T:System.String"/> object and indicates whether
this instance precedes, follows, or appears in the same position in the sort order as the specified string.
</summary>
<param name="other">The <see cref="T:System.String"/> to compare with this instance.</param>
<returns>
An integer that indicates the lexical relationship between the two comparands.
Less than zero indicates the comparison value is greater than the current string.
Zero indicates the strings are equal.
Greater than zero indicates the comparison value is less than the current string.
</returns>
</member>
<member name="M:J2N.Text.StringBuilderCharSequence.CompareTo(System.Text.StringBuilder)">
<summary>
Compares this instance with a specified <see cref="T:System.Text.StringBuilder"/> object and indicates whether
this instance precedes, follows, or appears in the same position in the sort order as the specified string.
</summary>
<param name="other">The <see cref="T:System.Text.StringBuilder"/> to compare with this instance.</param>
<returns>
An integer that indicates the lexical relationship between the two comparands.
Less than zero indicates the comparison value is greater than the current string.
Zero indicates the strings are equal.
Greater than zero indicates the comparison value is less than the current string.
</returns>
</member>
<member name="M:J2N.Text.StringBuilderCharSequence.CompareTo(System.Char[])">
<summary>
Compares this instance with a specified <see cref="T:char[]"/> object and indicates whether
this instance precedes, follows, or appears in the same position in the sort order as the specified string.
</summary>
<param name="other">The <see cref="T:char[]"/> to compare with this instance.</param>
<returns>
An integer that indicates the lexical relationship between the two comparands.
Less than zero indicates the comparison value is greater than the current string.
Zero indicates the strings are equal.
Greater than zero indicates the comparison value is less than the current string.
</returns>
</member>
<member name="M:J2N.Text.StringBuilderCharSequence.CompareTo(System.Object)">
<summary>
Compares this instance with a specified <see cref="T:System.Object"/> and indicates whether
this instance precedes, follows, or appears in the same position in the sort order as the specified string.
</summary>
<param name="other">The <see cref="T:System.Object"/> to compare with this instance.</param>
<returns>
An integer that indicates the lexical relationship between the two comparands.
Less than zero indicates the comparison value is greater than the current string.
Zero indicates the strings are equal.
Greater than zero indicates the comparison value is less than the current string.
</returns>
</member>
<member name="M:J2N.Text.StringBuilderCharSequence.Append(System.Char)">
<summary>
Appends the string representation of a specified <see cref="T:System.Char"/> object to this instance.
</summary>
<param name="value">The UTF-16-encoded code unit to append.</param>
<returns>A reference to this instance after the append operation has completed.</returns>
<exception cref="T:System.ArgumentOutOfRangeException">Enlarging the value of this instance would exceed <see cref="P:System.Text.StringBuilder.MaxCapacity"/>.</exception>
<exception cref="T:System.InvalidOperationException"><see cref="P:J2N.Text.StringBuilderCharSequence.Value"/> is <c>null</c>.</exception>
</member>
<member name="M:J2N.Text.StringBuilderCharSequence.Append(System.String)">
<summary>
Appends a copy of the specified string to this instance.
</summary>
<param name="value">The string to append.</param>
<returns>A reference to this instance after the append operation has completed.</returns>
<exception cref="T:System.ArgumentOutOfRangeException">Enlarging the value of this instance would exceed <see cref="P:System.Text.StringBuilder.MaxCapacity"/>.</exception>
<exception cref="T:System.InvalidOperationException"><see cref="P:J2N.Text.StringBuilderCharSequence.Value"/> is <c>null</c>.</exception>
</member>
<member name="M:J2N.Text.StringBuilderCharSequence.Append(System.String,System.Int32,System.Int32)">
<summary>
Appends a copy of a specified substring to this instance.
</summary>
<param name="value">The <see cref="T:System.Text.StringBuilder"/> that contains the substring to append.</param>
<param name="startIndex">The starting position of the substring within <paramref name="value"/>.</param>
<param name="count">The number of characters in <paramref name="value"/> to append.</param>
<returns>A reference to this instance after the append operation has completed.</returns>
<exception cref="T:System.ArgumentNullException"><paramref name="value"/> is <c>null</c>, and
<paramref name="startIndex"/> and <paramref name="count"/> are not zero.</exception>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="count"/> less than zero.
<para/>
-or-
<para/>
<paramref name="startIndex"/> less than zero.
<para/>
-or-
<para/>
<paramref name="startIndex"/> + <paramref name="count"/> is greater than the length of <paramref name="value"/>.
<para/>
-or-
<para/>
Enlarging the value of this instance would exceed <see cref="P:System.Text.StringBuilder.MaxCapacity"/>.
</exception>
<exception cref="T:System.InvalidOperationException"><see cref="P:J2N.Text.StringBuilderCharSequence.Value"/> is <c>null</c>.</exception>
</member>
<member name="M:J2N.Text.StringBuilderCharSequence.Append(System.Text.StringBuilder)">
<summary>
Appends a copy of the specified string to this instance.
</summary>
<param name="value">The <see cref="T:System.Text.StringBuilder"/> that contains the string to append.</param>
<returns>A reference to this instance after the append operation has completed.</returns>
<exception cref="T:System.ArgumentOutOfRangeException">Enlarging the value of this instance would exceed <see cref="P:System.Text.StringBuilder.MaxCapacity"/>.</exception>
<exception cref="T:System.InvalidOperationException"><see cref="P:J2N.Text.StringBuilderCharSequence.Value"/> is <c>null</c>.</exception>
</member>
<member name="M:J2N.Text.StringBuilderCharSequence.Append(System.Text.StringBuilder,System.Int32,System.Int32)">
<summary>
Appends a copy of a specified substring to this instance.
</summary>
<param name="value">The <see cref="T:System.Text.StringBuilder"/> that contains the substring to append.</param>
<param name="startIndex">The starting position of the substring within <paramref name="value"/>.</param>
<param name="count">The number of characters in <paramref name="value"/> to append.</param>
<returns>A reference to this instance after the append operation has completed.</returns>
<exception cref="T:System.ArgumentNullException"><paramref name="value"/> is <c>null</c>, and
<paramref name="startIndex"/> and <paramref name="count"/> are not zero.</exception>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="count"/> less than zero.
<para/>
-or-
<para/>
<paramref name="startIndex"/> less than zero.
<para/>
-or-
<para/>
<paramref name="startIndex"/> + <paramref name="count"/> is greater than the length of <paramref name="value"/>.
<para/>
-or-
<para/>
Enlarging the value of this instance would exceed <see cref="P:System.Text.StringBuilder.MaxCapacity"/>.
</exception>
<exception cref="T:System.InvalidOperationException"><see cref="P:J2N.Text.StringBuilderCharSequence.Value"/> is <c>null</c>.</exception>
</member>
<member name="M:J2N.Text.StringBuilderCharSequence.Append(System.Char[])">
<summary>
Appends the string representation of the Unicode characters in a specified array to this instance.
</summary>
<param name="value">The array of characters to append.</param>
<returns>A reference to this instance after the append operation has completed.</returns>
<exception cref="T:System.ArgumentOutOfRangeException">Enlarging the value of this instance would exceed <see cref="P:System.Text.StringBuilder.MaxCapacity"/>.</exception>
<exception cref="T:System.InvalidOperationException"><see cref="P:J2N.Text.StringBuilderCharSequence.Value"/> is <c>null</c>.</exception>
</member>
<member name="M:J2N.Text.StringBuilderCharSequence.Append(System.Char[],System.Int32,System.Int32)">
<summary>
Appends the string representation of a specified subarray of Unicode characters to this instance.
</summary>
<param name="value">A character array.</param>
<param name="startIndex">The starting position in <paramref name="value"/>.</param>
<param name="count">The number of characters in <paramref name="value"/> to append.</param>
<returns>A reference to this instance after the append operation has completed.</returns>
<exception cref="T:System.ArgumentNullException"><paramref name="value"/> is <c>null</c>, and
<paramref name="startIndex"/> and <paramref name="count"/> are not zero.</exception>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="count"/> less than zero.
<para/>
-or-
<para/>
<paramref name="startIndex"/> less than zero.
<para/>
-or-
<para/>
<paramref name="startIndex"/> + <paramref name="count"/> is greater than the length of <paramref name="value"/>.
<para/>
-or-
<para/>
Enlarging the value of this instance would exceed <see cref="P:System.Text.StringBuilder.MaxCapacity"/>.
</exception>
<exception cref="T:System.InvalidOperationException"><see cref="P:J2N.Text.StringBuilderCharSequence.Value"/> is <c>null</c>.</exception>
</member>
<member name="M:J2N.Text.StringBuilderCharSequence.Append(J2N.Text.ICharSequence)">
<summary>
Appends the string representation of the Unicode characters in a specified <see cref="T:J2N.Text.ICharSequence"/> to this instance.
</summary>
<param name="value">The <see cref="T:J2N.Text.ICharSequence"/> containing the characters to append.</param>
<returns>A reference to this instance after the append operation has completed.</returns>
<exception cref="T:System.ArgumentOutOfRangeException">Enlarging the value of this instance would exceed <see cref="P:System.Text.StringBuilder.MaxCapacity"/>.</exception>
<exception cref="T:System.InvalidOperationException"><see cref="P:J2N.Text.StringBuilderCharSequence.Value"/> is <c>null</c>.</exception>
</member>
<member name="M:J2N.Text.StringBuilderCharSequence.Append(J2N.Text.ICharSequence,System.Int32,System.Int32)">
<summary>
Appends the string representation of a specified <see cref="T:J2N.Text.ICharSequence"/> of Unicode characters to this instance.
</summary>
<param name="value">The <see cref="T:J2N.Text.ICharSequence"/> containing the characters to append.</param>
<param name="startIndex">The starting position in <paramref name="value"/>.</param>
<param name="count">The number of characters in <paramref name="value"/> to append.</param>
<returns>A reference to this instance after the append operation has completed.</returns>
<exception cref="T:System.ArgumentNullException"><paramref name="value"/> is <c>null</c>, and
<paramref name="startIndex"/> and <paramref name="count"/> are not zero.</exception>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="count"/> less than zero.
<para/>
-or-
<para/>
<paramref name="startIndex"/> less than zero.
<para/>
-or-
<para/>
<paramref name="startIndex"/> + <paramref name="count"/> is greater than the length of <paramref name="value"/>.
<para/>
-or-
<para/>
Enlarging the value of this instance would exceed <see cref="P:System.Text.StringBuilder.MaxCapacity"/>.
</exception>
<exception cref="T:System.InvalidOperationException"><see cref="P:J2N.Text.StringBuilderCharSequence.Value"/> is <c>null</c>.</exception>
</member>
<member name="M:J2N.Text.StringBuilderCharSequence.Append(System.ReadOnlySpan{System.Char})">
<summary>
Appends the string representation of a specified <see cref="T:System.ReadOnlySpan`1"/> of Unicode characters to this instance.
</summary>
<param name="value">The <see cref="T:System.ReadOnlySpan`1"/> containing the characters to append.</param>
<returns>A reference to this instance after the append operation has completed.</returns>
<exception cref="T:System.InvalidOperationException"><see cref="P:J2N.Text.StringBuilderCharSequence.Value"/> is <c>null</c>.</exception>
</member>
<member name="T:J2N.Text.StringBuilderExtensions">
<summary>
Extensions to the <see cref="T:System.Text.StringBuilder"/> class.
</summary>
</member>
<member name="M:J2N.Text.StringBuilderExtensions.Append(System.Text.StringBuilder,J2N.Text.ICharSequence)">
<summary>
Appends the given <see cref="T:J2N.Text.ICharSequence"/> to this <see cref="T:System.Text.StringBuilder"/>.
<para/>
<strong>Usage Note:</strong> The compiler will not automatically call this extension method because
<see cref="M:System.Text.StringBuilder.Append(System.Object)"/> will take precedence over the call. This can be
overcome only by calling this static method explicitly:
<code>
J2N.Text.StringBuilderExtensions.Append(stringBuilder, charSequenceToInsert);
</code>
or by explicitly using the <paramref name="charSequence"/> label:
<code>
stringBuilder.Append(charSequence: charSequenceToInsert);
</code>
</summary>
<param name="text">This <see cref="T:System.Text.StringBuilder"/>.</param>
<param name="charSequence">The <see cref="T:J2N.Text.ICharSequence"/> to append.</param>
<returns>This <see cref="T:System.Text.StringBuilder"/>, for chaining.</returns>
<exception cref="T:System.ArgumentNullException">If <paramref name="text"/> is <c>null</c>.</exception>
</member>
<member name="M:J2N.Text.StringBuilderExtensions.Append(System.Text.StringBuilder,J2N.Text.ICharSequence,System.Int32,System.Int32)">
<summary>
Appends the specified range of characters of the given <see cref="T:J2N.Text.ICharSequence"/> to this <see cref="T:System.Text.StringBuilder"/>.
<para/>
IMPORTANT: This method has .NET semantics, that is, the third parameter is a length,
not an exclusive end index as it would be in Java. To translate from Java to .NET,
callers must account for this by subtracting (end - start) for the <paramref name="charCount"/>.
</summary>
<param name="text">This <see cref="T:System.Text.StringBuilder"/>.</param>
<param name="charSequence">The <see cref="T:J2N.Text.ICharSequence"/> to append.</param>
<param name="startIndex">The starting position of the substring within <paramref name="charSequence"/>.</param>
<param name="charCount">The number of characters in <paramref name="charSequence"/> to append.</param>
<returns>This <see cref="T:System.Text.StringBuilder"/>, for chaining.</returns>
<exception cref="T:System.ArgumentNullException"><paramref name="charSequence"/> is <c>null</c>, and
<paramref name="startIndex"/> and <paramref name="charCount"/> are not zero.</exception>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="startIndex"/> plus <paramref name="charCount"/> indicates a position not within <paramref name="charSequence"/>.
<para/>
-or-
<para/>
<paramref name="startIndex"/> or <paramref name="charCount"/> is less than zero.
</exception>
</member>
<member name="M:J2N.Text.StringBuilderExtensions.Append(System.Text.StringBuilder,System.Text.StringBuilder)">
<summary>
Appends the given <see cref="T:System.Text.StringBuilder"/> to this <see cref="T:System.Text.StringBuilder"/>.
<para/>
The characters of the <paramref name="charSequence"/> argument are appended,
in order, to this sequence, increasing the
length of this sequence by the length of <paramref name="charSequence"/>.
<para/>
<strong>Usage Note:</strong> The compiler will not automatically call this extension method because
<see cref="M:System.Text.StringBuilder.Append(System.Object)"/> will take precedence over the call. This can be
overcome only by calling this static method explicitly:
<code>
J2N.Text.StringBuilderExtensions.Append(stringBuilder, stringBuilderToInsert);
</code>
or by explicitly using the <paramref name="charSequence"/> label:
<code>
stringBuilder.Append(charSequence: stringBuilderToInsert);
</code>
<para/>
Also, unlike in Java, a <c>null</c> <paramref name="charSequence"/> won't append the string
<c>"null"</c> to the <see cref="T:System.Text.StringBuilder"/>. Instead, it is a no-op.
</summary>
<param name="text">This <see cref="T:System.Text.StringBuilder"/>.</param>
<param name="charSequence">The <see cref="T:System.Text.StringBuilder"/> to append.</param>
<exception cref="T:System.ArgumentNullException">If <paramref name="text"/> is <c>null</c>.</exception>
</member>
<member name="M:J2N.Text.StringBuilderExtensions.Append(System.Text.StringBuilder,System.Text.StringBuilder,System.Int32,System.Int32)">
<summary>
Appends the given <see cref="T:System.Text.StringBuilder"/> to this <see cref="T:System.Text.StringBuilder"/>.
</summary>
<summary>
Appends a substring of the specified <paramref name="charSequence"/> to this <see cref="T:System.Text.StringBuilder"/>.
<para/>
Characters of the argument <paramref name="charSequence"/>, starting at
<paramref name="startIndex"/>, are appended, in order, to the contents of
this sequence up to the specified <paramref name="charCount"/>. The length of this
sequence is increased by the value of <paramref name="charCount"/>.
<para/>
Usage Note: Unlike in Java, a <c>null</c> <paramref name="charSequence"/> won't append the string
<c>"null"</c> to the <see cref="T:System.Text.StringBuilder"/>. Instead, it will throw an <see cref="T:System.ArgumentNullException"/>.
</summary>
<param name="text">This <see cref="T:System.Text.StringBuilder"/>.</param>
<param name="charSequence">The <see cref="T:System.Text.StringBuilder"/> to append.</param>
<param name="startIndex">The starting index of the subsequence to be appended.</param>
<param name="charCount">The number of characters in <paramref name="charSequence"/> to append.</param>
<returns>This <see cref="T:System.Text.StringBuilder"/>, for chaining.</returns>
<exception cref="T:System.ArgumentNullException">If <paramref name="text"/> is <c>null</c>.</exception>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="startIndex"/> plus <paramref name="charCount"/> indicates a position not within <paramref name="charSequence"/>.
<para/>
-or-
<para/>
<paramref name="startIndex"/> or <paramref name="charCount"/> is less than zero.
</exception>
</member>
<member name="M:J2N.Text.StringBuilderExtensions.Append(System.Text.StringBuilder,System.ReadOnlySpan{System.Char})">
<summary>
Appends the given <see cref="T:System.ReadOnlySpan`1"/> to this <see cref="T:System.Text.StringBuilder"/>.
</summary>
<param name="text">This <see cref="T:System.Text.StringBuilder"/>.</param>
<param name="charSequence">The <see cref="T:System.ReadOnlySpan`1"/> to append.</param>
<returns>This <see cref="T:System.Text.StringBuilder"/>, for chaining.</returns>
<exception cref="T:System.ArgumentNullException">If <paramref name="text"/> is <c>null</c>.</exception>
</member>
<member name="M:J2N.Text.StringBuilderExtensions.AppendCodePoint(System.Text.StringBuilder,System.Int32)">
<summary>
Appends the string representation of the <paramref name="codePoint"/>
argument to this sequence.
<para>
The argument is appended to the contents of this sequence.
The length of this sequence increases by <see cref="M:J2N.Character.CharCount(System.Int32)"/>.
</para>
<para>
The overall effect is exactly as if the argument were
converted to a <see cref="T:System.Char"/> array by the method
<see cref="M:J2N.Character.ToChars(System.Int32)"/> and the character in that array
were then <see cref="M:System.Text.StringBuilder.Append(System.Char[])">appended</see> to this
<see cref="T:System.Text.StringBuilder"/>.
</para>
</summary>
<param name="text">This <see cref="T:System.Text.StringBuilder"/>.</param>
<param name="codePoint">A Unicode code point</param>
<returns>This <see cref="T:System.Text.StringBuilder"/>, for chaining.</returns>
<exception cref="T:System.ArgumentNullException">If <paramref name="text"/> is <c>null</c>.</exception>
<exception cref="T:System.ArgumentException"><paramref name="codePoint"/> is not a valid Unicode code point.</exception>
</member>
<member name="M:J2N.Text.StringBuilderExtensions.AsCharSequence(System.Text.StringBuilder)">
<summary>
Convenience method to wrap a string in a <see cref="T:J2N.Text.StringBuilderCharSequence"/>
so a <see cref="T:System.Text.StringBuilder"/> can be used as <see cref="T:J2N.Text.ICharSequence"/> in .NET.
</summary>
</member>
<member name="M:J2N.Text.StringBuilderExtensions.CompareToOrdinal(System.Text.StringBuilder,J2N.Text.ICharSequence)">
<summary>
This method mimics the Java String.compareTo(CharSequence) method in that it
<list type="number">
<item><description>Compares the strings using lexographic sorting rules</description></item>
<item><description>Performs a culture-insensitive comparison</description></item>
</list>
This method is a convenience to replace the .NET CompareTo method
on all strings, provided the logic does not expect specific values
but is simply comparing them with <c>&gt;</c> or <c>&lt;</c>.
</summary>
<param name="text">This string.</param>
<param name="value">The string to compare with.</param>
<returns>
An integer that indicates the lexical relationship between the two comparands.
Less than zero indicates the comparison value is greater than the current string.
Zero indicates the strings are equal.
Greater than zero indicates the comparison value is less than the current string.
</returns>
</member>
<member name="M:J2N.Text.StringBuilderExtensions.CompareToOrdinal(System.Text.StringBuilder,System.Char[])">
<summary>
This method mimics the Java String.compareTo(CharSequence) method in that it
<list type="number">
<item><description>Compares the strings using lexographic sorting rules</description></item>
<item><description>Performs a culture-insensitive comparison</description></item>
</list>
This method is a convenience to replace the .NET CompareTo method
on all strings, provided the logic does not expect specific values
but is simply comparing them with <c>&gt;</c> or <c>&lt;</c>.
</summary>
<param name="text">This string.</param>
<param name="value">The string to compare with.</param>
<returns>
An integer that indicates the lexical relationship between the two comparands.
Less than zero indicates the comparison value is greater than the current string.
Zero indicates the strings are equal.
Greater than zero indicates the comparison value is less than the current string.
</returns>
</member>
<member name="M:J2N.Text.StringBuilderExtensions.CompareToOrdinal(System.Text.StringBuilder,System.Text.StringBuilder)">
<summary>
This method mimics the Java String.compareTo(CharSequence) method in that it
<list type="number">
<item><description>Compares the strings using lexographic sorting rules</description></item>
<item><description>Performs a culture-insensitive comparison</description></item>
</list>
This method is a convenience to replace the .NET CompareTo method
on all strings, provided the logic does not expect specific values
but is simply comparing them with <c>&gt;</c> or <c>&lt;</c>.
</summary>
<param name="text">This string.</param>
<param name="value">The string to compare with.</param>
<returns>
An integer that indicates the lexical relationship between the two comparands.
Less than zero indicates the comparison value is greater than the current string.
Zero indicates the strings are equal.
Greater than zero indicates the comparison value is less than the current string.
</returns>
</member>
<member name="M:J2N.Text.StringBuilderExtensions.CompareToOrdinal(System.Text.StringBuilder,System.String)">
<summary>
This method mimics the Java String.compareTo(CharSequence) method in that it
<list type="number">
<item><description>Compares the strings using lexographic sorting rules</description></item>
<item><description>Performs a culture-insensitive comparison</description></item>
</list>
This method is a convenience to replace the .NET CompareTo method
on all strings, provided the logic does not expect specific values
but is simply comparing them with <c>&gt;</c> or <c>&lt;</c>.
</summary>
<param name="text">This string.</param>
<param name="value">The string to compare with.</param>
<returns>
An integer that indicates the lexical relationship between the two comparands.
Less than zero indicates the comparison value is greater than the current string.
Zero indicates the strings are equal.
Greater than zero indicates the comparison value is less than the current string.
</returns>
</member>
<member name="M:J2N.Text.StringBuilderExtensions.CompareToOrdinal(System.Text.StringBuilder,System.ReadOnlySpan{System.Char})">
<summary>
This method mimics the Java String.compareTo(CharSequence) method in that it
<list type="number">
<item><description>Compares the strings using lexographic sorting rules</description></item>
<item><description>Performs a culture-insensitive comparison</description></item>
</list>
This method is a convenience to replace the .NET CompareTo method
on all strings, provided the logic does not expect specific values
but is simply comparing them with <c>&gt;</c> or <c>&lt;</c>.
</summary>
<param name="text">This string.</param>
<param name="value">The string to compare with.</param>
<returns>
An integer that indicates the lexical relationship between the two comparands.
Less than zero indicates the comparison value is greater than the current string.
Zero indicates the strings are equal.
Greater than zero indicates the comparison value is less than the current string.
</returns>
</member>
<member name="M:J2N.Text.StringBuilderExtensions.CopyTo(System.Text.StringBuilder,System.Int32,System.Span{System.Char},System.Int32)">
<summary>
Copies the characters from a specified segment of this instance to a destination <see cref="T:System.Char"/> span.
</summary>
<param name="text">This <see cref="T:System.Text.StringBuilder"/>.</param>
<param name="sourceIndex">The starting position in this instance where characters will be copied from. The index is zero-based.</param>
<param name="destination">The writable span where characters will be copied.</param>
<param name="count">The number of characters to be copied.</param>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="sourceIndex"/> or <paramref name="count"/> is less than zero.
<para/>
-or-
<para/>
<paramref name="sourceIndex"/> is greater than the length of this instance.
</exception>
<exception cref="T:System.ArgumentException">
<paramref name="sourceIndex"/> + <paramref name="count"/> is greater than the length of this instance.
<para/>
-or-
<para/>
<paramref name="count"/> is greater than the length of <paramref name="destination"/>.
</exception>
<exception cref="T:System.ArgumentNullException"><paramref name="text"/> is <c>null</c>.</exception>
</member>
<member name="M:J2N.Text.StringBuilderExtensions.Delete(System.Text.StringBuilder,System.Int32,System.Int32)">
<summary>
Deletes a sequence of characters specified by <paramref name="startIndex"/> and <paramref name="count"/>.
Shifts any remaining characters to the left.
<para/>
IMPORTANT: This method has .NET semantics. That is, the <paramref name="count"/> parameter is a count rather than
an exclusive end index. To translate from Java, use <c>end - start</c> for <paramref name="count"/>.
<para/>
This method differs from <see cref="M:System.Text.StringBuilder.Remove(System.Int32,System.Int32)"/> in that it will automatically
adjust the <paramref name="count"/> if <c><paramref name="startIndex"/> + <paramref name="count"/> > <see cref="P:System.Text.StringBuilder.Length"/></c>
to <c><see cref="P:System.Text.StringBuilder.Length"/> - <paramref name="startIndex"/>.</c>, provided it is not bounded by <see cref="P:System.Text.StringBuilder.MaxCapacity"/>.
</summary>
<param name="text">This <see cref="T:System.Text.StringBuilder"/>.</param>
<param name="startIndex">The start index in <paramref name="text"/>.</param>
<param name="count">The number of characters to delete in <paramref name="text"/>.</param>
<returns>This <see cref="T:System.Text.StringBuilder"/>, for chaining.</returns>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="startIndex"/> or <paramref name="count"/> is less than zero.
<para/>
-or-
<para/>
<paramref name="startIndex"/> is greater than <see cref="P:System.Text.StringBuilder.Length"/>.
</exception>
<exception cref="T:System.ArgumentNullException">If <paramref name="text"/> is <c>null</c>.</exception>
</member>
<member name="M:J2N.Text.StringBuilderExtensions.IndexOf(System.Text.StringBuilder,System.String,System.StringComparison)">
<summary>
Searches for the index of the specified character. The search for the
character starts at the specified offset and moves towards the end.
</summary>
<param name="text">This <see cref="T:System.Text.StringBuilder"/>.</param>
<param name="value">The string to find.</param>
<param name="comparisonType">One of the enumeration values that specifies the rules for the search.</param>
<returns>The index of the specified character, or <c>-1</c> if the character isn't found.</returns>
<exception cref="T:System.ArgumentNullException">If <paramref name="text"/> or <paramref name="value"/> is <c>null</c>.</exception>
<exception cref="T:System.ArgumentException"><paramref name="comparisonType"/> is not a <see cref="T:System.StringComparison"/> value.</exception>
</member>
<member name="M:J2N.Text.StringBuilderExtensions.IndexOf(System.Text.StringBuilder,System.String,System.Int32,System.StringComparison)">
<summary>
Searches for the index of the specified character. The search for the
character starts at the specified offset and moves towards the end.
</summary>
<param name="text">This <see cref="T:System.Text.StringBuilder"/>.</param>
<param name="value">The string to find.</param>
<param name="startIndex">The starting offset.</param>
<param name="comparisonType">One of the enumeration values that specifies the rules for the search.</param>
<returns>The index of the specified character, or <c>-1</c> if the character isn't found.</returns>
<exception cref="T:System.ArgumentNullException">If <paramref name="text"/> or <paramref name="value"/> is <c>null</c>.</exception>
<exception cref="T:System.ArgumentOutOfRangeException"><paramref name="startIndex"/> is less than 0 (zero) or greater than the length of this <see cref="T:System.Text.StringBuilder"/>.</exception>
<exception cref="T:System.ArgumentException"><paramref name="comparisonType"/> is not a <see cref="T:System.StringComparison"/> value.</exception>
</member>
<member name="M:J2N.Text.StringBuilderExtensions.Insert(System.Text.StringBuilder,System.Int32,J2N.Text.ICharSequence)">
<summary>
Inserts the string representation of a specified sequence of Unicode characters into this instance at the specified character position.
<para/>
<strong>Usage Note:</strong> The compiler will not automatically call this extension method because
<see cref="M:System.Text.StringBuilder.Insert(System.Int32,System.Object)"/> will take precedence over the call. This can be
overcome only by calling this static method explicitly:
<code>
J2N.Text.StringBuilderExtensions.Insert(stringBuilder, 2, charSequenceToInsert);
</code>
or by explicitly using the <paramref name="charSequence"/> label:
<code>
stringBuilder.Insert(2, charSequence: charSequenceToInsert);
</code>
</summary>
<param name="text">This <see cref="T:System.Text.StringBuilder"/>.</param>
<param name="index">The position in this instance where insertion begins.</param>
<param name="charSequence">The character sequence to insert.</param>
<returns>A reference to this instance after the operation has completed.</returns>
<exception cref="T:System.ArgumentNullException">If <paramref name="text"/> is <c>null</c>.</exception>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="index"/> is less than zero or greater than the length of this instance.
<para/>
-or-
<para/>
Enlarging the value of this instance would exceed <see cref="P:System.Text.StringBuilder.MaxCapacity"/>.
</exception>
</member>
<member name="M:J2N.Text.StringBuilderExtensions.Insert(System.Text.StringBuilder,System.Int32,J2N.Text.ICharSequence,System.Int32,System.Int32)">
<summary>
Inserts the string representation of a specified subarray of Unicode characters into this instance at the specified character position.
<para/>
IMPORTANT: This method has .NET semantics. That is, the <paramref name="charCount"/> parameter is a count, not an exclusive end index as would be the
case in Java. To translate from Java, use <c>end - start</c> to resolve <paramref name="charCount"/>.
</summary>
<param name="text">This <see cref="T:System.Text.StringBuilder"/>.</param>
<param name="index">The position in this instance where insertion begins.</param>
<param name="charSequence">A character sequence.</param>
<param name="startIndex">The starting index within <paramref name="charSequence"/>.</param>
<param name="charCount">The number of characters to insert.</param>
<returns>A reference to this instance after the operation has completed.</returns>
<exception cref="T:System.ArgumentNullException">
<paramref name="text"/> is <c>null</c>.
<para/>
-or-
<para/>
<paramref name="charSequence"/> is <c>null</c>, and <paramref name="startIndex"/> and <paramref name="charCount"/> are not zero.
</exception>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="index"/>, <paramref name="startIndex"/> or <paramref name="charCount"/> is less than zero.
<para/>
-or-
<para/>
<paramref name="index"/> is greater than the length of this instance.
<para/>
-or-
<para/>
<paramref name="startIndex"/> plus <paramref name="charCount"/> is not a position within <paramref name="charSequence"/>.
<para/>
-or-
<para/>
Enlarging the value of this instance would exceed <see cref="P:System.Text.StringBuilder.MaxCapacity"/>.
</exception>
</member>
<member name="M:J2N.Text.StringBuilderExtensions.Insert(System.Text.StringBuilder,System.Int32,System.Text.StringBuilder)">
<summary>
Inserts the string representation of a specified sequence of Unicode characters into this instance at the specified character position.
<para/>
<strong>Usage Note:</strong> The compiler will not automatically call this extension method because
<see cref="M:System.Text.StringBuilder.Insert(System.Int32,System.Object)"/> will take precedence over the call. This can be
overcome only by calling this static method explicitly:
<code>
J2N.Text.StringBuilderExtensions.Insert(stringBuilder, 2, stringBuilderToInsert);
</code>
or by explicitly using the <paramref name="charSequence"/> label:
<code>
stringBuilder.Insert(2, charSequence: stringBuilderToInsert);
</code>
</summary>
<param name="text">This <see cref="T:System.Text.StringBuilder"/>.</param>
<param name="index">The position in this instance where insertion begins.</param>
<param name="charSequence">The character sequence to insert.</param>
<returns>A reference to this instance after the operation has completed.</returns>
<exception cref="T:System.ArgumentNullException">If <paramref name="text"/> is <c>null</c>.</exception>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="index"/> is less than zero or greater than the length of this instance.
<para/>
-or-
<para/>
Enlarging the value of this instance would exceed <see cref="P:System.Text.StringBuilder.MaxCapacity"/>.
</exception>
</member>
<member name="M:J2N.Text.StringBuilderExtensions.Insert(System.Text.StringBuilder,System.Int32,System.Text.StringBuilder,System.Int32,System.Int32)">
<summary>
Inserts the string representation of a specified subarray of Unicode characters into this instance at the specified character position.
<para/>
IMPORTANT: This method has .NET semantics. That is, the <paramref name="charCount"/> parameter is a count, not an exclusive end index as would be the
case in Java. To translate from Java, use <c>end - start</c> to resolve <paramref name="charCount"/>.
</summary>
<param name="text">This <see cref="T:System.Text.StringBuilder"/>.</param>
<param name="index">The position in this instance where insertion begins.</param>
<param name="charSequence">A character array.</param>
<param name="startIndex">The starting index within <paramref name="charSequence"/>.</param>
<param name="charCount">The number of characters to insert.</param>
<returns>A reference to this instance after the operation has completed.</returns>
<exception cref="T:System.ArgumentNullException">
<paramref name="text"/> is <c>null</c>.
<para/>
-or-
<para/>
<paramref name="charSequence"/> is <c>null</c>, and <paramref name="startIndex"/> and <paramref name="charCount"/> are not zero.
</exception>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="index"/>, <paramref name="startIndex"/> or <paramref name="charCount"/> is less than zero.
<para/>
-or-
<para/>
<paramref name="index"/> is greater than the length of this instance.
<para/>
-or-
<para/>
<paramref name="startIndex"/> plus <paramref name="charCount"/> is not a position within <paramref name="charSequence"/>.
<para/>
-or-
<para/>
Enlarging the value of this instance would exceed <see cref="P:System.Text.StringBuilder.MaxCapacity"/>.
</exception>
</member>
<member name="M:J2N.Text.StringBuilderExtensions.Insert(System.Text.StringBuilder,System.Int32,System.String,System.Int32,System.Int32)">
<summary>
Inserts the string representation of a specified subarray of Unicode characters into this instance at the specified character position.
<para/>
IMPORTANT: This method has .NET semantics. That is, the <paramref name="charCount"/> parameter is a count, not an exclusive end index as would be the
case in Java. To translate from Java, use <c>end - start</c> to resolve <paramref name="charCount"/>.
</summary>
<param name="text">This <see cref="T:System.Text.StringBuilder"/>.</param>
<param name="index">The position in this instance where insertion begins.</param>
<param name="value">A character array.</param>
<param name="startIndex">The starting index within <paramref name="value"/>.</param>
<param name="charCount">The number of characters to insert.</param>
<returns>A reference to this instance after the operation has completed.</returns>
<exception cref="T:System.ArgumentNullException">
<paramref name="text"/> is <c>null</c>.
<para/>
-or-
<para/>
<paramref name="value"/> is <c>null</c>, and <paramref name="startIndex"/> and <paramref name="charCount"/> are not zero.
</exception>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="index"/>, <paramref name="startIndex"/> or <paramref name="charCount"/> is less than zero.
<para/>
-or-
<para/>
<paramref name="index"/> is greater than the length of this instance.
<para/>
-or-
<para/>
<paramref name="startIndex"/> plus <paramref name="charCount"/> is not a position within <paramref name="value"/>.
<para/>
-or-
<para/>
Enlarging the value of this instance would exceed <see cref="P:System.Text.StringBuilder.MaxCapacity"/>.
</exception>
</member>
<member name="M:J2N.Text.StringBuilderExtensions.Insert(System.Text.StringBuilder,System.Int32,System.ReadOnlySpan{System.Char})">
<summary>
Inserts the sequence of characters into this <see cref="T:System.Text.StringBuilder"/>
at the specified character position.
</summary>
<param name="text">This <see cref="T:System.Text.StringBuilder"/>.</param>
<param name="index">The position in this instance where insertion begins.</param>
<param name="charSequence">The <see cref="T:System.ReadOnlySpan`1"/> to insert.</param>
<returns>This <see cref="T:System.Text.StringBuilder"/>, for chaining.</returns>
<exception cref="T:System.ArgumentNullException">If <paramref name="text"/> is <c>null</c>.</exception>
<exception cref="T:System.ArgumentOutOfRangeException"><paramref name="index"/> is less than zero or greater
than the length of this instance.</exception>
</member>
<member name="M:J2N.Text.StringBuilderExtensions.InsertCodePoint(System.Text.StringBuilder,System.Int32,System.Int32)">
<summary>
Insert the string representation of the <paramref name="codePoint"/>
argument to this sequence at <paramref name="index"/>.
<para>
The argument is inserted into to the contents of this sequence.
The length of this sequence increases by <see cref="M:J2N.Character.CharCount(System.Int32)"/>.
</para>
<para>
The overall effect is exactly as if the argument were
converted to a <see cref="T:System.Char"/> array by the method
<see cref="M:J2N.Character.ToChars(System.Int32)"/> and the character in that array
were then <see cref="M:System.Text.StringBuilder.Insert(System.Int32,System.Char[])">inserted</see> into this
<see cref="T:System.Text.StringBuilder"/>.
</para>
</summary>
<param name="text">This <see cref="T:System.Text.StringBuilder"/>.</param>
<param name="index">The position in this instance where insertion begins.</param>
<param name="codePoint">A Unicode code point.</param>
<returns>This <see cref="T:System.Text.StringBuilder"/>.</returns>
<exception cref="T:System.ArgumentNullException">If <paramref name="text"/> is <c>null</c>.</exception>
<exception cref="T:System.ArgumentOutOfRangeException"><paramref name="index"/> is less than zero or greater
than the length of this instance.</exception>
<exception cref="T:System.ArgumentException"><paramref name="codePoint"/> is not a valid Unicode code point.</exception>
</member>
<member name="M:J2N.Text.StringBuilderExtensions.LastIndexOf(System.Text.StringBuilder,System.String,System.StringComparison)">
<summary>
Searches for the index of the specified character. The search for the
character starts at the specified offset and moves towards the beginning.
</summary>
<param name="text">This <see cref="T:System.Text.StringBuilder"/>.</param>
<param name="value">The string to find.</param>
<param name="comparisonType">One of the enumeration values that specifies the rules for the search.</param>
<returns>The index of the specified character, <c>-1</c> if the character isn't found.</returns>
<exception cref="T:System.ArgumentNullException">If <paramref name="text"/> or <paramref name="value"/> is <c>null</c>.</exception>
<exception cref="T:System.ArgumentException"><paramref name="comparisonType"/> is not a <see cref="T:System.StringComparison"/> value.</exception>
</member>
<member name="M:J2N.Text.StringBuilderExtensions.LastIndexOf(System.Text.StringBuilder,System.String,System.Int32,System.StringComparison)">
<summary>
Searches for the index of the specified character. The search for the
character starts at the specified offset and moves towards the beginning.
</summary>
<param name="text">This <see cref="T:System.Text.StringBuilder"/>.</param>
<param name="value">The string to find.</param>
<param name="startIndex">The starting offset.</param>
<param name="comparisonType">One of the enumeration values that specifies the rules for the search.</param>
<returns>The index of the specified character, <c>-1</c> if the character isn't found.</returns>
<exception cref="T:System.ArgumentNullException">If <paramref name="text"/> or <paramref name="value"/> is <c>null</c>.</exception>
<exception cref="T:System.ArgumentOutOfRangeException"><paramref name="startIndex"/> is less than 0 (zero) or greater than the length of this <see cref="T:System.Text.StringBuilder"/>.</exception>
<exception cref="T:System.ArgumentException"><paramref name="comparisonType"/> is not a <see cref="T:System.StringComparison"/> value.</exception>
</member>
<member name="M:J2N.Text.StringBuilderExtensions.Replace(System.Text.StringBuilder,System.Int32,System.Int32,System.String)">
<summary>
Replaces the specified subsequence in this builder with the specified
string, <paramref name="newValue"/>. The substring begins at the specified
<paramref name="startIndex"/> and ends to the character at
<c><paramref name="count"/> - <paramref name="startIndex"/></c> or
to the end of the sequence if no such character exists. First the
characters in the substring ar removed and then the specified
<paramref name="newValue"/> is inserted at <paramref name="startIndex"/>.
This <see cref="T:System.Text.StringBuilder"/> will be lengthened to accommodate the
specified <paramref name="newValue"/> if necessary.
<para/>
IMPORTANT: This method has .NET semantics. That is, the <paramref name="count"/> parameter is a count
rather than an exclusive end index. To translate from Java, use <c>end - start</c>
to resolve the <paramref name="count"/> parameter.
</summary>
<param name="text">This <see cref="T:System.Text.StringBuilder"/>.</param>
<param name="startIndex">The inclusive begin index in <paramref name="text"/>.</param>
<param name="count">The number of characters to replace.</param>
<param name="newValue">The replacement string.</param>
<returns>This <see cref="T:System.Text.StringBuilder"/> builder.</returns>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="startIndex"/> or <paramref name="count"/> is less than zero.
<para/>
-or-
<para/>
Enlarging the value of this instance would exceed <see cref="P:System.Text.StringBuilder.MaxCapacity"/>.
</exception>
<exception cref="T:System.ArgumentNullException">If <paramref name="text"/> or <paramref name="newValue"/> is <c>null</c>.</exception>
</member>
<member name="M:J2N.Text.StringBuilderExtensions.Replace(System.Text.StringBuilder,System.Int32,System.Int32,System.ReadOnlySpan{System.Char})">
<summary>
Replaces the specified subsequence in this builder with the specified
string, <paramref name="newValue"/>. The substring begins at the specified
<paramref name="startIndex"/> and ends to the character at
<c><paramref name="count"/> - <paramref name="startIndex"/></c> or
to the end of the sequence if no such character exists. First the
characters in the substring ar removed and then the specified
<paramref name="newValue"/> is inserted at <paramref name="startIndex"/>.
This <see cref="T:System.Text.StringBuilder"/> will be lengthened to accommodate the
specified <paramref name="newValue"/> if necessary.
<para/>
IMPORTANT: This method has .NET semantics. That is, the <paramref name="count"/> parameter is a count
rather than an exclusive end index. To translate from Java, use <c>end - start</c>
to resolve the <paramref name="count"/> parameter.
</summary>
<param name="text">This <see cref="T:System.Text.StringBuilder"/>.</param>
<param name="startIndex">The inclusive begin index in <paramref name="text"/>.</param>
<param name="count">The number of characters to replace.</param>
<param name="newValue">The replacement string.</param>
<returns>This <see cref="T:System.Text.StringBuilder"/> builder.</returns>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="startIndex"/> or <paramref name="count"/> is less than zero.
<para/>
-or-
<para/>
Enlarging the value of this instance would exceed <see cref="P:System.Text.StringBuilder.MaxCapacity"/>.
</exception>
<exception cref="T:System.ArgumentNullException">If <paramref name="text"/> is <c>null</c>.</exception>
</member>
<member name="M:J2N.Text.StringBuilderExtensions.Reverse(System.Text.StringBuilder)">
<summary>
Causes this character sequence to be replaced by the reverse of
the sequence. If there are any surrogate pairs included in the
sequence, these are treated as single characters for the
reverse operation. Thus, the order of the high-low surrogates
is never reversed.
<para/>
IMPORTANT: This operation is done in-place. Although a <see cref="T:System.Text.StringBuilder"/>
is returned, it is the SAME instance as the one that is passed in.
<para/>
Let <c>n</c> be the character length of this character sequence
(not the length in <see cref="T:System.Char"/> values) just prior to
execution of the <see cref="M:J2N.Text.StringBuilderExtensions.Reverse(System.Text.StringBuilder)"/> method. Then the
character at index <c>k</c> in the new character sequence is
equal to the character at index <c>n-k-1</c> in the old
character sequence.
<para/>
Note that the reverse operation may result in producing
surrogate pairs that were unpaired low-surrogates and
high-surrogates before the operation. For example, reversing
"&#92;uDC00&#92;uD800" produces "&#92;uD800&#92;uDC00" which is
a valid surrogate pair.
<para/>
Usage Note: This is the same operation as Java's StringBuilder.reverse()
method. However, J2N also provides <see cref="M:J2N.Text.StringExtensions.ReverseText(System.String)"/>
and <see cref="M:J2N.MemoryExtensions.ReverseText(System.Span{System.Char})"/> which
don't require a <see cref="T:System.Text.StringBuilder"/> instance.
</summary>
<param name="text">this <see cref="T:System.Text.StringBuilder"/></param>
<returns>A reference to this <see cref="T:System.Text.StringBuilder"/>, for chaining.</returns>
<exception cref="T:System.ArgumentNullException"><paramref name="text"/> is <c>null</c>.</exception>
<seealso cref="M:J2N.Text.StringExtensions.ReverseText(System.String)"/>
<seealso cref="M:J2N.MemoryExtensions.ReverseText(System.Span{System.Char})"/>
</member>
<member name="M:J2N.Text.StringBuilderExtensions.Subsequence(System.Text.StringBuilder,System.Int32,System.Int32)">
<summary>
Retrieves a sub-sequence from this instance.
The sub-sequence starts at a specified character position and has a specified length.
<para/>
IMPORTANT: This method has .NET semantics, that is, the <paramref name="length"/> parameter is a length,
not an exclusive end index as it would be in Java.
</summary>
<param name="startIndex">
The start index of the sub-sequence. It is inclusive, that
is, the index of the first character that is included in the
sub-sequence.
</param>
<param name="text">This <see cref="T:System.Text.StringBuilder"/>.</param>
<param name="length">The number of characters to return in the sub-sequence.</param>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="startIndex"/> plus <paramref name="length"/> indicates a position not within this instance.
<para/>
-or-
<para/>
<paramref name="startIndex"/> or <paramref name="length"/> is less than zero.
</exception>
</member>
<member name="T:J2N.Text.StringCharacterEnumerator">
<summary>
An implementation of <see cref="T:J2N.Text.ICharacterEnumerator"/> for strings.
</summary>
</member>
<member name="M:J2N.Text.StringCharacterEnumerator.#ctor(System.String)">
<summary>
Initializes a new <see cref="T:J2N.Text.StringCharacterEnumerator"/> on the specified string.
The begin and current indices are set to the beginning of <paramref name="value"/>, the
length is set to the length of <paramref name="value"/>.
</summary>
<param name="value">The source string to iterate over.</param>
<exception cref="T:System.ArgumentNullException"><paramref name="value"/> is <c>null</c>.</exception>
</member>
<member name="M:J2N.Text.StringCharacterEnumerator.#ctor(System.String,System.Int32)">
<summary>
Constructs a new <see cref="T:J2N.Text.StringCharacterEnumerator"/> on the specified string
with the current index set to the specified <paramref name="value"/>. The begin index is set
to the beginning of <paramref name="value"/>, the length is set to the length of <paramref name="value"/>.
</summary>
<param name="value">The source string to iterate over.</param>
<param name="position">The current index.</param>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="position"/> is less than 0.
<para/>
-or-
<para/>
<paramref name="position"/> is greater than the length of <paramref name="value"/>.
</exception>
</member>
<member name="M:J2N.Text.StringCharacterEnumerator.#ctor(System.String,System.Int32,System.Int32,System.Int32)">
<summary>
Constructs a new <see cref="T:J2N.Text.StringCharacterEnumerator"/> on the specified string
with the begin, end and current index set to the specified values.
</summary>
<param name="value">The source string to iterate over.</param>
<param name="startIndex">The index of the first character to iterate.</param>
<param name="length">The length of the characters to iterate.</param>
<param name="position">The current index.</param>
<exception cref="T:System.ArgumentNullException"><paramref name="value"/> is <c>null</c>.</exception>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="startIndex"/> is less than zero.
<para/>
-or-
<para/>
<paramref name="length"/> is less than zero.
<para/>
-or-
<para/>
<paramref name="startIndex"/> + <paramref name="length"/> indicates a position outside of <paramref name="value"/>.
<para/>
-or-
<para/>
<paramref name="position"/> is less that <paramref name="startIndex"/>.
<para/>
-or-
<para/>
<paramref name="position"/> is greater than <paramref name="startIndex"/> + <paramref name="length"/>.
</exception>
</member>
<member name="P:J2N.Text.StringCharacterEnumerator.StartIndex">
<summary>
Gets the position of the underlying character sequence where iteration begins.
</summary>
</member>
<member name="P:J2N.Text.StringCharacterEnumerator.EndIndex">
<summary>
Gets the position of the underlying character sequence where iteration ends.
<para/>
IMPORTANT: This method has .NET semantics. That is, the end index is inclusive,
not exclusive as it would be in Java. To translate from Java, always use <c>EndIndex + 1</c>.
</summary>
</member>
<member name="P:J2N.Text.StringCharacterEnumerator.Length">
<summary>
Gets the length of the span of characters that is being enumerated.
</summary>
</member>
<member name="P:J2N.Text.StringCharacterEnumerator.Index">
<summary>
Gets or sets the index of the current position. The value must be between
<see cref="P:J2N.Text.StringCharacterEnumerator.StartIndex"/> and <see cref="P:J2N.Text.StringCharacterEnumerator.EndIndex"/> inclusive.
</summary>
<exception cref="T:System.ArgumentOutOfRangeException">The value set indicates a position less than
<see cref="P:J2N.Text.StringCharacterEnumerator.StartIndex"/> or greater than <see cref="P:J2N.Text.StringCharacterEnumerator.EndIndex"/>.</exception>
</member>
<member name="M:J2N.Text.StringCharacterEnumerator.TrySetIndex(System.Int32)">
<summary>
Attempts to set the <see cref="P:J2N.Text.StringCharacterEnumerator.Index"/> to <paramref name="value"/>.
<para/>
Returns <c>true</c> if the <paramref name="value"/> passed is between
<see cref="P:J2N.Text.StringCharacterEnumerator.StartIndex"/> and <see cref="P:J2N.Text.StringCharacterEnumerator.EndIndex"/> inclusive; otherwise, returns <c>false</c>.
<para/>
If <paramref name="value"/> is less than <see cref="P:J2N.Text.StringCharacterEnumerator.StartIndex"/>, the
<see cref="P:J2N.Text.StringCharacterEnumerator.Index"/> will be set to <see cref="P:J2N.Text.StringCharacterEnumerator.StartIndex"/>.
<para/>
If <paramref name="value"/> is greater than <see cref="P:J2N.Text.StringCharacterEnumerator.EndIndex"/>, the
<see cref="P:J2N.Text.StringCharacterEnumerator.Index"/> will be set to <see cref="P:J2N.Text.StringCharacterEnumerator.EndIndex"/>.
</summary>
<param name="value">The new index.</param>
<returns><c>true</c> if the <paramref name="value"/> passed is between
<see cref="P:J2N.Text.StringCharacterEnumerator.StartIndex"/> and <see cref="P:J2N.Text.StringCharacterEnumerator.EndIndex"/> inclusive; otherwise, <c>false</c>.</returns>
</member>
<member name="P:J2N.Text.StringCharacterEnumerator.Current">
<summary>
Gets the <see cref="T:System.Char"/> at the current position.
</summary>
</member>
<member name="M:J2N.Text.StringCharacterEnumerator.Dispose">
<inheritdoc/>
</member>
<member name="M:J2N.Text.StringCharacterEnumerator.MoveFirst">
<inheritdoc/>
</member>
<member name="M:J2N.Text.StringCharacterEnumerator.MoveNext">
<inheritdoc/>
</member>
<member name="M:J2N.Text.StringCharacterEnumerator.MovePrevious">
<inheritdoc/>
</member>
<member name="M:J2N.Text.StringCharacterEnumerator.MoveLast">
<inheritdoc/>
</member>
<member name="M:J2N.Text.StringCharacterEnumerator.Reset(System.String)">
<summary>
Sets the source string to iterate over. The begin position and length are
set to the start and length of <paramref name="value"/>.
<para/>
Usage Note: This corresponds to the setText(String) method in the JDK.
</summary>
<param name="value">The new source string.</param>
<exception cref="T:System.ArgumentNullException"><paramref name="value"/> is <c>null</c>.</exception>
</member>
<member name="M:J2N.Text.StringCharacterEnumerator.Reset(System.String,System.Int32)">
<summary>
Sets the source string to iterate over and initial position to start from.
</summary>
<param name="value">The new source string.</param>
<param name="position">The current index.</param>
<exception cref="T:System.ArgumentNullException"><paramref name="value"/> is <c>null</c>.</exception>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="position"/> is less than 0.
<para/>
-or-
<para/>
<paramref name="position"/> is greater than the length of <paramref name="value"/>.
</exception>
</member>
<member name="M:J2N.Text.StringCharacterEnumerator.Reset(System.String,System.Int32,System.Int32,System.Int32)">
<summary>
Sets the source string, startIndex, and length to iterate over and initial position to start from.
</summary>
<param name="value">The new source string.</param>
<param name="startIndex">The index of the first character to iterate.</param>
<param name="length">The length of the characters to iterate.</param>
<param name="position">The current index.</param>
<exception cref="T:System.ArgumentNullException"><paramref name="value"/> is <c>null</c>.</exception>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="startIndex"/> is less than zero.
<para/>
-or-
<para/>
<paramref name="length"/> is less than zero.
<para/>
-or-
<para/>
<paramref name="startIndex"/> + <paramref name="length"/> indicates a position outside of <paramref name="value"/>.
<para/>
-or-
<para/>
<paramref name="position"/> is less that <paramref name="startIndex"/>.
<para/>
-or-
<para/>
<paramref name="position"/> is greater than <paramref name="startIndex"/> + <paramref name="length"/>.
</exception>
</member>
<member name="M:J2N.Text.StringCharacterEnumerator.Equals(System.Object)">
<summary>
Compares the specified object with this <see cref="T:J2N.Text.StringCharacterEnumerator"/>
and indicates if they are equal. In order to be equal, <paramref name="obj"/>
must be an instance of <see cref="T:J2N.Text.StringCharacterEnumerator"/> that iterates over
the same sequence of characters with the same index.
</summary>
<param name="obj">The object to compare with this object.</param>
<returns><c>true</c> if the specified object is equal to this <see cref="T:J2N.Text.StringCharacterEnumerator"/>; <c>false</c> otherwise.</returns>
<seealso cref="M:J2N.Text.StringCharacterEnumerator.GetHashCode"/>
</member>
<member name="M:J2N.Text.StringCharacterEnumerator.GetHashCode">
<summary>
Gets the hash code for this <see cref="T:J2N.Text.StringCharacterEnumerator"/>.
</summary>
<returns>The hash code.</returns>
</member>
<member name="M:J2N.Text.StringCharacterEnumerator.Clone">
<summary>
Returns a new <see cref="T:J2N.Text.StringCharacterEnumerator"/> with the same source
string, startIndex, length, and current index as this enumerator.
</summary>
<returns>A shallow copy of this enumerator.</returns>
</member>
<member name="T:J2N.Text.StringCharSequence">
<summary>
A wrapper class that represents a <see cref="T:System.String"/> and implements <see cref="T:J2N.Text.ICharSequence"/>.
</summary>
</member>
<member name="M:J2N.Text.StringCharSequence.#ctor(System.String)">
<summary>
Initializes a new instance of <see cref="T:J2N.Text.StringCharSequence"/> with the provided <paramref name="value"/>.
</summary>
<param name="value">A <see cref="T:char[]"/> to wrap in a <see cref="T:J2N.Text.ICharSequence"/>. The value may be <c>null</c>.</param>
</member>
<member name="P:J2N.Text.StringCharSequence.Value">
<summary>
Gets the current <see cref="T:System.String"/> value.
</summary>
</member>
<member name="P:J2N.Text.StringCharSequence.HasValue">
<summary>
Gets a value indicating whether the current <see cref="T:J2N.Text.StringCharSequence"/>
has a valid <see cref="T:System.String"/> value.
</summary>
</member>
<member name="P:J2N.Text.StringCharSequence.Item(System.Int32)">
<summary>
Gets the character at the specified index, with the first character
having index zero.
</summary>
<param name="index">The index of the character to return.</param>
<returns>The requested character.</returns>
<exception cref="T:System.IndexOutOfRangeException">
If <c>index &lt; 0</c> or <c>index</c> is greater than the
length of this sequence.
</exception>
<exception cref="T:System.InvalidOperationException">
If the underlying value of this sequence is <c>null</c>.
</exception>
</member>
<member name="P:J2N.Text.StringCharSequence.Length">
<summary>
Gets the number of characters in this sequence.
</summary>
</member>
<member name="M:J2N.Text.StringCharSequence.Subsequence(System.Int32,System.Int32)">
<summary>
Retrieves a sub-sequence from this instance.
The sub-sequence starts at a specified character position and has a specified length.
<para/>
IMPORTANT: This method has .NET semantics, that is, the second parameter is a length,
not an exclusive end index as it would be in Java. To translate from Java to .NET,
callers must account for this by subtracting (end - start) for the <paramref name="length"/>.
</summary>
<param name="startIndex">
The start index of the sub-sequence. It is inclusive, that
is, the index of the first character that is included in the
sub-sequence.
</param>
<param name="length">The number of characters to return in the sub-sequence.</param>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="startIndex"/> plus <paramref name="length"/> indicates a position not within this instance.
<para/>
-or-
<para/>
<paramref name="startIndex"/> or <paramref name="length"/> is less than zero.
</exception>
</member>
<member name="M:J2N.Text.StringCharSequence.ToString">
<summary>
Returns a string with the same characters in the same order as in this
sequence.
</summary>
<returns>A string based on this sequence.</returns>
</member>
<member name="M:J2N.Text.StringCharSequence.op_Equality(J2N.Text.StringCharSequence,J2N.Text.StringCharSequence)">
<summary>
Compares <paramref name="csq1"/> and <paramref name="csq2"/> for equality.
Two character sequences are considered equal if they have the same characters
in the same order.
</summary>
<param name="csq1">The first sequence.</param>
<param name="csq2">The second sequence.</param>
<returns><c>true</c> if <paramref name="csq1"/> and <paramref name="csq2"/> represent to the same instance; otherwise, <c>false</c>.</returns>
</member>
<member name="M:J2N.Text.StringCharSequence.op_Inequality(J2N.Text.StringCharSequence,J2N.Text.StringCharSequence)">
<summary>
Compares <paramref name="csq1"/> and <paramref name="csq2"/> for inequality.
Two character sequences are considered equal if they have the same characters
in the same order.
</summary>
<param name="csq1">The first sequence.</param>
<param name="csq2">The second sequence.</param>
<returns><c>true</c> if <paramref name="csq1"/> and <paramref name="csq2"/> do not represent to the same instance; otherwise, <c>false</c>.</returns>
</member>
<member name="M:J2N.Text.StringCharSequence.op_Equality(J2N.Text.StringCharSequence,System.String)">
<summary>
Compares <paramref name="csq1"/> and <paramref name="csq2"/> for equality.
Two character sequences are considered equal if they have the same characters
in the same order.
</summary>
<param name="csq1">The first sequence.</param>
<param name="csq2">The second sequence.</param>
<returns><c>true</c> if <paramref name="csq1"/> and <paramref name="csq2"/> represent to the same instance; otherwise, <c>false</c>.</returns>
</member>
<member name="M:J2N.Text.StringCharSequence.op_Inequality(J2N.Text.StringCharSequence,System.String)">
<summary>
Compares <paramref name="csq1"/> and <paramref name="csq2"/> for inequality.
Two character sequences are considered equal if they have the same characters
in the same order.
</summary>
<param name="csq1">The first sequence.</param>
<param name="csq2">The second sequence.</param>
<returns><c>true</c> if <paramref name="csq1"/> and <paramref name="csq2"/> do not represent to the same instance; otherwise, <c>false</c>.</returns>
</member>
<member name="M:J2N.Text.StringCharSequence.op_Equality(System.String,J2N.Text.StringCharSequence)">
<summary>
Compares <paramref name="csq1"/> and <paramref name="csq2"/> for equality.
Two character sequences are considered equal if they have the same characters
in the same order.
</summary>
<param name="csq1">The first sequence.</param>
<param name="csq2">The second sequence.</param>
<returns><c>true</c> if <paramref name="csq1"/> and <paramref name="csq2"/> represent to the same instance; otherwise, <c>false</c>.</returns>
</member>
<member name="M:J2N.Text.StringCharSequence.op_Inequality(System.String,J2N.Text.StringCharSequence)">
<summary>
Compares <paramref name="csq1"/> and <paramref name="csq2"/> for inequality.
Two character sequences are considered equal if they have the same characters
in the same order.
</summary>
<param name="csq1">The first sequence.</param>
<param name="csq2">The second sequence.</param>
<returns><c>true</c> if <paramref name="csq1"/> and <paramref name="csq2"/> do not represent to the same instance; otherwise, <c>false</c>.</returns>
</member>
<member name="M:J2N.Text.StringCharSequence.Equals(J2N.Text.ICharSequence)">
<summary>
Determines whether this <see cref="T:J2N.Text.StringCharSequence"/> is equal to <paramref name="other"/>.
</summary>
<param name="other">An <see cref="T:J2N.Text.ICharSequence"/> to compare to the current <see cref="T:J2N.Text.StringCharSequence"/>.</param>
<returns><c>true</c> if <paramref name="other"/> is equal to the current <see cref="T:J2N.Text.StringCharSequence"/>; otherwise, <c>false</c>.</returns>
</member>
<member name="M:J2N.Text.StringCharSequence.Equals(J2N.Text.StringCharSequence)">
<summary>
Determines whether this <see cref="T:J2N.Text.StringCharSequence"/> is equal to <paramref name="other"/>.
</summary>
<param name="other">A <see cref="T:J2N.Text.StringCharSequence"/> to compare to the current <see cref="T:J2N.Text.StringCharSequence"/>.</param>
<returns><c>true</c> if <paramref name="other"/> is equal to the current <see cref="T:J2N.Text.StringCharSequence"/>; otherwise, <c>false</c>.</returns>
</member>
<member name="M:J2N.Text.StringCharSequence.Equals(J2N.Text.CharArrayCharSequence)">
<summary>
Determines whether this <see cref="T:J2N.Text.StringCharSequence"/> is equal to <paramref name="other"/>.
</summary>
<param name="other">A <see cref="T:J2N.Text.CharArrayCharSequence"/> to compare to the current <see cref="T:J2N.Text.StringCharSequence"/>.</param>
<returns><c>true</c> if <paramref name="other"/> is equal to the current <see cref="T:J2N.Text.StringCharSequence"/>; otherwise, <c>false</c>.</returns>
</member>
<member name="M:J2N.Text.StringCharSequence.Equals(J2N.Text.StringBuilderCharSequence)">
<summary>
Determines whether this <see cref="T:J2N.Text.StringCharSequence"/> is equal to <paramref name="other"/>.
</summary>
<param name="other">A <see cref="T:J2N.Text.StringBuilderCharSequence"/> to compare to the current <see cref="T:J2N.Text.StringCharSequence"/>.</param>
<returns><c>true</c> if <paramref name="other"/> is equal to the current <see cref="T:J2N.Text.StringCharSequence"/>; otherwise, <c>false</c>.</returns>
</member>
<member name="M:J2N.Text.StringCharSequence.Equals(System.String)">
<summary>
Determines whether this <see cref="T:J2N.Text.StringCharSequence"/> is equal to <paramref name="other"/>.
</summary>
<param name="other">A <see cref="T:System.String"/> to compare to the current <see cref="T:J2N.Text.StringCharSequence"/>.</param>
<returns><c>true</c> if <paramref name="other"/> is equal to the current <see cref="T:J2N.Text.StringCharSequence"/>; otherwise, <c>false</c>.</returns>
</member>
<member name="M:J2N.Text.StringCharSequence.Equals(System.Text.StringBuilder)">
<summary>
Determines whether this <see cref="T:J2N.Text.StringCharSequence"/> is equal to <paramref name="other"/>.
</summary>
<param name="other">A <see cref="T:System.Text.StringBuilder"/> to compare to the current <see cref="T:J2N.Text.StringCharSequence"/>.</param>
<returns><c>true</c> if <paramref name="other"/> is equal to the current <see cref="T:J2N.Text.StringCharSequence"/>; otherwise, <c>false</c>.</returns>
</member>
<member name="M:J2N.Text.StringCharSequence.Equals(System.Char[])">
<summary>
Determines whether this <see cref="T:J2N.Text.StringCharSequence"/> is equal to <paramref name="other"/>.
</summary>
<param name="other">A <see cref="T:char[]"/> to compare to the current <see cref="T:J2N.Text.StringCharSequence"/>.</param>
<returns><c>true</c> if <paramref name="other"/> is equal to the current <see cref="T:J2N.Text.StringCharSequence"/>; otherwise, <c>false</c>.</returns>
</member>
<member name="M:J2N.Text.StringCharSequence.Equals(System.Object)">
<summary>
Determines whether this <see cref="T:J2N.Text.StringCharSequence"/> is equal to <paramref name="other"/>.
</summary>
<param name="other">An object to compare to the current <see cref="T:J2N.Text.StringCharSequence"/>.</param>
<returns><c>true</c> if <paramref name="other"/> is equal to the current <see cref="T:J2N.Text.StringCharSequence"/>; otherwise, <c>false</c>.</returns>
</member>
<member name="M:J2N.Text.StringCharSequence.GetHashCode">
<summary>
Gets the hash code for the current <see cref="T:J2N.Text.ICharSequence"/>.
</summary>
<returns>Returns the hash code for <see cref="P:J2N.Text.StringCharSequence.Value"/>. If <see cref="P:J2N.Text.StringCharSequence.Value"/> is <c>null</c>, returns <see cref="F:System.Int32.MaxValue"/>.</returns>
</member>
<member name="M:J2N.Text.StringCharSequence.CompareTo(J2N.Text.ICharSequence)">
<summary>
Compares this instance with a specified <see cref="T:J2N.Text.ICharSequence"/> object and indicates whether
this instance precedes, follows, or appears in the same position in the sort order as the specified string.
</summary>
<param name="other">The <see cref="T:J2N.Text.ICharSequence"/> to compare with this instance.</param>
<returns>
An integer that indicates the lexical relationship between the two comparands.
Less than zero indicates the comparison value is greater than the current string.
Zero indicates the strings are equal.
Greater than zero indicates the comparison value is less than the current string.
</returns>
</member>
<member name="M:J2N.Text.StringCharSequence.CompareTo(System.String)">
<summary>
Compares this instance with a specified <see cref="T:System.String"/> object and indicates whether
this instance precedes, follows, or appears in the same position in the sort order as the specified string.
</summary>
<param name="other">The <see cref="T:System.String"/> to compare with this instance.</param>
<returns>
An integer that indicates the lexical relationship between the two comparands.
Less than zero indicates the comparison value is greater than the current string.
Zero indicates the strings are equal.
Greater than zero indicates the comparison value is less than the current string.
</returns>
</member>
<member name="M:J2N.Text.StringCharSequence.CompareTo(System.Text.StringBuilder)">
<summary>
Compares this instance with a specified <see cref="T:System.Text.StringBuilder"/> object and indicates whether
this instance precedes, follows, or appears in the same position in the sort order as the specified string.
</summary>
<param name="other">The <see cref="T:System.Text.StringBuilder"/> to compare with this instance.</param>
<returns>
An integer that indicates the lexical relationship between the two comparands.
Less than zero indicates the comparison value is greater than the current string.
Zero indicates the strings are equal.
Greater than zero indicates the comparison value is less than the current string.
</returns>
</member>
<member name="M:J2N.Text.StringCharSequence.CompareTo(System.Char[])">
<summary>
Compares this instance with a specified <see cref="T:char[]"/> object and indicates whether
this instance precedes, follows, or appears in the same position in the sort order as the specified string.
</summary>
<param name="other">The <see cref="T:char[]"/> to compare with this instance.</param>
<returns>
An integer that indicates the lexical relationship between the two comparands.
Less than zero indicates the comparison value is greater than the current string.
Zero indicates the strings are equal.
Greater than zero indicates the comparison value is less than the current string.
</returns>
</member>
<member name="M:J2N.Text.StringCharSequence.CompareTo(System.Object)">
<summary>
Compares this instance with a specified <see cref="T:System.Object"/> and indicates whether
this instance precedes, follows, or appears in the same position in the sort order as the specified string.
</summary>
<param name="other">The <see cref="T:System.Object"/> to compare with this instance.</param>
<returns>
An integer that indicates the lexical relationship between the two comparands.
Less than zero indicates the comparison value is greater than the current string.
Zero indicates the strings are equal.
Greater than zero indicates the comparison value is less than the current string.
</returns>
</member>
<member name="T:J2N.Text.StringExtensions">
<summary>
Extenions to the <see cref="T:System.String"/> class.
</summary>
</member>
<member name="M:J2N.Text.StringExtensions.AsCharSequence(System.String)">
<summary>
Convenience method to wrap a string in a <see cref="T:J2N.Text.StringCharSequence"/>
so a <see cref="T:System.String"/> can be used as <see cref="T:J2N.Text.ICharSequence"/> in .NET.
</summary>
</member>
<member name="M:J2N.Text.StringExtensions.CompareToOrdinal(System.String,J2N.Text.ICharSequence)">
<summary>
This method mimics the Java String.compareTo(CharSequence) method in that it
<list type="number">
<item><description>Compares the strings using lexographic sorting rules</description></item>
<item><description>Performs a culture-insensitive comparison</description></item>
</list>
This method is a convenience to replace the .NET CompareTo method
on all strings, provided the logic does not expect specific values
but is simply comparing them with <c>&gt;</c> or <c>&lt;</c>.
</summary>
<param name="str">This string.</param>
<param name="value">The string to compare with.</param>
<returns>
An integer that indicates the lexical relationship between the two comparands.
Less than zero indicates the comparison value is greater than the current string.
Zero indicates the strings are equal.
Greater than zero indicates the comparison value is less than the current string.
</returns>
</member>
<member name="M:J2N.Text.StringExtensions.CompareToOrdinal(System.String,System.Char[])">
<summary>
This method mimics the Java String.compareTo(CharSequence) method in that it
<list type="number">
<item><description>Compares the strings using lexographic sorting rules</description></item>
<item><description>Performs a culture-insensitive comparison</description></item>
</list>
This method is a convenience to replace the .NET CompareTo method
on all strings, provided the logic does not expect specific values
but is simply comparing them with <c>&gt;</c> or <c>&lt;</c>.
</summary>
<param name="str">This string.</param>
<param name="value">The string to compare with.</param>
<returns>
An integer that indicates the lexical relationship between the two comparands.
Less than zero indicates the comparison value is greater than the current string.
Zero indicates the strings are equal.
Greater than zero indicates the comparison value is less than the current string.
</returns>
</member>
<member name="M:J2N.Text.StringExtensions.CompareToOrdinal(System.String,System.Text.StringBuilder)">
<summary>
This method mimics the Java String.compareTo(CharSequence) method in that it
<list type="number">
<item><description>Compares the strings using lexographic sorting rules</description></item>
<item><description>Performs a culture-insensitive comparison</description></item>
</list>
This method is a convenience to replace the .NET CompareTo method
on all strings, provided the logic does not expect specific values
but is simply comparing them with <c>&gt;</c> or <c>&lt;</c>.
</summary>
<param name="str">This string.</param>
<param name="value">The string to compare with.</param>
<returns>
An integer that indicates the lexical relationship between the two comparands.
Less than zero indicates the comparison value is greater than the current string.
Zero indicates the strings are equal.
Greater than zero indicates the comparison value is less than the current string.
</returns>
</member>
<member name="M:J2N.Text.StringExtensions.CompareToOrdinal(System.String,System.String)">
<summary>
This method mimics the Java String.compareTo(String) method in that it
<list type="number">
<item><description>Compares the strings using lexographic sorting rules</description></item>
<item><description>Performs a culture-insensitive comparison</description></item>
</list>
This method is a convenience to replace the .NET CompareTo method
on all strings, provided the logic does not expect specific values
but is simply comparing them with <c>&gt;</c> or <c>&lt;</c>.
</summary>
<param name="str">This string.</param>
<param name="value">The string to compare with.</param>
<returns>
An integer that indicates the lexical relationship between the two comparands.
Less than zero indicates the comparison value is greater than the current string.
Zero indicates the strings are equal.
Greater than zero indicates the comparison value is less than the current string.
</returns>
</member>
<member name="M:J2N.Text.StringExtensions.CompareToOrdinal(System.String,System.ReadOnlySpan{System.Char})">
<summary>
This method mimics the Java String.compareTo(CharSequence) method in that it
<list type="number">
<item><description>Compares the strings using lexographic sorting rules</description></item>
<item><description>Performs a culture-insensitive comparison</description></item>
</list>
This method is a convenience to replace the .NET CompareTo method
on all strings, provided the logic does not expect specific values
but is simply comparing them with <c>&gt;</c> or <c>&lt;</c>.
</summary>
<param name="str">This string.</param>
<param name="value">The string to compare with.</param>
<returns>
An integer that indicates the lexical relationship between the two comparands.
Less than zero indicates the comparison value is greater than the current string.
Zero indicates the strings are equal.
Greater than zero indicates the comparison value is less than the current string.
</returns>
</member>
<member name="M:J2N.Text.StringExtensions.Contains(System.String,System.Char)">
<summary>
Returns a value indicating whether a specified character occurs within this string.
<para/>
This overload is missing from the <see cref="T:System.String"/> class prior to .NET Standard 2.1,
so it is being included here for convenience.
</summary>
<param name="input">The string in which to seek <paramref name="value"/>.</param>
<param name="value">The character to seek.</param>
<returns><c>true</c> if the <paramref name="value"/> parameter occurs within this string; otherwise, <c>false</c>.</returns>
<remarks>This method performs an ordinal (case-sensitive and culture-insensitive) comparison.</remarks>
<exception cref="T:System.ArgumentNullException"><paramref name="input"/> is <c>null</c>.</exception>
</member>
<member name="M:J2N.Text.StringExtensions.ContentEquals(System.String,J2N.Text.ICharSequence)">
<summary>
Compares a <see cref="T:J2N.Text.ICharSequence"/> to this <see cref="T:System.String"/> to determine if
their contents are equal.
<para/>
This differs from <see cref="M:System.String.Equals(System.String,System.StringComparison)"/> in that it does not
consider the <see cref="T:System.String"/> type to be part of the comparison - it will match for any character sequence
that contains matching characters.
<para/>
The comparison is done using <see cref="F:System.StringComparison.Ordinal"/> comparison rules.
</summary>
<param name="text">This <see cref="T:System.String"/>.</param>
<param name="charSequence">The character sequence to compare to.</param>
<returns><c>true</c> if this <see cref="T:System.String"/> represents the same
sequence of characters as the specified <paramref name="charSequence"/>; otherwise, <c>false</c>.</returns>
</member>
<member name="M:J2N.Text.StringExtensions.ContentEquals(System.String,System.Char[])">
<summary>
Compares a <see cref="T:J2N.Text.ICharSequence"/> to this <see cref="T:System.String"/> to determine if
their contents are equal.
<para/>
This differs from <see cref="M:System.String.Equals(System.String,System.StringComparison)"/> in that it does not
consider the <see cref="T:System.String"/> type to be part of the comparison - it will match for any character sequence
that contains matching characters.
<para/>
The comparison is done using <see cref="F:System.StringComparison.Ordinal"/> comparison rules.
</summary>
<param name="text">This <see cref="T:System.String"/>.</param>
<param name="charSequence">The character sequence to compare to.</param>
<returns><c>true</c> if this <see cref="T:System.String"/> represents the same
sequence of characters as the specified <paramref name="charSequence"/>; otherwise, <c>false</c>.</returns>
</member>
<member name="M:J2N.Text.StringExtensions.ContentEquals(System.String,System.Text.StringBuilder)">
<summary>
Compares a <see cref="T:J2N.Text.ICharSequence"/> to this <see cref="T:System.String"/> to determine if
their contents are equal.
<para/>
This differs from <see cref="M:System.String.Equals(System.String,System.StringComparison)"/> in that it does not
consider the <see cref="T:System.String"/> type to be part of the comparison - it will match for any character sequence
that contains matching characters.
<para/>
The comparison is done using <see cref="F:System.StringComparison.Ordinal"/> comparison rules.
</summary>
<param name="text">This <see cref="T:System.String"/>.</param>
<param name="charSequence">The character sequence to compare to.</param>
<returns><c>true</c> if this <see cref="T:System.String"/> represents the same
sequence of characters as the specified <paramref name="charSequence"/>; otherwise, <c>false</c>.</returns>
</member>
<member name="M:J2N.Text.StringExtensions.ContentEquals(System.String,System.String)">
<summary>
Compares a <see cref="T:J2N.Text.ICharSequence"/> to this <see cref="T:System.String"/> to determine if
their contents are equal.
<para/>
This differs from <see cref="M:System.String.Equals(System.String,System.StringComparison)"/> in that it does not
consider the <see cref="T:System.String"/> type to be part of the comparison - it will match for any character sequence
that contains matching characters.
<para/>
The comparison is done using <see cref="F:System.StringComparison.Ordinal"/> comparison rules.
</summary>
<param name="text">This <see cref="T:System.String"/>.</param>
<param name="charSequence">The character sequence to compare to.</param>
<returns><c>true</c> if this <see cref="T:System.String"/> represents the same
sequence of characters as the specified <paramref name="charSequence"/>; otherwise, <c>false</c>.</returns>
</member>
<member name="M:J2N.Text.StringExtensions.ContentEquals(System.String,System.ReadOnlySpan{System.Char})">
<summary>
Compares a <see cref="T:System.ReadOnlySpan`1"/> to this <see cref="T:System.String"/> to determine if
their contents are equal.
<para/>
This differs from <see cref="M:System.String.Equals(System.String,System.StringComparison)"/> in that it does not
consider the <see cref="T:System.String"/> type to be part of the comparison - it will match for any character sequence
that contains matching characters.
<para/>
The comparison is done using <see cref="F:System.StringComparison.Ordinal"/> comparison rules.
</summary>
<param name="text">This <see cref="T:System.String"/>.</param>
<param name="charSequence">The character sequence to compare to.</param>
<returns><c>true</c> if this <see cref="T:System.String"/> represents the same
sequence of characters as the specified <paramref name="charSequence"/>; otherwise, <c>false</c>.</returns>
</member>
<member name="M:J2N.Text.StringExtensions.ContentEquals(System.String,J2N.Text.ICharSequence,System.StringComparison)">
<summary>
Compares a <see cref="T:J2N.Text.ICharSequence"/> to this <see cref="T:System.String"/> to determine if
their contents are equal.
<para/>
This differs from <see cref="M:System.String.Equals(System.String,System.StringComparison)"/> in that it does not
consider the <see cref="T:System.String"/> type to be part of the comparison - it will match for any character sequence
that contains matching characters.
</summary>
<param name="text">This <see cref="T:System.String"/>.</param>
<param name="charSequence">The character sequence to compare to.</param>
<param name="comparisonType">One of the enumeration values that specifies the rules for the comparison.</param>
<returns><c>true</c> if this <see cref="T:System.String"/> represents the same
sequence of characters as the specified <paramref name="charSequence"/>; otherwise, <c>false</c>.</returns>
<exception cref="T:System.ArgumentOutOfRangeException"><paramref name="comparisonType"/> is not a <see cref="T:System.StringComparison"/> value.</exception>
</member>
<member name="M:J2N.Text.StringExtensions.ContentEquals(System.String,System.Char[],System.StringComparison)">
<summary>
Compares a <see cref="T:J2N.Text.ICharSequence"/> to this <see cref="T:System.String"/> to determine if
their contents are equal.
<para/>
This differs from <see cref="M:System.String.Equals(System.String,System.StringComparison)"/> in that it does not
consider the <see cref="T:System.String"/> type to be part of the comparison - it will match for any character sequence
that contains matching characters.
</summary>
<param name="text">This <see cref="T:System.String"/>.</param>
<param name="charSequence">The character sequence to compare to.</param>
<param name="comparisonType">One of the enumeration values that specifies the rules for the comparison.</param>
<returns><c>true</c> if this <see cref="T:System.String"/> represents the same
sequence of characters as the specified <paramref name="charSequence"/>; otherwise, <c>false</c>.</returns>
<exception cref="T:System.ArgumentOutOfRangeException"><paramref name="comparisonType"/> is not a <see cref="T:System.StringComparison"/> value.</exception>
</member>
<member name="M:J2N.Text.StringExtensions.ContentEquals(System.String,System.Text.StringBuilder,System.StringComparison)">
<summary>
Compares a <see cref="T:J2N.Text.ICharSequence"/> to this <see cref="T:System.String"/> to determine if
their contents are equal.
<para/>
This differs from <see cref="M:System.String.Equals(System.String,System.StringComparison)"/> in that it does not
consider the <see cref="T:System.String"/> type to be part of the comparison - it will match for any character sequence
that contains matching characters.
</summary>
<param name="text">This <see cref="T:System.String"/>.</param>
<param name="charSequence">The character sequence to compare to.</param>
<param name="comparisonType">One of the enumeration values that specifies the rules for the comparison.</param>
<returns><c>true</c> if this <see cref="T:System.String"/> represents the same
sequence of characters as the specified <paramref name="charSequence"/>; otherwise, <c>false</c>.</returns>
<exception cref="T:System.ArgumentOutOfRangeException"><paramref name="comparisonType"/> is not a <see cref="T:System.StringComparison"/> value.</exception>
</member>
<member name="M:J2N.Text.StringExtensions.ContentEquals(System.String,System.String,System.StringComparison)">
<summary>
Compares a <see cref="T:J2N.Text.ICharSequence"/> to this <see cref="T:System.String"/> to determine if
their contents are equal.
<para/>
This differs from <see cref="M:System.String.Equals(System.String,System.StringComparison)"/> in that it does not
consider the <see cref="T:System.String"/> type to be part of the comparison - it will match for any character sequence
that contains matching characters.
</summary>
<param name="text">This <see cref="T:System.String"/>.</param>
<param name="charSequence">The character sequence to compare to.</param>
<param name="comparisonType">One of the enumeration values that specifies the rules for the comparison.</param>
<returns><c>true</c> if this <see cref="T:System.String"/> represents the same
sequence of characters as the specified <paramref name="charSequence"/>; otherwise, <c>false</c>.</returns>
<exception cref="T:System.ArgumentOutOfRangeException"><paramref name="comparisonType"/> is not a <see cref="T:System.StringComparison"/> value.</exception>
</member>
<member name="M:J2N.Text.StringExtensions.ContentEquals(System.String,System.ReadOnlySpan{System.Char},System.StringComparison)">
<summary>
Compares a <see cref="T:System.ReadOnlySpan`1"/> to this <see cref="T:System.String"/> to determine if
their contents are equal.
<para/>
This differs from <see cref="M:System.String.Equals(System.String,System.StringComparison)"/> in that it does not
consider the <see cref="T:System.String"/> type to be part of the comparison - it will match for any character sequence
that contains matching characters.
</summary>
<param name="text">This <see cref="T:System.String"/>.</param>
<param name="charSequence">The character sequence to compare to.</param>
<param name="comparisonType">One of the enumeration values that specifies the rules for the comparison.</param>
<returns><c>true</c> if this <see cref="T:System.String"/> represents the same
sequence of characters as the specified <paramref name="charSequence"/>; otherwise, <c>false</c>.</returns>
<exception cref="T:System.ArgumentOutOfRangeException"><paramref name="comparisonType"/> is not a <see cref="T:System.StringComparison"/> value.</exception>
</member>
<member name="M:J2N.Text.StringExtensions.GetBytes(System.String,System.Text.Encoding)">
<summary>
Encodes this <see cref="T:System.String"/> into a sequence of bytes using the named
<see cref="T:System.Text.Encoding"/>, storing the result into a new byte array.
</summary>
<param name="text">This <see cref="T:System.String"/>.</param>
<param name="encoding">A supported <see cref="T:System.Text.Encoding"/>.</param>
<returns>The resultant byte array.</returns>
<exception cref="T:System.ArgumentNullException">If <paramref name="text"/> or <paramref name="encoding"/> is <c>null</c>.</exception>
</member>
<member name="M:J2N.Text.StringExtensions.IndexOf(System.String,System.Int32)">
<summary>
Returns the index within this string of the first occurrence of
the specified character. If a character with value
<paramref name="codePoint"/> occurs in the character sequence represented by
this <see cref="T:System.String"/> object, then the index (in Unicode
code units) of the first such occurrence is returned. For
values of <paramref name="codePoint"/> in the range from 0 to 0xFFFF
(inclusive), this is the smallest value <i>k</i> such that:
<code>
this[(<i>k</i>] == <paramref name="codePoint"/>
</code>
is true. For other values of <paramref name="codePoint"/>, it is the
smallest value <i>k</i> such that:
<code>
this.CodePointAt(<i>k</i>) == <paramref name="codePoint"/>
</code>
is true. In either case, if no such character occurs in this
string, then <c>-1</c> is returned.
</summary>
<param name="text">This <see cref="T:System.String"/>.</param>
<param name="codePoint">A character (Unicode code point).</param>
<returns>The index of the first occurrence of the character in the
character sequence represented by this object, or
<c>-1</c> if the character does not occur.
</returns>
<exception cref="T:System.ArgumentNullException">If <paramref name="text"/> is <c>null</c>.</exception>
</member>
<member name="M:J2N.Text.StringExtensions.IndexOf(System.String,System.Int32,System.Int32)">
<summary>
Returns the index within this string of the first occurrence of the
specified character, starting the search at the specified index.
</summary>
<remarks>
If a character with value <paramref name="codePoint"/> occurs in the
character sequence represented by this <see cref="T:System.String"/>
object at an index no smaller than <paramref name="startIndex"/>, then
the index of the first such occurrence is returned. For values
of <paramref name="codePoint"/> in the range from 0 to 0xFFFF (inclusive),
this is the smallest value <i>k</i> such that:
<code>
(this[<i>k</i>] == <paramref name="codePoint"/>) &amp;&amp; (<i>k</i> &gt;= <paramref name="startIndex"/>)
</code>
is true. For other values of <code>ch</code>, it is the
smallest value <i>k</i> such that:
<code>
(this.CodePointAt(<i>k</i>) == <paramref name="codePoint"/>) &amp;&amp; (<i>k</i> &gt;= <paramref name="startIndex"/>)
</code>
is true. In either case, if no such character occurs in this
string at or after position <paramref name="startIndex"/>, then
<c>-1</c> is returned.
<para/>
There is no restriction on the value of <paramref name="startIndex"/>. If it
is negative, it has the same effect as if it were zero: this entire
string may be searched. If it is greater than the length of this
string, it has the same effect as if it were equal to the length of
this string: <c>-1</c> is returned.
<para/>
All indices are specified in <c>char</c> values
(Unicode code units).
</remarks>
<param name="text">This <see cref="T:System.String"/>.</param>
<param name="codePoint">A character (Unicode code point).</param>
<param name="startIndex">The index to start the search from.</param>
<returns>The index of the first occurrence of the character in the
character sequence represented by this object that is greater
than or equal to <paramref name="startIndex"/>, or <c>-1</c>
if the character does not occur.
</returns>
<exception cref="T:System.ArgumentNullException">If <paramref name="text"/> is <c>null</c>.</exception>
</member>
<member name="M:J2N.Text.StringExtensions.IndexOfSupplementary(System.String,System.Int32,System.Int32)">
<summary>
Handles (rare) calls of indexOf with a supplementary character.
</summary>
</member>
<member name="M:J2N.Text.StringExtensions.Intern(System.String)">
<summary>
Returns a canonical representation for the string object.
<para/>
A pool of strings, initially empty, is maintained privately.
<para/>
When the intern method is invoked, if the pool already contains a
string equal to <paramref name="text"/> (this string) as determined by
<see cref="M:System.String.CompareOrdinal(System.String,System.String)"/> method, then the string from the pool is
returned. Otherwise, <paramref name="text"/> (this string) is added to the
pool and a reference to <paramref name="text"/> (this string) is returned.
</summary>
<param name="text">This <see cref="T:System.String"/>.</param>
<returns>A string that has the same contents of this string, but is guaranteed
to be from a pool of unique strings.</returns>
</member>
<member name="M:J2N.Text.StringExtensions.LastIndexOf(System.String,System.Int32)">
<summary>
Returns the index within this string of the last occurrence of
the specified character. For values of <paramref name="codePoint"/> in the
range from 0 to 0xFFFF (inclusive), the index (in Unicode code
units) returned is the largest value <i>k</i> such that:
<code>
this[<i>k</i>] == <paramref name="codePoint"/>
</code>
is <c>true</c>. For other values of <paramref name="codePoint"/>, it is the
largest value in <i>k</i> such that:
<code>
this.CodePointAt(<i>k</i>) = <paramref name="codePoint"/>
</code>
is <c>true</c>. In either case, if no such character occurs in this
string, then <c>-1</c> is returned. The
<paramref name="text"/> is searched backwards starting at the last character.
</summary>
<param name="text">This <see cref="T:System.String"/>.</param>
<param name="codePoint">A character (Unicode code point).</param>
<returns>
The index of the last occurrence of the character in the
character sequence represented by this object, or
<c>-1</c> if the character does not occur.
</returns>
<exception cref="T:System.ArgumentNullException">If <paramref name="text"/> is <c>null</c>.</exception>
</member>
<member name="M:J2N.Text.StringExtensions.LastIndexOf(System.String,System.Int32,System.Int32)">
<summary>
Returns the index within this string of the last occurrence of
the specified character, searching backward starting at the
specified index. For values of <paramref name="codePoint"/> in the range
from 0 to 0xFFFF (inclusive), the index returned is the largest
value <i>k</i> such that:
<code>
(this[<i>k</i>] == <paramref name="codePoint"/>) &amp;&amp; (<i>k</i> &lt;= <paramref name="startIndex"/>)
</code>
is <c>true</c>. For other values of <paramref name="codePoint"/>, it is the
largest value <i>k</i> such that:
<code>
(this.CodePointAt(<i>k</i>) == <paramref name="codePoint"/>) &amp;&amp; (<i>k</i> &lt;= <paramref name="startIndex"/>)
</code>
is <c>true</c>. In either case, if no such character occurs in this
string at or before position <paramref name="startIndex"/>, then
<c>-1</c> is returned.
<para/>
All indices are specified in <see cref="T:System.Char"/> values
(Unicode code units).
</summary>
<param name="text">This <see cref="T:System.String"/>.</param>
<param name="codePoint">A character (Unicode code point).</param>
<param name="startIndex">
The index to start the search from. There is no
restriction on the value of <paramref name="startIndex"/>. If it is
greater than or equal to the length of this string, it has
the same effect as if it were equal to one less than the
length of this string: this entire string may be searched.
If it is negative, it has the same effect as if it were <c>-1</c>:
</param>
<returns>
The index of the last occurrence of the character in the
character sequence represented by this object, or
<c>-1</c> if the character does not occur.
</returns>
<exception cref="T:System.ArgumentNullException">If <paramref name="text"/> is <c>null</c>.</exception>
</member>
<member name="M:J2N.Text.StringExtensions.LastIndexOfSupplementary(System.String,System.Int32,System.Int32)">
<summary>
Handles (rare) calls of lastIndexOf with a supplementary character.
</summary>
</member>
<member name="M:J2N.Text.StringExtensions.RegionMatches(System.String,System.Int32,J2N.Text.ICharSequence,System.Int32,System.Int32,System.StringComparison)">
<summary>
Compares the specified <see cref="T:J2N.Text.ICharSequence"/> to this string and compares the specified
range of characters to determine if they are the same.
</summary>
<param name="text">This string.</param>
<param name="thisStartIndex">The starting offset in this string.</param>
<param name="other">The <see cref="T:J2N.Text.ICharSequence"/> to compare.</param>
<param name="otherStartIndex">The starting offset in the specified string.</param>
<param name="length">The number of characters to compare.</param>
<param name="comparisonType">One of the enumeration values that specifies the rules for the search.</param>
<returns><c>true</c> if the ranges of characters are equal, <c>false</c> otherwise.</returns>
<exception cref="T:System.ArgumentNullException">If <paramref name="text"/> or <paramref name="other"/> is <c>null</c></exception>
<exception cref="T:System.ArgumentOutOfRangeException"><paramref name="comparisonType"/> is not a <see cref="T:System.StringComparison"/> value.</exception>
</member>
<member name="M:J2N.Text.StringExtensions.RegionMatches(System.String,System.Int32,System.Char[],System.Int32,System.Int32,System.StringComparison)">
<summary>
Compares the specified <see cref="T:char[]"/> to this string and compares the specified
range of characters to determine if they are the same.
</summary>
<param name="text">This string.</param>
<param name="thisStartIndex">The starting offset in this string.</param>
<param name="other">The <see cref="T:char[]"/> to compare.</param>
<param name="otherStartIndex">The starting offset in the specified string.</param>
<param name="length">The number of characters to compare.</param>
<param name="comparisonType">One of the enumeration values that specifies the rules for the search.</param>
<returns><c>true</c> if the ranges of characters are equal, <c>false</c> otherwise.</returns>
<exception cref="T:System.ArgumentNullException">If <paramref name="text"/> or <paramref name="other"/> is <c>null</c></exception>
<exception cref="T:System.ArgumentOutOfRangeException"><paramref name="comparisonType"/> is not a <see cref="T:System.StringComparison"/> value.</exception>
</member>
<member name="M:J2N.Text.StringExtensions.RegionMatches(System.String,System.Int32,System.Text.StringBuilder,System.Int32,System.Int32,System.StringComparison)">
<summary>
Compares the specified <see cref="T:System.Text.StringBuilder"/> to this string and compares the specified
range of characters to determine if they are the same.
</summary>
<param name="text">This string.</param>
<param name="thisStartIndex">The starting offset in this string.</param>
<param name="other">The <see cref="T:System.Text.StringBuilder"/> to compare.</param>
<param name="otherStartIndex">The starting offset in the specified string.</param>
<param name="length">The number of characters to compare.</param>
<param name="comparisonType">One of the enumeration values that specifies the rules for the search.</param>
<returns><c>true</c> if the ranges of characters are equal, <c>false</c> otherwise.</returns>
<exception cref="T:System.ArgumentNullException">If <paramref name="text"/> or <paramref name="other"/> is <c>null</c></exception>
<exception cref="T:System.ArgumentOutOfRangeException"><paramref name="comparisonType"/> is not a <see cref="T:System.StringComparison"/> value.</exception>
</member>
<member name="M:J2N.Text.StringExtensions.RegionMatches(System.String,System.Int32,System.String,System.Int32,System.Int32,System.StringComparison)">
<summary>
Compares the specified <see cref="T:System.String"/> to this string and compares the specified
range of characters to determine if they are the same.
</summary>
<param name="text">This string.</param>
<param name="thisStartIndex">The starting offset in this string.</param>
<param name="other">The <see cref="T:System.String"/> to compare.</param>
<param name="otherStartIndex">The starting offset in the specified string.</param>
<param name="length">The number of characters to compare.</param>
<param name="comparisonType">One of the enumeration values that specifies the rules for the search.</param>
<returns><c>true</c> if the ranges of characters are equal, <c>false</c> otherwise.</returns>
<exception cref="T:System.ArgumentNullException">If <paramref name="text"/> or <paramref name="other"/> is <c>null</c></exception>
<exception cref="T:System.ArgumentOutOfRangeException"><paramref name="comparisonType"/> is not a <see cref="T:System.StringComparison"/> value.</exception>
</member>
<member name="M:J2N.Text.StringExtensions.RegionMatches(System.String,System.Int32,System.ReadOnlySpan{System.Char},System.Int32,System.Int32,System.StringComparison)">
<summary>
Compares the specified <see cref="T:System.ReadOnlySpan`1"/> to this string and compares the specified
range of characters to determine if they are the same.
</summary>
<param name="text">This string.</param>
<param name="thisStartIndex">The starting offset in this string.</param>
<param name="other">The <see cref="T:System.ReadOnlySpan`1"/> to compare.</param>
<param name="otherStartIndex">The starting offset in the specified string.</param>
<param name="length">The number of characters to compare.</param>
<param name="comparisonType">One of the enumeration values that specifies the rules for the search.</param>
<returns><c>true</c> if the ranges of characters are equal, <c>false</c> otherwise.</returns>
<exception cref="T:System.ArgumentNullException">If <paramref name="text"/> is <c>null</c></exception>
<exception cref="T:System.ArgumentOutOfRangeException"><paramref name="comparisonType"/> is not a <see cref="T:System.StringComparison"/> value.</exception>
</member>
<member name="M:J2N.Text.StringExtensions.ReverseText(System.String)">
<summary>
Reverses the character sequence and returns a new string.
If there are any surrogate pairs included in the
sequence, these are treated as single characters for the
reverse operation. Thus, the order of the high-low surrogates
is never reversed.
<para/>
Let <c>n</c> be the character length of this character sequence
(not the length in <see cref="T:System.Char"/> values) just prior to
execution of the <see cref="M:J2N.Text.StringExtensions.ReverseText(System.String)"/> method. Then the
character at index <c>k</c> in the new character sequence is
equal to the character at index <c>n-k-1</c> in the old
character sequence.
<para/>
Note that the reverse operation may result in producing
surrogate pairs that were unpaired low-surrogates and
high-surrogates before the operation. For example, reversing
"&#92;uDC00&#92;uD800" produces "&#92;uD800&#92;uDC00" which is
a valid surrogate pair.
<para/>
Usage Note: This is the same operation as
<see cref="M:J2N.Text.StringBuilderExtensions.Reverse(System.Text.StringBuilder)"/>
(derived from Java's StringBuilder.reverse() method) but is more
efficient because it doesn't allocate a new <see cref="T:System.Text.StringBuilder"/>
instance and will use the stack for strings 64 characters and less.
</summary>
<param name="text">This <see cref="T:System.String"/>.</param>
<returns>The reversed string with non-reversed surrogate pairs.</returns>
<exception cref="T:System.ArgumentNullException"><paramref name="text"/> is
<c>null</c>.</exception>
<seealso cref="M:J2N.Text.StringBuilderExtensions.Reverse(System.Text.StringBuilder)"/>
<seealso cref="M:J2N.MemoryExtensions.ReverseText(System.Span{System.Char})"/>
</member>
<member name="M:J2N.Text.StringExtensions.StartsWith(System.String,System.String,System.Int32,System.StringComparison)">
<summary>
Compares the specified string to this string, starting at the specified
<paramref name="startIndex"/>, to determine if the specified string is a prefix.
</summary>
<param name="text">This string.</param>
<param name="prefix">The string to look for.</param>
<param name="startIndex">The starting offset.</param>
<param name="comparisonType">One of the enumeration values that specifies the rules for the search.</param>
<returns><c>true</c> if the specified string occurs in this string at the specified offset, <c>false</c> otherwise.</returns>
<exception cref="T:System.ArgumentNullException">If <paramref name="text"/> or <paramref name="prefix"/> is <c>null</c>.</exception>
<exception cref="T:System.ArgumentException"><paramref name="comparisonType"/> is not a <see cref="T:System.StringComparison"/> value.</exception>
</member>
<member name="M:J2N.Text.StringExtensions.Subsequence(System.String,System.Int32,System.Int32)">
<summary>
Retrieves a sub-sequence from this instance.
The sub-sequence starts at a specified character position and has a specified length.
<para/>
IMPORTANT: This method has .NET semantics, that is, the second parameter is a length,
not an exclusive end index as it would be in Java.
</summary>
<param name="startIndex">
The start index of the sub-sequence. It is inclusive, that
is, the index of the first character that is included in the
sub-sequence.
</param>
<param name="text">This <see cref="T:char[]"/>.</param>
<param name="length">The number of characters to return in the sub-sequence.</param>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="startIndex"/> plus <paramref name="length"/> indicates a position not within this instance.
<para/>
-or-
<para/>
<paramref name="startIndex"/> or <paramref name="length"/> is less than zero.
</exception>
</member>
<member name="T:J2N.Text.StringFormatter">
<summary>
Provides number and boolean formatting rules similar to how they are done in Java.
<list type="bullet">
<item><description><see cref="T:System.Single"/> and <see cref="T:System.Double"/> values are displayed with a minimum of 1 fractional digit with a variable number
of fractional digits and .</description></item>
<item><description><see cref="T:System.Single"/> and <see cref="T:System.Double"/> negative zeros are displayed as -0.0 and other data types are patched to display
negative zero on all .NET target platforms lower than .NET Core 3.0.</description></item>
<item><description><see cref="T:System.Boolean"/> values are lowercased to <c>"true"</c> and <c>"false"</c>, rather than the default .NET <c>"True"</c> and <c>"False"</c>.</description></item>
<item><description><see cref="T:System.Collections.Generic.ICollection`1"/> and <see cref="T:System.Collections.Generic.IDictionary`2"/> types are formatted to include all of their element
values (and nested collection values).</description></item>
</list>
</summary>
</member>
<member name="P:J2N.Text.StringFormatter.CurrentCulture">
<summary>
Gets a <see cref="T:J2N.Text.StringFormatter"/> that uses the culture from the current thread to format values.
</summary>
</member>
<member name="P:J2N.Text.StringFormatter.CurrentUICulture">
<summary>
Gets a <see cref="T:J2N.Text.StringFormatter"/> that uses the UI culture from the current thread to format values.
</summary>
</member>
<member name="P:J2N.Text.StringFormatter.InvariantCulture">
<summary>
Gets a <see cref="T:J2N.Text.StringFormatter"/> that uses the invariant culture to format values.
This is the default setting in Java.
</summary>
</member>
<member name="M:J2N.Text.StringFormatter.#ctor">
<summary>
Initializes a new instance of <see cref="T:J2N.Text.StringFormatter"/>.
</summary>
</member>
<member name="M:J2N.Text.StringFormatter.#ctor(System.Globalization.CultureInfo)">
<summary>
Initializes a new instance of <see cref="T:J2N.Text.StringFormatter"/> with the specified <paramref name="culture"/>.
<para/>
<b>NOTE:</b> This overload only supports serialization of built-in cultures. If you require serialization and have a custom implementation,
you will need to provide a serializable wrapper to the <see cref="M:J2N.Text.StringFormatter.#ctor(System.IFormatProvider)"/> constructor. Note that
on .NET Core and newer .NET platforms serialization is not supported for <see cref="T:System.Globalization.CultureInfo"/>, <see cref="T:System.Globalization.NumberFormatInfo"/> and <see cref="T:System.Globalization.DateTimeFormatInfo"/>.
</summary>
<param name="culture">A <see cref="T:System.Globalization.CultureInfo"/> that specifies the culture-specific rules that will be used for formatting.</param>
<exception cref="T:System.ArgumentNullException">If <paramref name="culture"/> is <c>null</c>.</exception>
</member>
<member name="M:J2N.Text.StringFormatter.#ctor(System.IFormatProvider)">
<summary>
Initializes a new instance of <see cref="T:J2N.Text.StringFormatter"/> with the specified <paramref name="formatProvider"/>.
<para/>
<b>NOTE:</b> If binary serialization is required, the type passed must be annotated with the <see cref="T:System.SerializableAttribute"/> and otherwise be
setup for serialization and deserialization. However, note that on .NET Core and newer .NET platforms serialization is not supported for
<see cref="T:System.Globalization.CultureInfo"/>, <see cref="T:System.Globalization.NumberFormatInfo"/> and <see cref="T:System.Globalization.DateTimeFormatInfo"/>.
</summary>
<param name="formatProvider">An <see cref="T:System.IFormatProvider"/> that specifies the culture-specific rules that will be used for formatting.</param>
<exception cref="T:System.ArgumentNullException">If <paramref name="formatProvider"/> is <c>null</c>.</exception>
</member>
<member name="P:J2N.Text.StringFormatter.Culture">
<summary>
Gets the culture of the current instance.
</summary>
</member>
<member name="P:J2N.Text.StringFormatter.FormatProvider">
<summary>
Gets the <see cref="T:System.IFormatProvider"/> of the current instance.
</summary>
</member>
<member name="M:J2N.Text.StringFormatter.GetFormat(System.Type)">
<summary>
Gets the format provider.
</summary>
<param name="formatType">The format type that is requested.</param>
<returns>The requested format provider, or <c>null</c> if it is not applicable.</returns>
</member>
<member name="M:J2N.Text.StringFormatter.Format(System.String,System.Object,System.IFormatProvider)">
<summary>
Formats the <paramref name="arg"/> with rules similar to Java.
<list type="bullet">
<item><description><see cref="T:System.Single"/> and <see cref="T:System.Double"/> values are displayed with a minimum of 1 fractional digit with a variable number
of fractional digits and .</description></item>
<item><description><see cref="T:System.Single"/> and <see cref="T:System.Double"/> negative zeros are displayed as -0.0 and other data types are patched to display
negative zero on all .NET target platforms lower than .NET Core 3.0.</description></item>
<item><description><see cref="T:System.Boolean"/> values are lowercased to <c>"true"</c> and <c>"false"</c>, rather than the default .NET <c>"True"</c> and <c>"False"</c>.</description></item>
<item><description><see cref="T:System.Collections.Generic.ICollection`1"/> and <see cref="T:System.Collections.Generic.IDictionary`2"/> types are formatted to include all of their element
values (and nested collection values).</description></item>
</list>
</summary>
<param name="format">The format. To utilize this formatter in <see cref="M:System.Object.ToString"/> overloads of value types, specify a standard or
custom format (such as <c>"J"</c>), otherwise this formatter will be bypassed.</param>
<param name="arg">The object to format.</param>
<param name="formatProvider">The format provider.</param>
<returns>A string representing the formatted value, or <c>null</c> when this formatter is not applicable.</returns>
</member>
<member name="T:J2N.Text.StringTokenizer">
<summary>
The <see cref="T:J2N.Text.StringTokenizer"/> class allows an application to break a string
into tokens by performing code point comparison. The <see cref="T:J2N.Text.StringTokenizer"/>
methods do not distinguish among identifiers, numbers, and quoted strings,
nor do they recognize and skip comments.
</summary>
<remarks>
The set of delimiters (the codepoints that separate tokens) may be specified
either at creation time or on a per-token basis.
<para/>
An instance of <see cref="T:J2N.Text.StringTokenizer"/> behaves in one of three ways,
depending on whether it was created with the <c>returnDelimiters</c> flag
having the value <c>true</c> or <c>false</c>:
<list type="bullet">
<item><description>If <c>returnDelimiters</c> is <c>false</c>, delimiter code points serve to separate
tokens. A token is a maximal sequence of consecutive code points that are not
delimiters.</description></item>
<item><description>If <c>returnDelimiters</c> is <c>true</c>, delimiter code points are themselves
considered to be tokens. In this case a token will be received for each
delimiter code point.</description></item>
</list>
<para/>
A token is thus either one delimiter code point, or a maximal sequence of
consecutive code points that are not delimiters.
<para/>
A <see cref="T:J2N.Text.StringTokenizer"/> object internally maintains a current position
within the string to be tokenized. Some operations advance this current
position past the code point processed.
<para/>
A token is returned by taking a substring of the string that was used to
create the <see cref="T:J2N.Text.StringTokenizer"/> object.
<para/>
Here's an example of the use of the default delimiter <see cref="T:J2N.Text.StringTokenizer"/>:
<code>
StringTokenizer st = new StringTokenizer(&quot;this is a test&quot;);
while (st.MoveNext()) {
println(st.Current);
}
</code>
<para/>
This prints the following output:
<code>
this
is
a
test
</code>
<para/>
Here's an example of how to use a <see cref="T:J2N.Text.StringTokenizer"/> with a user
specified delimiter:
<code>
StringTokenizer st = new StringTokenizer(
&quot;this is a test with supplementary characters \ud800\ud800\udc00\udc00&quot;,
&quot; \ud800\udc00&quot;);
while (st.MoveNext()) {
Console.WriteLine(st.Current);
}
</code>
<para/>
This prints the following output:
<code>
this
is
a
test
with
supplementary
characters
\ud800
\udc00
</code>
</remarks>
</member>
<member name="M:J2N.Text.StringTokenizer.#ctor(System.String)">
<summary>
Constructs a new <see cref="T:J2N.Text.StringTokenizer"/> for the parameter string using
whitespace as the delimiter. The <see cref="F:J2N.Text.StringTokenizer.returnDelimiters"/> flag is set to
<c>false</c>.
</summary>
<param name="str">The string to be tokenized.</param>
<exception cref="T:System.ArgumentNullException">If <paramref name="str"/> is <c>null</c>.</exception>
</member>
<member name="M:J2N.Text.StringTokenizer.#ctor(System.String,System.String)">
<summary>
Constructs a new <see cref="T:J2N.Text.StringTokenizer"/> for the parameter string using
the specified delimiters. The <see cref="F:J2N.Text.StringTokenizer.returnDelimiters"/> flag is set to
<c>false</c>.
</summary>
<param name="str">The string to be tokenized.</param>
<param name="delimiters">The delimiters to use.</param>
<exception cref="T:System.ArgumentNullException">If <paramref name="str"/> or <paramref name="delimiters"/> is <c>null</c>.</exception>
</member>
<member name="M:J2N.Text.StringTokenizer.#ctor(System.String,System.String,System.Boolean)">
<summary>
Constructs a new <see cref="T:J2N.Text.StringTokenizer"/> for the parameter <paramref name="str"/> using
the specified delimiters, returning the delimiters as tokens if the
parameter <paramref name="returnDelimiters"/> is <c>true</c>.
</summary>
<param name="str">The string to be tokenized.</param>
<param name="delimiters">The delimiters to use.</param>
<param name="returnDelimiters"><c>true</c> to return each delimiter as a token.</param>
<exception cref="T:System.ArgumentNullException">If <paramref name="str"/> or <paramref name="delimiters"/> is <c>null</c>.</exception>
</member>
<member name="M:J2N.Text.StringTokenizer.CountTokens">
<summary>
Returns the number of unprocessed tokens remaining in the string.
</summary>
<returns>Number of tokens that can be retreived before an
<see cref="M:J2N.Text.StringTokenizer.MoveNext"/> will return <c>false</c>.</returns>
</member>
<member name="M:J2N.Text.StringTokenizer.HasMoreTokens">
<summary>
Returns <c>true</c> if unprocessed tokens remain.
</summary>
<returns><c>true</c> if unprocessed tokens remain.</returns>
</member>
<member name="M:J2N.Text.StringTokenizer.NextToken">
<summary>
Returns the next token in the string as a <see cref="T:System.String"/>.
</summary>
<returns>Next token in the string as a <see cref="T:System.String"/>.</returns>
<exception cref="T:System.InvalidOperationException">If no tokens remain.</exception>
</member>
<member name="P:J2N.Text.StringTokenizer.RemainingTokens">
<summary>
Gets the number of remaining tokens in the string
according to the current delimiters.
</summary>
</member>
<member name="P:J2N.Text.StringTokenizer.Current">
<summary>
Gets the current token.
</summary>
</member>
<member name="M:J2N.Text.StringTokenizer.MoveNext">
<summary>
Moves to the next token in the string, or returns <c>false</c>
if no more tokens remain.
</summary>
<returns><c>true</c> if a new token was retrieved; <c>false</c> if there are no remaining tokens.</returns>
</member>
<member name="M:J2N.Text.StringTokenizer.MoveNext(System.String)">
<summary>
Sets the <paramref name="delimiters"/> to a new value, then moves to the next token in the string.
Returns <c>false</c> if no more tokens remain.
</summary>
<param name="delimiters">The new delimiters to use.</param>
<returns><c>true</c> if a new token was retrieved; <c>false</c> if there are no remaining tokens.</returns>
<exception cref="T:System.ArgumentNullException">If <paramref name="delimiters"/> is <c>null</c>.</exception>
</member>
<member name="M:J2N.Text.StringTokenizer.Dispose">
<summary>
Disposes all resources associated with this object.
</summary>
</member>
<member name="M:J2N.Text.StringTokenizer.Dispose(System.Boolean)">
<summary>
When overridden in a subclass, disposes all resources associated with this object.
</summary>
<param name="disposing"><c>true</c> indicates to dispose both managed and
unmanaged resources. <c>false</c> indicates to dispose only unmanaged resources.</param>
</member>
<member name="M:J2N.Text.ValueStringBuilder.GetPinnableReference">
<summary>
Get a pinnable reference to the builder.
Does not ensure there is a null char after <see cref="P:J2N.Text.ValueStringBuilder.Length"/>
This overload is pattern matched in the C# 7.3+ compiler so you can omit
the explicit method call, and write eg "fixed (char* c = builder)"
</summary>
</member>
<member name="M:J2N.Text.ValueStringBuilder.GetPinnableReference(System.Boolean)">
<summary>
Get a pinnable reference to the builder.
</summary>
<param name="terminate">Ensures that the builder has a null char after <see cref="P:J2N.Text.ValueStringBuilder.Length"/></param>
</member>
<member name="P:J2N.Text.ValueStringBuilder.RawChars">
<summary>Returns the underlying storage of the builder.</summary>
</member>
<member name="M:J2N.Text.ValueStringBuilder.AsSpan(System.Boolean)">
<summary>
Returns a span around the contents of the builder.
</summary>
<param name="terminate">Ensures that the builder has a null char after <see cref="P:J2N.Text.ValueStringBuilder.Length"/></param>
</member>
<member name="M:J2N.Text.ValueStringBuilder.Grow(System.Int32)">
<summary>
Resize the internal buffer either by doubling current buffer size or
by adding <paramref name="additionalCapacityBeyondPos"/> to
<see cref="F:J2N.Text.ValueStringBuilder._pos"/> whichever is greater.
</summary>
<param name="additionalCapacityBeyondPos">
Number of chars requested beyond current position.
</param>
</member>
<member name="T:J2N.Threading.Atomic.AtomicBoolean">
<summary>
A <see cref="T:System.Boolean"/> value that may be updated atomically.
An <see cref="T:J2N.Threading.Atomic.AtomicBoolean"/> is used in applications such as
atomically updated flags, and cannot be used as a replacement for a
<see cref="T:System.Boolean"/>. However, this class does
implement implicit conversion to <see cref="T:System.Boolean"/>, so it can
be utilized with language features, tools and utilities that deal
with binary operations.
</summary>
</member>
<member name="M:J2N.Threading.Atomic.AtomicBoolean.#ctor">
<summary>
Creates a new <see cref="T:J2N.Threading.Atomic.AtomicBoolean"/> with initial value of <c>false</c>.
</summary>
</member>
<member name="M:J2N.Threading.Atomic.AtomicBoolean.#ctor(System.Boolean)">
<summary>
Creates a new <see cref="T:J2N.Threading.Atomic.AtomicBoolean"/> with the given initial <paramref name="value"/>.
</summary>
<param name="value">The inital value.</param>
</member>
<member name="P:J2N.Threading.Atomic.AtomicBoolean.Value">
<summary>
Gets or sets the current value. Note that these operations can be done
implicitly by setting the <see cref="T:J2N.Threading.Atomic.AtomicInt32"/> to an <see cref="T:System.Int32"/>.
<code>
AtomicBoolean abool = new AtomicBoolean(true);
bool x = abool;
</code>
</summary>
</member>
<member name="M:J2N.Threading.Atomic.AtomicBoolean.CompareAndSet(System.Boolean,System.Boolean)">
<summary>
Atomically sets the value to the given updated value
if the current value <c>==</c> the expected value.
</summary>
<param name="expect">The expected value (the comparand).</param>
<param name="update">The new value.</param>
<returns><c>true</c> if successful. A <c>false</c> return value indicates that
the actual value was not equal to the expected value.</returns>
</member>
<member name="M:J2N.Threading.Atomic.AtomicBoolean.GetAndSet(System.Boolean)">
<summary>
Atomically sets to the given value and returns the previous value.
</summary>
<param name="newValue">The new value.</param>
<returns>The previous value.</returns>
</member>
<member name="M:J2N.Threading.Atomic.AtomicBoolean.Equals(J2N.Threading.Atomic.AtomicBoolean)">
<summary>
Determines whether the specified <see cref="T:J2N.Threading.Atomic.AtomicBoolean"/> is equal to the current <see cref="T:J2N.Threading.Atomic.AtomicBoolean"/>.
</summary>
<param name="other">The <see cref="T:J2N.Threading.Atomic.AtomicBoolean"/> to compare with the current <see cref="T:J2N.Threading.Atomic.AtomicBoolean"/>.</param>
<returns><c>true</c> if <paramref name="other"/> is equal to the current <see cref="T:J2N.Threading.Atomic.AtomicBoolean"/>; otherwise, <c>false</c>.</returns>
</member>
<member name="M:J2N.Threading.Atomic.AtomicBoolean.Equals(System.Boolean)">
<summary>
Determines whether the specified <see cref="T:System.Boolean"/> is equal to the current <see cref="T:J2N.Threading.Atomic.AtomicBoolean"/>.
</summary>
<param name="other">The <see cref="T:System.Boolean"/> to compare with the current <see cref="T:J2N.Threading.Atomic.AtomicBoolean"/>.</param>
<returns><c>true</c> if <paramref name="other"/> is equal to the current <see cref="T:J2N.Threading.Atomic.AtomicBoolean"/>; otherwise, <c>false</c>.</returns>
</member>
<member name="M:J2N.Threading.Atomic.AtomicBoolean.Equals(System.Object)">
<summary>
Determines whether the specified <see cref="T:System.Object"/> is equal to the current <see cref="T:J2N.Threading.Atomic.AtomicBoolean"/>.
<para/>
If <paramref name="other"/> is a <see cref="T:J2N.Threading.Atomic.AtomicBoolean"/>, the comparison is not done atomically.
</summary>
<param name="other">The <see cref="T:System.Object"/> to compare with the current <see cref="T:J2N.Threading.Atomic.AtomicBoolean"/>.</param>
<returns><c>true</c> if <paramref name="other"/> is equal to the current <see cref="T:J2N.Threading.Atomic.AtomicBoolean"/>; otherwise, <c>false</c>.</returns>
</member>
<member name="M:J2N.Threading.Atomic.AtomicBoolean.GetHashCode">
<summary>
Returns the hash code for this instance.
</summary>
<returns>A 32-bit signed integer hash code.</returns>
</member>
<member name="M:J2N.Threading.Atomic.AtomicBoolean.ToString">
<summary>
Returns the <see cref="T:System.String"/> representation of the current value.
</summary>
<returns>The <see cref="T:System.String"/> representation of the current value.</returns>
</member>
<member name="M:J2N.Threading.Atomic.AtomicBoolean.op_Implicit(J2N.Threading.Atomic.AtomicBoolean)~System.Boolean">
<summary>
Implicitly converts an <see cref="T:J2N.Threading.Atomic.AtomicBoolean"/> to an <see cref="T:System.Boolean"/>.
</summary>
<param name="atomicBoolean">The <see cref="T:J2N.Threading.Atomic.AtomicBoolean"/> to convert.</param>
</member>
<member name="M:J2N.Threading.Atomic.AtomicBoolean.op_Equality(J2N.Threading.Atomic.AtomicBoolean,J2N.Threading.Atomic.AtomicBoolean)">
<summary>
Compares <paramref name="a1"/> and <paramref name="a2"/> for value equality.
</summary>
<param name="a1">The first value.</param>
<param name="a2">The second value.</param>
<returns><c>true</c> if the given values are equal; otherwise, <c>false</c>.</returns>
</member>
<member name="M:J2N.Threading.Atomic.AtomicBoolean.op_Inequality(J2N.Threading.Atomic.AtomicBoolean,J2N.Threading.Atomic.AtomicBoolean)">
<summary>
Compares <paramref name="a1"/> and <paramref name="a2"/> for value inequality.
</summary>
<param name="a1">The first value.</param>
<param name="a2">The second value.</param>
<returns><c>true</c> if the given values are not equal; otherwise, <c>false</c>.</returns>
</member>
<member name="M:J2N.Threading.Atomic.AtomicBoolean.op_Equality(J2N.Threading.Atomic.AtomicBoolean,System.Boolean)">
<summary>
Compares <paramref name="a1"/> and <paramref name="a2"/> for value equality.
</summary>
<param name="a1">The first value.</param>
<param name="a2">The second value.</param>
<returns><c>true</c> if the given values are equal; otherwise, <c>false</c>.</returns>
</member>
<member name="M:J2N.Threading.Atomic.AtomicBoolean.op_Inequality(J2N.Threading.Atomic.AtomicBoolean,System.Boolean)">
<summary>
Compares <paramref name="a1"/> and <paramref name="a2"/> for value inequality.
</summary>
<param name="a1">The first value.</param>
<param name="a2">The second value.</param>
<returns><c>true</c> if the given values are not equal; otherwise, <c>false</c>.</returns>
</member>
<member name="M:J2N.Threading.Atomic.AtomicBoolean.op_Equality(System.Boolean,J2N.Threading.Atomic.AtomicBoolean)">
<summary>
Compares <paramref name="a1"/> and <paramref name="a2"/> for value equality.
</summary>
<param name="a1">The first value.</param>
<param name="a2">The second value.</param>
<returns><c>true</c> if the given values are equal; otherwise, <c>false</c>.</returns>
</member>
<member name="M:J2N.Threading.Atomic.AtomicBoolean.op_Inequality(System.Boolean,J2N.Threading.Atomic.AtomicBoolean)">
<summary>
Compares <paramref name="a1"/> and <paramref name="a2"/> for value inequality.
</summary>
<param name="a1">The first number.</param>
<param name="a2">The second number.</param>
<returns><c>true</c> if the given numbers are not equal; otherwise, <c>false</c>.</returns>
</member>
<member name="M:J2N.Threading.Atomic.AtomicBoolean.op_Equality(J2N.Threading.Atomic.AtomicBoolean,System.Nullable{System.Boolean})">
<summary>
Compares <paramref name="a1"/> and <paramref name="a2"/> for value equality.
</summary>
<param name="a1">The first number.</param>
<param name="a2">The second number.</param>
<returns><c>true</c> if the given numbers are equal; otherwise, <c>false</c>.</returns>
</member>
<member name="M:J2N.Threading.Atomic.AtomicBoolean.op_Inequality(J2N.Threading.Atomic.AtomicBoolean,System.Nullable{System.Boolean})">
<summary>
Compares <paramref name="a1"/> and <paramref name="a2"/> for value inequality.
</summary>
<param name="a1">The first number.</param>
<param name="a2">The second number.</param>
<returns><c>true</c> if the given numbers are not equal; otherwise, <c>false</c>.</returns>
</member>
<member name="M:J2N.Threading.Atomic.AtomicBoolean.op_Equality(System.Nullable{System.Boolean},J2N.Threading.Atomic.AtomicBoolean)">
<summary>
Compares <paramref name="a1"/> and <paramref name="a2"/> for value equality.
</summary>
<param name="a1">The first number.</param>
<param name="a2">The second number.</param>
<returns><c>true</c> if the given numbers are equal; otherwise, <c>false</c>.</returns>
</member>
<member name="M:J2N.Threading.Atomic.AtomicBoolean.op_Inequality(System.Nullable{System.Boolean},J2N.Threading.Atomic.AtomicBoolean)">
<summary>
Compares <paramref name="a1"/> and <paramref name="a2"/> for value inequality.
</summary>
<param name="a1">The first number.</param>
<param name="a2">The second number.</param>
<returns><c>true</c> if the given numbers are not equal; otherwise, <c>false</c>.</returns>
</member>
<member name="T:J2N.Threading.Atomic.AtomicInt32">
<summary>
An <see cref="T:System.Int32"/> value that may be updated atomically. An
<see cref="T:J2N.Threading.Atomic.AtomicInt32"/> is used in applications such as atomically
incremented counters, and cannot be used as a replacement for an
<see cref="T:System.Int32"/>. However, this class does
implement implicit conversion to <see cref="T:System.Int64"/>, so it can
be utilized with language features, tools and utilities that deal
with numerical operations.
<para/>
NOTE: This was AtomicInteger in the JDK
</summary>
</member>
<member name="M:J2N.Threading.Atomic.AtomicInt32.#ctor">
<summary>
Creates a new <see cref="T:J2N.Threading.Atomic.AtomicInt32"/> with the default inital value, <c>0</c>.
</summary>
</member>
<member name="M:J2N.Threading.Atomic.AtomicInt32.#ctor(System.Int32)">
<summary>
Creates a new <see cref="T:J2N.Threading.Atomic.AtomicInt32"/> with the given initial <paramref name="value"/>.
</summary>
<param name="value">The initial value.</param>
</member>
<member name="P:J2N.Threading.Atomic.AtomicInt32.Value">
<summary>
Gets or sets the current value. Note that these operations can be done
implicitly by setting the <see cref="T:J2N.Threading.Atomic.AtomicInt32"/> to an <see cref="T:System.Int32"/>.
<code>
AtomicInt32 aint = new AtomicInt32(4);
int x = aint;
</code>
</summary>
<remarks>
Properties are inherently not atomic. Operators such as ++ and -- should not
be used on <see cref="P:J2N.Threading.Atomic.AtomicInt32.Value"/> because they perform both a separate get and a set operation. Instead,
use the atomic methods such as <see cref="M:J2N.Threading.Atomic.AtomicInt32.IncrementAndGet"/>, <see cref="M:J2N.Threading.Atomic.AtomicInt32.GetAndIncrement"/>
<see cref="M:J2N.Threading.Atomic.AtomicInt32.DecrementAndGet"/> and <see cref="M:J2N.Threading.Atomic.AtomicInt32.GetAndDecrement"/> to ensure atomicity.
</remarks>
</member>
<member name="M:J2N.Threading.Atomic.AtomicInt32.GetAndSet(System.Int32)">
<summary>
Atomically sets to the given value and returns the old value.
</summary>
<param name="newValue">The new value.</param>
<returns>The previous value.</returns>
</member>
<member name="M:J2N.Threading.Atomic.AtomicInt32.CompareAndSet(System.Int32,System.Int32)">
<summary>
Atomically sets the value to the given updated value
if the current value equals the expected value.
</summary>
<param name="expect">The expected value (the comparand).</param>
<param name="update">The new value that will be set if the current value equals the expected value.</param>
<returns><c>true</c> if successful. A <c>false</c> return value indicates that the actual value
was not equal to the expected value.</returns>
</member>
<member name="M:J2N.Threading.Atomic.AtomicInt32.GetAndIncrement">
<summary>
Atomically increments by one the current value.
</summary>
<returns>The previous value, before the increment.</returns>
</member>
<member name="M:J2N.Threading.Atomic.AtomicInt32.GetAndDecrement">
<summary>
Atomically decrements by one the current value.
</summary>
<returns>The previous value, before the decrement.</returns>
</member>
<member name="M:J2N.Threading.Atomic.AtomicInt32.GetAndAdd(System.Int32)">
<summary>
Atomically adds the given value to the current value.
</summary>
<param name="value">The value to add.</param>
<returns>The previous value, before the addition.</returns>
</member>
<member name="M:J2N.Threading.Atomic.AtomicInt32.IncrementAndGet">
<summary>
Atomically increments by one the current value.
</summary>
<returns>The updated value.</returns>
</member>
<member name="M:J2N.Threading.Atomic.AtomicInt32.DecrementAndGet">
<summary>
Atomically decrements by one the current value.
</summary>
<returns>The updated value.</returns>
</member>
<member name="M:J2N.Threading.Atomic.AtomicInt32.AddAndGet(System.Int32)">
<summary>
Atomically adds the given value to the current value.
</summary>
<param name="value">The value to add.</param>
<returns>The updated value.</returns>
</member>
<member name="M:J2N.Threading.Atomic.AtomicInt32.Equals(J2N.Threading.Atomic.AtomicInt32)">
<summary>
Determines whether the specified <see cref="T:J2N.Threading.Atomic.AtomicInt32"/> is equal to the current <see cref="T:J2N.Threading.Atomic.AtomicInt32"/>.
</summary>
<param name="other">The <see cref="T:J2N.Threading.Atomic.AtomicInt32"/> to compare with the current <see cref="T:J2N.Threading.Atomic.AtomicInt32"/>.</param>
<returns><c>true</c> if <paramref name="other"/> is equal to the current <see cref="T:J2N.Threading.Atomic.AtomicInt32"/>; otherwise, <c>false</c>.</returns>
</member>
<member name="M:J2N.Threading.Atomic.AtomicInt32.Equals(System.Int32)">
<summary>
Determines whether the specified <see cref="T:System.Int32"/> is equal to the current <see cref="T:J2N.Threading.Atomic.AtomicInt32"/>.
</summary>
<param name="other">The <see cref="T:System.Int32"/> to compare with the current <see cref="T:J2N.Threading.Atomic.AtomicInt32"/>.</param>
<returns><c>true</c> if <paramref name="other"/> is equal to the current <see cref="T:J2N.Threading.Atomic.AtomicInt32"/>; otherwise, <c>false</c>.</returns>
</member>
<member name="M:J2N.Threading.Atomic.AtomicInt32.Equals(System.Object)">
<summary>
Determines whether the specified <see cref="T:System.Object"/> is equal to the current <see cref="T:J2N.Threading.Atomic.AtomicInt32"/>.
<para/>
If <paramref name="other"/> is a <see cref="T:J2N.Threading.Atomic.AtomicInt32"/>, the comparison is not done atomically.
</summary>
<param name="other">The <see cref="T:System.Object"/> to compare with the current <see cref="T:J2N.Threading.Atomic.AtomicInt32"/>.</param>
<returns><c>true</c> if <paramref name="other"/> is equal to the current <see cref="T:J2N.Threading.Atomic.AtomicInt32"/>; otherwise, <c>false</c>.</returns>
</member>
<member name="M:J2N.Threading.Atomic.AtomicInt32.GetHashCode">
<summary>
Returns the hash code for this instance.
</summary>
<returns>A 32-bit signed integer hash code.</returns>
</member>
<member name="M:J2N.Threading.Atomic.AtomicInt32.ToString">
<summary>
Converts the numeric value of this instance to its equivalent string representation.
</summary>
<returns>The string representation of the value of this instance, consisting of
a negative sign if the value is negative,
and a sequence of digits ranging from 0 to 9 with no leading zeroes.</returns>
</member>
<member name="M:J2N.Threading.Atomic.AtomicInt32.ToString(System.String)">
<summary>
Converts the numeric value of this instance to its equivalent string representation,
using the specified <paramref name="format"/>.
</summary>
<param name="format">A standard or custom numeric format string.</param>
<returns>The string representation of the value of this instance as specified
by <paramref name="format"/>.</returns>
</member>
<member name="M:J2N.Threading.Atomic.AtomicInt32.ToString(System.IFormatProvider)">
<summary>
Converts the numeric value of this instance to its equivalent string representation
using the specified culture-specific format information.
</summary>
<param name="provider">An object that supplies culture-specific formatting information.</param>
<returns>The string representation of the value of this instance as specified by <paramref name="provider"/>.</returns>
</member>
<member name="M:J2N.Threading.Atomic.AtomicInt32.ToString(System.String,System.IFormatProvider)">
<summary>
Converts the numeric value of this instance to its equivalent string representation using the
specified format and culture-specific format information.
</summary>
<param name="format">A standard or custom numeric format string.</param>
<param name="provider">An object that supplies culture-specific formatting information.</param>
<returns>The string representation of the value of this instance as specified by
<paramref name="format"/> and <paramref name="provider"/>.</returns>
</member>
<member name="M:J2N.Threading.Atomic.AtomicInt32.ToByte">
<inheritdoc/>
</member>
<member name="M:J2N.Threading.Atomic.AtomicInt32.ToSByte">
<inheritdoc/>
</member>
<member name="M:J2N.Threading.Atomic.AtomicInt32.ToDouble">
<inheritdoc/>
</member>
<member name="M:J2N.Threading.Atomic.AtomicInt32.ToSingle">
<inheritdoc/>
</member>
<member name="M:J2N.Threading.Atomic.AtomicInt32.ToInt32">
<inheritdoc/>
</member>
<member name="M:J2N.Threading.Atomic.AtomicInt32.ToInt64">
<inheritdoc/>
</member>
<member name="M:J2N.Threading.Atomic.AtomicInt32.ToInt16">
<inheritdoc/>
</member>
<member name="M:J2N.Threading.Atomic.AtomicInt32.GetTypeCode">
<summary>
Returns the <see cref="T:System.TypeCode"/> for value type <see cref="T:System.Int32"/>.
</summary>
<returns></returns>
</member>
<member name="M:J2N.Threading.Atomic.AtomicInt32.op_Implicit(J2N.Threading.Atomic.AtomicInt32)~System.Int32">
<summary>
Implicitly converts an <see cref="T:J2N.Threading.Atomic.AtomicInt32"/> to an <see cref="T:System.Int32"/>.
</summary>
<param name="atomicInt32">The <see cref="T:J2N.Threading.Atomic.AtomicInt32"/> to convert.</param>
</member>
<member name="M:J2N.Threading.Atomic.AtomicInt32.op_Equality(J2N.Threading.Atomic.AtomicInt32,J2N.Threading.Atomic.AtomicInt32)">
<summary>
Compares <paramref name="a1"/> and <paramref name="a2"/> for value equality.
</summary>
<param name="a1">The first number.</param>
<param name="a2">The second number.</param>
<returns><c>true</c> if the given numbers are equal; otherwise, <c>false</c>.</returns>
</member>
<member name="M:J2N.Threading.Atomic.AtomicInt32.op_Inequality(J2N.Threading.Atomic.AtomicInt32,J2N.Threading.Atomic.AtomicInt32)">
<summary>
Compares <paramref name="a1"/> and <paramref name="a2"/> for value inequality.
</summary>
<param name="a1">The first number.</param>
<param name="a2">The second number.</param>
<returns><c>true</c> if the given numbers are not equal; otherwise, <c>false</c>.</returns>
</member>
<member name="M:J2N.Threading.Atomic.AtomicInt32.op_Equality(J2N.Threading.Atomic.AtomicInt32,System.Int32)">
<summary>
Compares <paramref name="a1"/> and <paramref name="a2"/> for value equality.
</summary>
<param name="a1">The first number.</param>
<param name="a2">The second number.</param>
<returns><c>true</c> if the given numbers are equal; otherwise, <c>false</c>.</returns>
</member>
<member name="M:J2N.Threading.Atomic.AtomicInt32.op_Inequality(J2N.Threading.Atomic.AtomicInt32,System.Int32)">
<summary>
Compares <paramref name="a1"/> and <paramref name="a2"/> for value inequality.
</summary>
<param name="a1">The first number.</param>
<param name="a2">The second number.</param>
<returns><c>true</c> if the given numbers are not equal; otherwise, <c>false</c>.</returns>
</member>
<member name="M:J2N.Threading.Atomic.AtomicInt32.op_Equality(System.Int32,J2N.Threading.Atomic.AtomicInt32)">
<summary>
Compares <paramref name="a1"/> and <paramref name="a2"/> for value equality.
</summary>
<param name="a1">The first number.</param>
<param name="a2">The second number.</param>
<returns><c>true</c> if the given numbers are equal; otherwise, <c>false</c>.</returns>
</member>
<member name="M:J2N.Threading.Atomic.AtomicInt32.op_Inequality(System.Int32,J2N.Threading.Atomic.AtomicInt32)">
<summary>
Compares <paramref name="a1"/> and <paramref name="a2"/> for value inequality.
</summary>
<param name="a1">The first number.</param>
<param name="a2">The second number.</param>
<returns><c>true</c> if the given numbers are not equal; otherwise, <c>false</c>.</returns>
</member>
<member name="M:J2N.Threading.Atomic.AtomicInt32.op_Equality(J2N.Threading.Atomic.AtomicInt32,System.Nullable{System.Int32})">
<summary>
Compares <paramref name="a1"/> and <paramref name="a2"/> for value equality.
</summary>
<param name="a1">The first number.</param>
<param name="a2">The second number.</param>
<returns><c>true</c> if the given numbers are equal; otherwise, <c>false</c>.</returns>
</member>
<member name="M:J2N.Threading.Atomic.AtomicInt32.op_Inequality(J2N.Threading.Atomic.AtomicInt32,System.Nullable{System.Int32})">
<summary>
Compares <paramref name="a1"/> and <paramref name="a2"/> for value inequality.
</summary>
<param name="a1">The first number.</param>
<param name="a2">The second number.</param>
<returns><c>true</c> if the given numbers are not equal; otherwise, <c>false</c>.</returns>
</member>
<member name="M:J2N.Threading.Atomic.AtomicInt32.op_Equality(System.Nullable{System.Int32},J2N.Threading.Atomic.AtomicInt32)">
<summary>
Compares <paramref name="a1"/> and <paramref name="a2"/> for value equality.
</summary>
<param name="a1">The first number.</param>
<param name="a2">The second number.</param>
<returns><c>true</c> if the given numbers are equal; otherwise, <c>false</c>.</returns>
</member>
<member name="M:J2N.Threading.Atomic.AtomicInt32.op_Inequality(System.Nullable{System.Int32},J2N.Threading.Atomic.AtomicInt32)">
<summary>
Compares <paramref name="a1"/> and <paramref name="a2"/> for value inequality.
</summary>
<param name="a1">The first number.</param>
<param name="a2">The second number.</param>
<returns><c>true</c> if the given numbers are not equal; otherwise, <c>false</c>.</returns>
</member>
<member name="T:J2N.Threading.Atomic.AtomicInt64">
<summary>
A <see cref="T:System.Int64"/> value that may be updated atomically.
An <see cref="T:J2N.Threading.Atomic.AtomicInt64"/> is used in applications such as atomically
incremented sequence numbers, and cannot be used as a replacement
for a <see cref="T:System.Int64"/>. However, this class does
implement implicit conversion to <see cref="T:System.Int64"/>, so it can
be utilized with language features, tools and utilities that deal
with numerical operations.
<para/>
NOTE: This was AtomicLong in the JDK
</summary>
</member>
<member name="M:J2N.Threading.Atomic.AtomicInt64.#ctor">
<summary>
Creates a new <see cref="T:J2N.Threading.Atomic.AtomicInt64"/> with the default inital value, <c>0</c>.
</summary>
</member>
<member name="M:J2N.Threading.Atomic.AtomicInt64.#ctor(System.Int64)">
<summary>
Creates a new <see cref="T:J2N.Threading.Atomic.AtomicInt64"/> with the given initial <paramref name="value"/>.
</summary>
<param name="value">The inital value.</param>
</member>
<member name="P:J2N.Threading.Atomic.AtomicInt64.Value">
<summary>
Gets or sets the current value. Note that these operations can be done
implicitly by setting the <see cref="T:J2N.Threading.Atomic.AtomicInt64"/> to a <see cref="T:System.Int64"/>.
<code>
AtomicInt64 along = new AtomicInt64(4);
long x = along;
</code>
</summary>
<remarks>
Properties are inherently not atomic. Operators such as ++ and -- should not
be used on <see cref="P:J2N.Threading.Atomic.AtomicInt64.Value"/> because they perform both a separate get and a set operation. Instead,
use the atomic methods such as <see cref="M:J2N.Threading.Atomic.AtomicInt64.IncrementAndGet"/>, <see cref="M:J2N.Threading.Atomic.AtomicInt64.GetAndIncrement"/>
<see cref="M:J2N.Threading.Atomic.AtomicInt64.DecrementAndGet"/> and <see cref="M:J2N.Threading.Atomic.AtomicInt64.GetAndDecrement"/> to ensure atomicity.
</remarks>
</member>
<member name="M:J2N.Threading.Atomic.AtomicInt64.GetAndSet(System.Int32)">
<summary>
Atomically sets to the given value and returns the old value.
</summary>
<param name="newValue">The new value.</param>
<returns>The previous value.</returns>
</member>
<member name="M:J2N.Threading.Atomic.AtomicInt64.CompareAndSet(System.Int64,System.Int64)">
<summary>
Atomically sets the value to the given updated value
if the current value equals the expected value.
</summary>
<param name="expect">The expected value (the comparand).</param>
<param name="update">The new value that will be set if the current value equals the expected value.</param>
<returns><c>true</c> if successful. A <c>false</c> return value indicates that the actual value
was not equal to the expected value.</returns>
</member>
<member name="M:J2N.Threading.Atomic.AtomicInt64.GetAndIncrement">
<summary>
Atomically increments by one the current value.
</summary>
<returns>The previous value, before the increment.</returns>
</member>
<member name="M:J2N.Threading.Atomic.AtomicInt64.GetAndDecrement">
<summary>
Atomically decrements by one the current value.
</summary>
<returns>The previous value, before the decrement.</returns>
</member>
<member name="M:J2N.Threading.Atomic.AtomicInt64.GetAndAdd(System.Int64)">
<summary>
Atomically adds the given value to the current value.
</summary>
<param name="value">The value to add.</param>
<returns>The previous value, before the addition.</returns>
</member>
<member name="M:J2N.Threading.Atomic.AtomicInt64.IncrementAndGet">
<summary>
Atomically increments by one the current value.
</summary>
<returns>The updated value.</returns>
</member>
<member name="M:J2N.Threading.Atomic.AtomicInt64.DecrementAndGet">
<summary>
Atomically decrements by one the current value.
</summary>
<returns>The updated value.</returns>
</member>
<member name="M:J2N.Threading.Atomic.AtomicInt64.AddAndGet(System.Int64)">
<summary>
Atomically adds the given value to the current value.
</summary>
<param name="value">The value to add.</param>
<returns>The updated value.</returns>
</member>
<member name="M:J2N.Threading.Atomic.AtomicInt64.Equals(J2N.Threading.Atomic.AtomicInt64)">
<summary>
Determines whether the specified <see cref="T:J2N.Threading.Atomic.AtomicInt64"/> is equal to the current <see cref="T:J2N.Threading.Atomic.AtomicInt64"/>.
</summary>
<param name="other">The <see cref="T:J2N.Threading.Atomic.AtomicInt64"/> to compare with the current <see cref="T:J2N.Threading.Atomic.AtomicInt64"/>.</param>
<returns><c>true</c> if <paramref name="other"/> is equal to the current <see cref="T:J2N.Threading.Atomic.AtomicInt64"/>; otherwise, <c>false</c>.</returns>
</member>
<member name="M:J2N.Threading.Atomic.AtomicInt64.Equals(System.Int64)">
<summary>
Determines whether the specified <see cref="T:System.Int64"/> is equal to the current <see cref="T:J2N.Threading.Atomic.AtomicInt64"/>.
</summary>
<param name="other">The <see cref="T:System.Int64"/> to compare with the current <see cref="T:J2N.Threading.Atomic.AtomicInt64"/>.</param>
<returns><c>true</c> if <paramref name="other"/> is equal to the current <see cref="T:J2N.Threading.Atomic.AtomicInt64"/>; otherwise, <c>false</c>.</returns>
</member>
<member name="M:J2N.Threading.Atomic.AtomicInt64.Equals(System.Object)">
<summary>
Determines whether the specified <see cref="T:System.Object"/> is equal to the current <see cref="T:J2N.Threading.Atomic.AtomicInt64"/>.
<para/>
If <paramref name="other"/> is a <see cref="T:J2N.Threading.Atomic.AtomicInt64"/>, the comparison is not done atomically.
</summary>
<param name="other">The <see cref="T:System.Object"/> to compare with the current <see cref="T:J2N.Threading.Atomic.AtomicInt64"/>.</param>
<returns><c>true</c> if <paramref name="other"/> is equal to the current <see cref="T:J2N.Threading.Atomic.AtomicInt64"/>; otherwise, <c>false</c>.</returns>
</member>
<member name="M:J2N.Threading.Atomic.AtomicInt64.GetHashCode">
<summary>
Returns the hash code for this instance.
</summary>
<returns>A 32-bit signed integer hash code.</returns>
</member>
<member name="M:J2N.Threading.Atomic.AtomicInt64.ToString">
<summary>
Converts the numeric value of this instance to its equivalent string representation.
</summary>
<returns>The string representation of the value of this instance, consisting of
a negative sign if the value is negative,
and a sequence of digits ranging from 0 to 9 with no leading zeroes.</returns>
</member>
<member name="M:J2N.Threading.Atomic.AtomicInt64.ToString(System.String)">
<summary>
Converts the numeric value of this instance to its equivalent string representation,
using the specified <paramref name="format"/>.
</summary>
<param name="format">A standard or custom numeric format string.</param>
<returns>The string representation of the value of this instance as specified
by <paramref name="format"/>.</returns>
</member>
<member name="M:J2N.Threading.Atomic.AtomicInt64.ToString(System.IFormatProvider)">
<summary>
Converts the numeric value of this instance to its equivalent string representation
using the specified culture-specific format information.
</summary>
<param name="provider">An object that supplies culture-specific formatting information.</param>
<returns>The string representation of the value of this instance as specified by <paramref name="provider"/>.</returns>
</member>
<member name="M:J2N.Threading.Atomic.AtomicInt64.ToString(System.String,System.IFormatProvider)">
<summary>
Converts the numeric value of this instance to its equivalent string representation using the
specified format and culture-specific format information.
</summary>
<param name="format">A standard or custom numeric format string.</param>
<param name="provider">An object that supplies culture-specific formatting information.</param>
<returns>The string representation of the value of this instance as specified by
<paramref name="format"/> and <paramref name="provider"/>.</returns>
</member>
<member name="M:J2N.Threading.Atomic.AtomicInt64.ToByte">
<inheritdoc/>
</member>
<member name="M:J2N.Threading.Atomic.AtomicInt64.ToSByte">
<inheritdoc/>
</member>
<member name="M:J2N.Threading.Atomic.AtomicInt64.ToDouble">
<inheritdoc/>
</member>
<member name="M:J2N.Threading.Atomic.AtomicInt64.ToSingle">
<inheritdoc/>
</member>
<member name="M:J2N.Threading.Atomic.AtomicInt64.ToInt32">
<inheritdoc/>
</member>
<member name="M:J2N.Threading.Atomic.AtomicInt64.ToInt64">
<inheritdoc/>
</member>
<member name="M:J2N.Threading.Atomic.AtomicInt64.ToInt16">
<inheritdoc/>
</member>
<member name="M:J2N.Threading.Atomic.AtomicInt64.GetTypeCode">
<summary>
Returns the <see cref="T:System.TypeCode"/> for value type <see cref="T:System.Int32"/>.
</summary>
<returns></returns>
</member>
<member name="M:J2N.Threading.Atomic.AtomicInt64.op_Implicit(J2N.Threading.Atomic.AtomicInt64)~System.Int64">
<summary>
Implicitly converts an <see cref="T:J2N.Threading.Atomic.AtomicInt64"/> to a <see cref="T:System.Int64"/>.
</summary>
<param name="atomicInt64">The <see cref="T:J2N.Threading.Atomic.AtomicInt64"/> to convert.</param>
</member>
<member name="M:J2N.Threading.Atomic.AtomicInt64.op_Equality(J2N.Threading.Atomic.AtomicInt64,J2N.Threading.Atomic.AtomicInt64)">
<summary>
Compares <paramref name="a1"/> and <paramref name="a2"/> for value equality.
</summary>
<param name="a1">The first number.</param>
<param name="a2">The second number.</param>
<returns><c>true</c> if the given numbers are equal; otherwise, <c>false</c>.</returns>
</member>
<member name="M:J2N.Threading.Atomic.AtomicInt64.op_Inequality(J2N.Threading.Atomic.AtomicInt64,J2N.Threading.Atomic.AtomicInt64)">
<summary>
Compares <paramref name="a1"/> and <paramref name="a2"/> for value inequality.
</summary>
<param name="a1">The first number.</param>
<param name="a2">The second number.</param>
<returns><c>true</c> if the given numbers are not equal; otherwise, <c>false</c>.</returns>
</member>
<member name="M:J2N.Threading.Atomic.AtomicInt64.op_Equality(J2N.Threading.Atomic.AtomicInt64,System.Int64)">
<summary>
Compares <paramref name="a1"/> and <paramref name="a2"/> for value equality.
</summary>
<param name="a1">The first number.</param>
<param name="a2">The second number.</param>
<returns><c>true</c> if the given numbers are equal; otherwise, <c>false</c>.</returns>
</member>
<member name="M:J2N.Threading.Atomic.AtomicInt64.op_Inequality(J2N.Threading.Atomic.AtomicInt64,System.Int64)">
<summary>
Compares <paramref name="a1"/> and <paramref name="a2"/> for value inequality.
</summary>
<param name="a1">The first number.</param>
<param name="a2">The second number.</param>
<returns><c>true</c> if the given numbers are not equal; otherwise, <c>false</c>.</returns>
</member>
<member name="M:J2N.Threading.Atomic.AtomicInt64.op_Equality(System.Int64,J2N.Threading.Atomic.AtomicInt64)">
<summary>
Compares <paramref name="a1"/> and <paramref name="a2"/> for value equality.
</summary>
<param name="a1">The first number.</param>
<param name="a2">The second number.</param>
<returns><c>true</c> if the given numbers are equal; otherwise, <c>false</c>.</returns>
</member>
<member name="M:J2N.Threading.Atomic.AtomicInt64.op_Inequality(System.Int64,J2N.Threading.Atomic.AtomicInt64)">
<summary>
Compares <paramref name="a1"/> and <paramref name="a2"/> for value inequality.
</summary>
<param name="a1">The first number.</param>
<param name="a2">The second number.</param>
<returns><c>true</c> if the given numbers are not equal; otherwise, <c>false</c>.</returns>
</member>
<member name="M:J2N.Threading.Atomic.AtomicInt64.op_Equality(J2N.Threading.Atomic.AtomicInt64,System.Nullable{System.Int64})">
<summary>
Compares <paramref name="a1"/> and <paramref name="a2"/> for value equality.
</summary>
<param name="a1">The first number.</param>
<param name="a2">The second number.</param>
<returns><c>true</c> if the given numbers are equal; otherwise, <c>false</c>.</returns>
</member>
<member name="M:J2N.Threading.Atomic.AtomicInt64.op_Inequality(J2N.Threading.Atomic.AtomicInt64,System.Nullable{System.Int64})">
<summary>
Compares <paramref name="a1"/> and <paramref name="a2"/> for value inequality.
</summary>
<param name="a1">The first number.</param>
<param name="a2">The second number.</param>
<returns><c>true</c> if the given numbers are not equal; otherwise, <c>false</c>.</returns>
</member>
<member name="M:J2N.Threading.Atomic.AtomicInt64.op_Equality(System.Nullable{System.Int64},J2N.Threading.Atomic.AtomicInt64)">
<summary>
Compares <paramref name="a1"/> and <paramref name="a2"/> for value equality.
</summary>
<param name="a1">The first number.</param>
<param name="a2">The second number.</param>
<returns><c>true</c> if the given numbers are equal; otherwise, <c>false</c>.</returns>
</member>
<member name="M:J2N.Threading.Atomic.AtomicInt64.op_Inequality(System.Nullable{System.Int64},J2N.Threading.Atomic.AtomicInt64)">
<summary>
Compares <paramref name="a1"/> and <paramref name="a2"/> for value inequality.
</summary>
<param name="a1">The first number.</param>
<param name="a2">The second number.</param>
<returns><c>true</c> if the given numbers are not equal; otherwise, <c>false</c>.</returns>
</member>
<member name="T:J2N.Threading.Atomic.AtomicReference`1">
<summary>
An object reference that may be updated atomically.
<para/>
Uses <see cref="T:System.Threading.Interlocked"/> to enforce ordering of writes without any explicit locking.
</summary>
</member>
<member name="M:J2N.Threading.Atomic.AtomicReference`1.#ctor(`0)">
<summary>
Creates a new <see cref="T:J2N.Threading.Atomic.AtomicReference`1"/> with the given initial <paramref name="value"/>.
</summary>
<param name="value">The initial value.</param>
</member>
<member name="M:J2N.Threading.Atomic.AtomicReference`1.#ctor">
<summary>
Creates a new <see cref="T:J2N.Threading.Atomic.AtomicReference`1"/> with <c>null</c> initial value.
</summary>
</member>
<member name="P:J2N.Threading.Atomic.AtomicReference`1.Value">
<summary>
Gets or sets the current value. Note that these operations can be done
implicitly by setting the <see cref="T:J2N.Threading.Atomic.AtomicReference`1"/> to a variable
of type <typeparamref name="T"/>.
<code>
var someObject = new SomeObject();
AtomicReference&lt;SomeObject&gt; aref = new AtomicReference&lt;SomeObject&gt;(someObject);
SomeObject x = aref;
</code>
</summary>
</member>
<member name="M:J2N.Threading.Atomic.AtomicReference`1.CompareAndSet(`0,`0)">
<summary>
Atomically sets the value to the given updated value
if the current value <c>==</c> the expected value.
</summary>
<param name="expect">The expected value.</param>
<param name="update">The new value.</param>
<returns><c>true</c> if successful. A <c>false</c> return value indicates that the actual value
was not equal to the expected value.</returns>
</member>
<member name="M:J2N.Threading.Atomic.AtomicReference`1.GetAndSet(`0)">
<summary>
Atomically sets the given <paramref name="value"/> and returns the old value.
</summary>
<param name="value">The new value.</param>
<returns>The previous value.</returns>
</member>
<member name="M:J2N.Threading.Atomic.AtomicReference`1.ToString">
<summary>
Returns the <see cref="T:System.String"/> representation of the current value.
</summary>
<returns>The <see cref="T:System.String"/> representation of the current value.</returns>
</member>
<member name="M:J2N.Threading.Atomic.AtomicReference`1.op_Implicit(J2N.Threading.Atomic.AtomicReference{`0})~`0">
<summary>
Implicitly converts an <see cref="T:J2N.Threading.Atomic.AtomicReference`1"/> to a <typeparamref name="T"/>.
</summary>
<param name="atomicReference">The <see cref="T:J2N.Threading.Atomic.AtomicReference`1"/> to convert.</param>
<returns>The result of the conversion.</returns>
</member>
<member name="T:J2N.Threading.Atomic.AtomicReferenceArray`1">
<summary>
An array of object references in which elements may be updated
atomically.
</summary>
<typeparam name="T">The class type to store in the array.</typeparam>
</member>
<member name="M:J2N.Threading.Atomic.AtomicReferenceArray`1.#ctor(System.Int32)">
<summary>
Creates a new <see cref="T:J2N.Threading.Atomic.AtomicReferenceArray`1"/> of given <paramref name="length"/>.
</summary>
<param name="length">The length of the array.</param>
</member>
<member name="M:J2N.Threading.Atomic.AtomicReferenceArray`1.#ctor(`0[])">
<summary>
Creates a new <see cref="T:J2N.Threading.Atomic.AtomicReferenceArray`1"/> with the same length as, and
all elements copied from, the given array.
</summary>
<param name="array">The array to copy elements from.</param>
<exception cref="T:System.ArgumentNullException">If <paramref name="array"/> is <c>null</c>.</exception>
</member>
<member name="P:J2N.Threading.Atomic.AtomicReferenceArray`1.Length">
<summary>
Gets the length of the array.
</summary>
</member>
<member name="P:J2N.Threading.Atomic.AtomicReferenceArray`1.Item(System.Int32)">
<summary>
Gets or sets the current value at position <paramref name="index"/>.
</summary>
<param name="index">The index.</param>
<returns>The current value.</returns>
</member>
<member name="M:J2N.Threading.Atomic.AtomicReferenceArray`1.GetAndSet(System.Int32,`0)">
<summary>
Atomically sets the element at position <paramref name="index"/> to the given
value and returns the old value.
</summary>
<param name="index">The index.</param>
<param name="newValue">The new value.</param>
<returns>The previous value.</returns>
</member>
<member name="M:J2N.Threading.Atomic.AtomicReferenceArray`1.CompareAndSet(System.Int32,`0,`0)">
<summary>
Atomically sets the element at position <paramref name="index"/> to the given
updated value if the current value <c>==</c> the expected value.
</summary>
<param name="index">The index.</param>
<param name="expect">The expected value.</param>
<param name="update">The new value.</param>
<returns><c>true</c> if successful. A <c>false</c> return value indicates that the actual value
was not equal to the expected value.</returns>
</member>
<member name="M:J2N.Threading.Atomic.AtomicReferenceArray`1.ToString">
<summary>
Returns the <see cref="T:System.String"/> representation of the current values of array.
</summary>
<returns>The <see cref="T:System.String"/> representation of the current values of array.</returns>
</member>
<member name="M:J2N.Threading.Atomic.AtomicReferenceArray`1.ToString(System.IFormatProvider)">
<summary>
Returns the <see cref="T:System.String"/> representation of the current values of array using the
specified culture-specific formatting information.
</summary>
<param name="provider">An object that supplies culture-specific formatting information.</param>
<returns>The <see cref="T:System.String"/> representation of the current values of array.</returns>
</member>
<member name="T:J2N.Threading.ThreadJob">
<summary>
Base class used to handle threads that is
inheritable just like the Thread type in Java.
This class also ensures that when an error is thrown
on a background thread, it will be properly re-thrown
on the calling thread.
<para/>
Usage Note: Where possible, prefer to port Java threads
to use TPL and/or the .NET <see cref="T:System.Threading.Thread"/> class.
This class is provided as a quick solution to
porting code that subclasses the Thread class in Java, but
the end result is less than ideal, so it is recommended to only
use this class for porting tests. However, it is stable enough
to use in production scenarios.
</summary>
</member>
<member name="F:J2N.Threading.ThreadJob.threadStart">
<summary>
The <see cref="T:System.Threading.ThreadStart"/> delegate.
This object will be used for synchronization.
</summary>
</member>
<member name="F:J2N.Threading.ThreadJob.thread">
<summary>
The instance of <see cref="T:System.Threading.Thread"/>.
</summary>
</member>
<member name="F:J2N.Threading.ThreadJob.name">
<summary>
The name of the thread before it is started.
</summary>
</member>
<member name="F:J2N.Threading.ThreadJob.exception">
<summary>
The exception (if any) caught on the running thread
that will be re-thrown on the calling thread after
calling <see cref="M:J2N.Threading.ThreadJob.Join"/>, <see cref="M:J2N.Threading.ThreadJob.Join(System.Int64)"/>,
or <see cref="M:J2N.Threading.ThreadJob.Join(System.Int64,System.Int32)"/>.
</summary>
</member>
<member name="M:J2N.Threading.ThreadJob.#ctor">
<summary>
Initializes a new instance of the <see cref="T:J2N.Threading.ThreadJob"/> class.
</summary>
</member>
<member name="M:J2N.Threading.ThreadJob.#ctor(System.String)">
<summary>
Initializes a new instance of the <see cref="T:J2N.Threading.ThreadJob"/> class
with the provided <paramref name="threadName"/>.
</summary>
<param name="threadName">The name of the thread</param>
</member>
<member name="M:J2N.Threading.ThreadJob.#ctor(System.Threading.ThreadStart)">
<summary>
Initializes a new instance of the <see cref="T:J2N.Threading.ThreadJob"/> class
with the provided <paramref name="threadStart"/> delegate.
</summary>
<param name="threadStart">A <see cref="T:System.Threading.ThreadStart"/> delegate that
references the method to be invoked when this thread begins executing.</param>
<exception cref="T:System.ArgumentNullException">If <paramref name="threadStart"/> is <c>null</c>.</exception>
</member>
<member name="M:J2N.Threading.ThreadJob.#ctor(System.Threading.ThreadStart,System.String)">
<summary>
Initializes a new instance of the <see cref="T:J2N.Threading.ThreadJob"/> class
with the provided <paramref name="threadStart"/> delegate and
<paramref name="threadName"/>.
</summary>
<param name="threadStart">A ThreadStart delegate that references the method
to be invoked when this thread begins executing.</param>
<param name="threadName">The name of the thread</param>
<exception cref="T:System.ArgumentNullException">If <paramref name="threadStart"/> is <c>null</c>.</exception>
</member>
<member name="M:J2N.Threading.ThreadJob.SafeRun(System.Threading.ThreadStart)">
<summary>
Safely starts the method passed to <paramref name="start"/> and stores any exception that is
thrown. The first exception will stop execution of the method passed to <paramref name="start"/>
and it will be re-thrown on the calling thread after it calls <see cref="M:J2N.Threading.ThreadJob.Join"/>,
<see cref="M:J2N.Threading.ThreadJob.Join(System.Int64)"/>, or <see cref="M:J2N.Threading.ThreadJob.Join(System.Int64,System.Int32)"/>.
</summary>
<param name="start">A <see cref="T:System.Threading.ThreadStart"/> delegate that references the method
to be invoked when this thread begins executing.</param>
</member>
<member name="M:J2N.Threading.ThreadJob.Run">
<summary>
Invokes the <see cref="T:System.Threading.ThreadStart"/> delegate that was passed into the constructor.
If no <see cref="T:System.Threading.ThreadStart"/> was set, does nothing.
Alternatively, this method may be overridden by subclasses to provide an implementation
for the thread to run.
</summary>
</member>
<member name="M:J2N.Threading.ThreadJob.Start">
<summary>
Starts the new <see cref="T:System.Threading.Thread"/> of execution. The <see cref="M:J2N.Threading.ThreadJob.Run"/> method of the
receiver will be called by the receiver <see cref="T:System.Threading.Thread"/> itself (and not the
<see cref="T:System.Threading.Thread"/> calling <see cref="M:J2N.Threading.ThreadJob.Start"/>).
</summary>
</member>
<member name="M:J2N.Threading.ThreadJob.Interrupt">
<summary>
Interrupts a thread that is in the <see cref="F:System.Threading.ThreadState.WaitSleepJoin"/> thread state.
</summary>
</member>
<member name="P:J2N.Threading.ThreadJob.SyncRoot">
<summary>
Gets an object that can be used to synchronize with this instance.
</summary>
</member>
<member name="P:J2N.Threading.ThreadJob.Instance">
<summary>
Gets the current thread instance.
</summary>
</member>
<member name="P:J2N.Threading.ThreadJob.CurrentThread">
<summary>
Gets the currently running thread as a <see cref="T:J2N.Threading.ThreadJob"/>.
</summary>
<returns>The currently running thread as a <see cref="T:J2N.Threading.ThreadJob"/>.</returns>
</member>
<member name="P:J2N.Threading.ThreadJob.Name">
<summary>
Gets or sets the name of the thread.
</summary>
<exception cref="T:System.ArgumentNullException">When setting the value to <c>null</c>.</exception>
</member>
<member name="P:J2N.Threading.ThreadJob.State">
<summary>
Gets the current state of the thread. This propery is
useful for monitoring purposes.
</summary>
</member>
<member name="P:J2N.Threading.ThreadJob.Priority">
<summary>
Gets or sets a value indicating the scheduling priority of a thread.
<para/>
Usage Note: In Java, the priority numbers are 1 to 10 but in .NET they are
<see cref="F:System.Threading.ThreadPriority.Lowest"/> (0) to <see cref="F:System.Threading.ThreadPriority.Highest"/> (5).
If set to a value higher than <see cref="F:System.Threading.ThreadPriority.Highest"/>, the priority will be <see cref="F:System.Threading.ThreadPriority.Highest"/>.
If set to a value lower than <see cref="F:System.Threading.ThreadPriority.Lowest"/>, the priority will be <see cref="F:System.Threading.ThreadPriority.Lowest"/>.
</summary>
<exception cref="T:System.Threading.ThreadStateException">The thread has reached a final state, such as <see cref="F:System.Threading.ThreadState.Aborted"/>.</exception>
</member>
<member name="P:J2N.Threading.ThreadJob.IsAlive">
<summary>
Gets a value indicating the execution status of the current thread
</summary>
</member>
<member name="P:J2N.Threading.ThreadJob.IsBackground">
<summary>
Gets or sets a value indicating whether or not a thread is a background thread.
A background thread only runs as long as there are non-background threads running.
When the last non-background thread ends, the whole program ends no matter if it had
background threads running or not.
</summary>
</member>
<member name="P:J2N.Threading.ThreadJob.IsDebug">
<summary>
If <c>true</c> when <see cref="M:J2N.Threading.ThreadJob.Join"/>, <see cref="M:J2N.Threading.ThreadJob.Join(System.Int64)"/> or <see cref="M:J2N.Threading.ThreadJob.Join(System.Int64,System.Int32)"/> is called,
any original exception and error message will be wrapped into a new <see cref="T:System.Exception"/> when thrown, so
debugging tools will show the correct stack trace information.
<para/>
NOTE: This changes the original exception type to <see cref="T:System.Exception"/>, so this setting should not be used if
control logic depends on the specific exception type being thrown. An alternative way to get the original
<see cref="M:System.Exception.ToString"/> message is to use <c>exception.Data["OriginalMessage"].ToString()</c>.
</summary>
</member>
<member name="M:J2N.Threading.ThreadJob.Join">
<summary>
Blocks the calling thread until a thread terminates.
</summary>
</member>
<member name="M:J2N.Threading.ThreadJob.Join(System.Int64)">
<summary>
Blocks the calling thread until a thread terminates or the specified time elapses.
</summary>
<param name="milliSeconds">Time of wait in milliseconds</param>
</member>
<member name="M:J2N.Threading.ThreadJob.Join(System.Int64,System.Int32)">
<summary>
Blocks the calling thread until a thread terminates or the specified time elapses.
</summary>
<param name="milliSeconds">Time of wait in milliseconds.</param>
<param name="nanoSeconds">Time of wait in nanoseconds.</param>
</member>
<member name="M:J2N.Threading.ThreadJob.Resume">
<summary>
Resumes a thread that has been suspended. This is a no-op if the receiver
was never suspended, or suspended and already resumed. If the receiver is
suspended, this method remumes at the point where it was when it was suspended.
</summary>
</member>
<member name="M:J2N.Threading.ThreadJob.Abort">
<summary>
Raises a <see cref="T:System.Threading.ThreadAbortException"/> in the thread on which it is invoked,
to begin the process of terminating the thread. Calling this method
usually terminates the thread.
</summary>
</member>
<member name="M:J2N.Threading.ThreadJob.Abort(System.Object)">
<summary>
Raises a <see cref="T:System.Threading.ThreadAbortException"/> in the thread on which it is invoked,
to begin the process of terminating the thread while also providing
exception information about the thread termination.
Calling this method usually terminates the thread.
</summary>
<param name="stateInfo">An object that contains application-specific information, such as state, which can be used by the thread being aborted</param>
</member>
<member name="M:J2N.Threading.ThreadJob.Yield">
<summary>
Causes the calling <see cref="T:System.Threading.Thread"/> to yield execution time to another <see cref="T:System.Threading.Thread"/> that
is ready to run. The actual scheduling is implementation-dependent.
</summary>
</member>
<member name="M:J2N.Threading.ThreadJob.Suspend">
<summary>
Suspends the thread. This is a no-op if the receiver is already suspended.
If the receiver state is <see cref="P:J2N.Threading.ThreadJob.IsAlive"/>, it will be suspended until
<see cref="M:J2N.Threading.ThreadJob.Resume"/> (or <see cref="M:System.Threading.Monitor.PulseAll(System.Object)"/>) is called.
Suspend requests are not queued, which means that N requests are equivalent to
just one - only one resume request is needed in this case.
</summary>
</member>
<member name="M:J2N.Threading.ThreadJob.Sleep(System.Int64)">
<summary>
Causes the thread which sent this message to sleep for the given interval
of time (given in milliseconds). The precision is not guaranteed - the
<see cref="T:System.Threading.Thread"/> may sleep more or less than requested.
</summary>
<param name="milliSeconds">The time to sleep in milliseconds.</param>
<seealso cref="M:J2N.Threading.ThreadJob.Interrupt"/>
</member>
<member name="M:J2N.Threading.ThreadJob.Sleep(System.Int64,System.Int32)">
<summary>
</summary>
<param name="milliSeconds"></param>
<param name="nanoSeconds"></param>
</member>
<member name="M:J2N.Threading.ThreadJob.Sleep(System.TimeSpan)">
<summary>
Suspends the current thread for the specified amount of time.
</summary>
<param name="timeout">The amount of time for which the thread is suspended.
If the value of the <c>millisecondsTimeout</c> argument is <see cref="F:System.TimeSpan.Zero"/>,
the thread relinquishes the remainder of its time slice to any thread of equal
priority that is ready to run. If there are no other threads of equal priority
that are ready to run, execution of the current thread is not suspended.</param>
<exception cref="T:System.ArgumentOutOfRangeException">The value of <paramref name="timeout"/> is negative and
is not equal to <see cref="F:System.Threading.Timeout.Infinite"/> in milliseconds, or is greater than <see cref="F:System.Int32.MaxValue"/>
milliseconds.</exception>
</member>
<member name="M:J2N.Threading.ThreadJob.Interrupted">
<summary>
Java has Thread.interrupted() which returns, and clears, the interrupt
flag of the current thread. .NET has no such method, so we're calling
Thread.Sleep to provoke the exception which will also clear the flag.
</summary>
<returns><c>true</c> if the current thread (<see cref="P:J2N.Threading.ThreadJob.CurrentThread"/>)
has a bending interrupt request; othewise, <c>false</c>.</returns>
</member>
<member name="M:J2N.Threading.ThreadJob.op_Equality(J2N.Threading.ThreadJob,System.Object)">
<summary>
Compares <paramref name="t1"/> and <paramref name="t2"/> for equality.
</summary>
<param name="t1">A <see cref="T:J2N.Threading.ThreadJob"/> instance.</param>
<param name="t2">A <see cref="T:J2N.Threading.ThreadJob"/> or <see cref="T:System.Threading.Thread"/> instance to compare <paramref name="t1"/> to.</param>
<returns><c>true</c> if the given instances are equal; otherwise, <c>false</c>.</returns>
</member>
<member name="M:J2N.Threading.ThreadJob.op_Inequality(J2N.Threading.ThreadJob,System.Object)">
<summary>
Compares <paramref name="t1"/> and <paramref name="t2"/> for inequality.
</summary>
<param name="t1">A <see cref="T:J2N.Threading.ThreadJob"/> instance.</param>
<param name="t2">A <see cref="T:J2N.Threading.ThreadJob"/> or <see cref="T:System.Threading.Thread"/> instance to compare <paramref name="t1"/> to.</param>
<returns><c>true</c> if the given instances are not equal; otherwise, <c>false</c>.</returns>
</member>
<member name="M:J2N.Threading.ThreadJob.Equals(System.Threading.Thread)">
<summary>
Determines whether <paramref name="other"/> is equal to the current object.
</summary>
<param name="other">The object to compare with the current object.</param>
<returns><c>true</c> if the specified object is equal to the current object; otherwise, <c>false</c>.</returns>
</member>
<member name="M:J2N.Threading.ThreadJob.Equals(J2N.Threading.ThreadJob)">
<summary>
Determines whether <paramref name="other"/> is equal to the current object.
</summary>
<param name="other">The object to compare with the current object.</param>
<returns><c>true</c> if the specified object is equal to the current object; otherwise, <c>false</c>.</returns>
</member>
<member name="M:J2N.Threading.ThreadJob.Equals(System.Object)">
<summary>
Determines whether <paramref name="obj"/> is equal to the current object.
</summary>
<param name="obj">The object to compare with the current object.</param>
<returns><c>true</c> if the specified object is equal to the current object; otherwise, <c>false</c>.</returns>
</member>
<member name="M:J2N.Threading.ThreadJob.GetHashCode">
<summary>
Returns a hash code for the current thread.
</summary>
<returns>An integer hash code value.</returns>
</member>
<member name="M:J2N.Threading.ThreadJob.ToString">
<summary>
Obtain a <see cref="T:System.String"/> that represents the current object.
</summary>
<returns>A <see cref="T:System.String"/> that represents the current object.</returns>
</member>
<member name="T:J2N.Time">
<summary>
Utilities for timing.
</summary>
</member>
<member name="F:J2N.Time.MillisecondsPerNanosecond">
<summary>
The number of milliseconds in one nanosecond.
</summary>
</member>
<member name="F:J2N.Time.SecondsPerNanosecond">
<summary>
The number or seconds in one nanosecond.
</summary>
</member>
<member name="F:J2N.Time.UnixEpochTicks">
<summary>
The .NET ticks representing January 1, 1970 0:00:00, also known as the "epoch".
</summary>
</member>
<member name="F:J2N.Time.UnixEpoch">
<summary>
The <see cref="T:System.DateTime"/> January 1, 1970 0:00:00 UTC, also known as the "epoch".
</summary>
</member>
<member name="M:J2N.Time.NanoTime">
<summary>
Returns the current value of the running framework's high-resolution time source, in nanoseconds.
</summary>
<returns>The current value of the current framework's high resolution time source, in nanoseconds.</returns>
<remarks>
This method can only be used to measure elapsed time and is not related to any other notion of system
or wall-clock time. The value returned represents nanoseconds since some fixed but arbitrary origin
time (perhaps in the future, so values may be negative).
<para/>
This method provides nanosecond precision, but not necessarily nanosecond resolution (that is, how
frequently the value changes) - no guarantees are made except that the resolution is at least as
good as that of <see cref="M:J2N.Time.CurrentTimeMilliseconds"/>.
<para/>
This method relies on <see cref="T:System.Diagnostics.Stopwatch"/>, which is the most accurate
timing mechanism in the .NET framework.
<para/>
For example, to measure how long some code takes to execute:
<code>
long startTime = Time.NanoTime();<br/>
// ... the code being measured ...<br/>
long estimatedTime = Time.NanoTime() - startTime;
</code>
To compare two nanoTime values
<code>
long t0 = Time.NanoTime();<br/>
...<br/>
long t1 = Time.NanoTime();
</code>
one should use <c>t1 - t0 &lt; 0</c>, not <c>t1 &lt; t0</c>, because of the possibility
of numerical overflow.
<para/>
The elapsed time can be converted to milliseconds or seconds by using the <see cref="F:J2N.Time.MillisecondsPerNanosecond"/>
and <see cref="F:J2N.Time.SecondsPerNanosecond"/> constants.
<code>
long t0 = Time.NanoTime();<br/>
...<br/>
long t1 = Time.NanoTime();<br/>
<br/>
double milliseconds = ((double)t1 - t0) / Time.MillisecondsPerNanosecond;<br/>
double seconds = ((dobule)t1 - t0) / Time.SecondsPerNanosecond;
</code>
</remarks>
</member>
<member name="M:J2N.Time.CurrentTimeMilliseconds">
<summary>
Returns the current time in milliseconds. Note that while the unit of time of the
return value is a millisecond, the granularity of the value depends on the underlying
operating system and may be larger. For example, many operating systems measure time in
units of tens of milliseconds.
<para/>
This value returned is based on <see cref="P:System.DateTime.UtcNow"/>, which is not the highest
resolution timer available. For a higher resolution measurment of elapsed time, use <see cref="M:J2N.Time.NanoTime"/>.
</summary>
<returns>The difference, measured in milliseconds, between the current time and midnight, January 1, 1970 UTC
also known as the "epoch".</returns>
</member>
<member name="M:J2N.Time.GetMillisecondsSinceUnixEpoch(System.DateTime)">
<summary>
Returns the number of milliseconds since January 1, 1970, 00:00:00 UTC represented by <paramref name="dateTime"/>.
<para/>
Usage Note: This method corresponds to Date.getTime() in the JDK.
</summary>
<param name="dateTime">This <see cref="T:System.DateTime"/>.</param>
<returns>The number of milliseconds since January 1, 1970, 00:00:00 UTC represented by <paramref name="dateTime"/>.</returns>
<seealso cref="M:J2N.Time.GetTimeSpanSinceUnixEpoch(System.DateTime)"/>
<seealso cref="F:J2N.Time.UnixEpoch"/>
</member>
<member name="M:J2N.Time.GetTimeSpanSinceUnixEpoch(System.DateTime)">
<summary>
Returns the <see cref="T:System.TimeSpan"/> since January 1, 1970, 00:00:00 UTC represented by <paramref name="dateTime"/>.
<para/>
Usage Note: This method provides similar functionality to Date.getTime() in the JDK, however,
<see cref="M:J2N.Time.GetMillisecondsSinceUnixEpoch(System.DateTime)"/> is an exact behavioral match.
</summary>
<param name="dateTime">This <see cref="T:System.DateTime"/>.</param>
<returns>The <see cref="T:System.TimeSpan"/> since January 1, 1970, 00:00:00 UTC represented by <paramref name="dateTime"/>.</returns>
<seealso cref="M:J2N.Time.GetMillisecondsSinceUnixEpoch(System.DateTime)"/>
<seealso cref="F:J2N.Time.UnixEpoch"/>
</member>
<member name="T:J2N.TypeExtensions">
<summary>
Extensions to the <see cref="T:System.Type"/> class.
</summary>
</member>
<member name="M:J2N.TypeExtensions.ImplementsGenericInterface(System.Type,System.Type)">
<summary>
Returns true if this type implements the specified generic interface.
<para/>
Examples:
<code>
bool result1 = this.GetType().ImplementsGenericInterface(typeof(IDictionary&lt;,&gt;);
bool result2 = typeof(System.Collections.Generic.List&lt;int&gt;).ImplementsGenericInterface(typeof(IList&lt;&gt;);
</code>
</summary>
<param name="target">This <see cref="T:System.Type"/>.</param>
<param name="interfaceType">The type of generic inteface to check.</param>
<returns><c>true</c> if the type implements the generic interface; otherwise, <c>false</c>.</returns>
<exception cref="T:System.ArgumentNullException">If <paramref name="target"/> is <c>null</c>.</exception>
</member>
<member name="M:J2N.TypeExtensions.FindAndGetManifestResourceStream(System.Type,System.String)">
<summary>
Aggressively searches for a resource and, if found, returns an open <see cref="T:System.IO.Stream"/>
where it can be read.
<para/>
The search attempts to find the resource starting at the location of the current
class and attempts every combination of starting namespace and or starting assembly name
(split on <c>.</c>) concatenated with the <paramref name="name"/>. For example, if the
type passed is in the namespace <c>Foo.Bar</c> in an assembly named <c>Faz.Baz</c>
and the name passed is <c>res.txt</c>, the following locations are searched in this order:
<code>
1. res.txt
2. Faz.Baz.Foo.Bar.res.txt
3. Foo.Bar.res.txt
4. Faz.Baz.res.txt
</code>
<para/>
Usage Note: This method effectively treats embedded resources as being in the same
"class path" as the type that is passed, making it similar to the Class.getResourceAsStream()
method in Java.
</summary>
<param name="type">A type in the same namespace as the resource.</param>
<param name="name">The resource name to locate.</param>
<returns>an open <see cref="T:System.IO.Stream"/> that can be used to read the resource, or <c>null</c> if the resource cannot be found.</returns>
<exception cref="T:System.ArgumentNullException">If <paramref name="type"/> or <paramref name="name"/> is <c>null</c>.</exception>
</member>
<member name="M:J2N.TypeExtensions.FindResource(System.Type,System.String)">
<summary>
Aggressively searches to find a resource based on a <see cref="T:System.Type"/> and resource name.
<para/>
The search attempts to find the resource starting at the location of the current
class and attempts every combination of starting namespace and or starting assembly name
(split on <c>.</c>) concatenated with the <paramref name="name"/>. For example, if the
type passed is in the namespace <c>Foo.Bar</c> in an assembly named <c>Faz.Baz</c>
and the name passed is <c>res.txt</c>, the following locations are searched in this order:
<code>
1. res.txt
2. Faz.Baz.Foo.Bar.res.txt
3. Foo.Bar.res.txt
4. Faz.Baz.res.txt
</code>
<para/>
Usage Note: This method effectively treats embedded resources as being in the same
"class path" as the type that is passed, making it similar to the Class.getResource()
method in Java.
</summary>
<param name="type">A type in the same namespace as the resource.</param>
<param name="name">The resource name to locate.</param>
<returns>The resource, if found; if not found, returns <c>null</c>.</returns>
<exception cref="T:System.ArgumentNullException">If <paramref name="type"/> or <paramref name="name"/> is <c>null</c>.</exception>
</member>
<member name="T:System.ISpanFormattable">
<summary>
Provides functionality to format the string representation of an object into
a span.
</summary>
</member>
<member name="M:System.ISpanFormattable.TryFormat(System.Span{System.Char},System.Int32@,System.ReadOnlySpan{System.Char},System.IFormatProvider)">
<summary>
Tries to format the value of the current instance into the provided span of characters.
</summary>
<param name="destination">When this method returns, this instance's value formatted as a span of characters.</param>
<param name="charsWritten">When this method returns, the number of characters that were written in destination.</param>
<param name="format">A span containing the characters that represent a standard or custom format string
that defines the acceptable format for destination.</param>
<param name="provider">An optional object that supplies culture-specific formatting information for
destination.</param>
<returns><c>true</c> if the formatting was successful; otherwise, <c>false</c>.</returns>
</member>
<member name="T:System.Diagnostics.CodeAnalysis.AllowNullAttribute">
<summary>Specifies that null is allowed as an input even if the corresponding type disallows it.</summary>
</member>
<member name="T:System.Diagnostics.CodeAnalysis.DisallowNullAttribute">
<summary>Specifies that null is disallowed as an input even if the corresponding type allows it.</summary>
</member>
<member name="T:System.Diagnostics.CodeAnalysis.MaybeNullAttribute">
<summary>Specifies that an output may be null even if the corresponding type disallows it.</summary>
</member>
<member name="T:System.Diagnostics.CodeAnalysis.NotNullAttribute">
<summary>Specifies that an output will not be null even if the corresponding type allows it.</summary>
</member>
<member name="T:System.Diagnostics.CodeAnalysis.MaybeNullWhenAttribute">
<summary>Specifies that when a method returns <see cref="P:System.Diagnostics.CodeAnalysis.MaybeNullWhenAttribute.ReturnValue"/>, the parameter may be null even if the corresponding type disallows it.</summary>
</member>
<member name="M:System.Diagnostics.CodeAnalysis.MaybeNullWhenAttribute.#ctor(System.Boolean)">
<summary>Initializes the attribute with the specified return value condition.</summary>
<param name="returnValue">
The return value condition. If the method returns this value, the associated parameter may be null.
</param>
</member>
<member name="P:System.Diagnostics.CodeAnalysis.MaybeNullWhenAttribute.ReturnValue">
<summary>Gets the return value condition.</summary>
</member>
<member name="T:System.Diagnostics.CodeAnalysis.NotNullWhenAttribute">
<summary>Specifies that when a method returns <see cref="P:System.Diagnostics.CodeAnalysis.NotNullWhenAttribute.ReturnValue"/>, the parameter will not be null even if the corresponding type allows it.</summary>
</member>
<member name="M:System.Diagnostics.CodeAnalysis.NotNullWhenAttribute.#ctor(System.Boolean)">
<summary>Initializes the attribute with the specified return value condition.</summary>
<param name="returnValue">
The return value condition. If the method returns this value, the associated parameter will not be null.
</param>
</member>
<member name="P:System.Diagnostics.CodeAnalysis.NotNullWhenAttribute.ReturnValue">
<summary>Gets the return value condition.</summary>
</member>
<member name="T:System.Diagnostics.CodeAnalysis.NotNullIfNotNullAttribute">
<summary>Specifies that the output will be non-null if the named parameter is non-null.</summary>
</member>
<member name="M:System.Diagnostics.CodeAnalysis.NotNullIfNotNullAttribute.#ctor(System.String)">
<summary>Initializes the attribute with the associated parameter name.</summary>
<param name="parameterName">
The associated parameter name. The output will be non-null if the argument to the parameter specified is non-null.
</param>
</member>
<member name="P:System.Diagnostics.CodeAnalysis.NotNullIfNotNullAttribute.ParameterName">
<summary>Gets the associated parameter name.</summary>
</member>
<member name="T:System.Diagnostics.CodeAnalysis.DoesNotReturnAttribute">
<summary>Applied to a method that will never return under any circumstance.</summary>
</member>
<member name="T:System.Diagnostics.CodeAnalysis.DoesNotReturnIfAttribute">
<summary>Specifies that the method will not return if the associated Boolean parameter is passed the specified value.</summary>
</member>
<member name="M:System.Diagnostics.CodeAnalysis.DoesNotReturnIfAttribute.#ctor(System.Boolean)">
<summary>Initializes the attribute with the specified parameter value.</summary>
<param name="parameterValue">
The condition parameter value. Code after the method will be considered unreachable by diagnostics if the argument to
the associated parameter matches this value.
</param>
</member>
<member name="P:System.Diagnostics.CodeAnalysis.DoesNotReturnIfAttribute.ParameterValue">
<summary>Gets the condition parameter value.</summary>
</member>
</members>
</doc>