SByte.Parse Method (String, IFormatProvider)
[ This article is for Windows Phone 8 developers. If you’re developing for Windows 10, see the latest documentation. ]
Converts the string representation of a number in a specified culture-specific format to its 8-bit signed integer equivalent.
Assembly: mscorlib (in mscorlib.dll)
'Declaration <CLSCompliantAttribute(False)> _ Public Shared Function Parse ( _ s As String, _ provider As IFormatProvider _ ) As SByte
Parameters
- s
- Type: System.String
A string that represents a number to convert. The string is interpreted using the NumberStyles.Integer style.
- provider
- Type: System.IFormatProvider
An object that supplies culture-specific formatting information about s. If provider is Nothing, the thread current culture is used.
Return Value
Type: System.SByteAn 8-bit signed integer that is equivalent to the number specified in s.
| Exception | Condition |
|---|---|
| ArgumentNullException | s is Nothing. |
| FormatException | s is not in the correct format. |
| OverflowException | s represents a number less than MinValue or greater than MaxValue. |
The s parameter contains a number of the form:
[ws][sign]digits[ws]
Elements in square brackets ([ and ]) are optional. The following table describes each element.
Element | Description |
|---|---|
ws | Optional white space. |
sign | An optional sign. |
digits | A sequence of digits ranging from 0 to 9. |
The s parameter is interpreted using the Integer style. In addition to the byte value's decimal digits, only leading and trailing spaces with a leading sign are allowed. To explicitly define the style elements with the culture-specific formatting information that can be present in s, use the Parse(String, NumberStyles, IFormatProvider) method.
The provider parameter is an IFormatProvider implementation whose GetFormat method returns a NumberFormatInfo object that provides culture-specific information about the format of s. There are three ways to use the provider parameter to supply custom formatting information to the parse operation:
You can pass the actual NumberFormatInfo object that provides formatting information. (Its implementation of GetFormat simply returns itself.)
You can pass a CultureInfo object that specifies the culture whose formatting is to be used. Its NumberFormat property provides formatting information.
You can pass a custom IFormatProvider implementation. Its GetFormat method must instantiate and return the NumberFormatInfo object that provides formatting information.
If provider is Nothing, the NumberFormatInfo object for the current culture is used.
The following example defines a custom NumberFormatInfo object that defines the tilde (~) as the negative sign. It then parses a number of numeric strings using this custom NumberFormatInfo object as well as a CultureInfo object that represents the invariant culture.
Imports System.Globalization Module Example Public Sub Demo(outputBlock As System.Windows.Controls.TextBlock) Dim nf As New NumberFormatInfo() nf.NegativeSign = "~" Dim values() As String = { "-103", "+12", "~16", " 1", "~255" } Dim providers() As IFormatProvider = { nf, CultureInfo.InvariantCulture } For Each provider As IFormatProvider In providers outputBlock.Text += String.Format("Conversions using {0}:", CObj(provider).GetType().Name) + Environment.NewLine For Each value As String In values Try outputBlock.Text += String.Format(" Converted '{0}' to {1}.", _ value, SByte.Parse(value, provider)) + Environment.NewLine Catch e As FormatException outputBlock.Text += String.Format(" Unable to parse '{0}'.", value) + Environment.NewLine Catch e As OverflowException outputBlock.Text += String.Format(" '{0}' is out of range of the SByte type.", value) + Environment.NewLine End Try Next Next End Sub End Module ' The example displays ' ' Conversions using NumberFormatInfo: ' Unable to parse '-103'. ' Converted '+12' to 12. ' Converted '~16' to -16. ' Converted ' 1' to 1. ' '~255' is out of range of the SByte type. ' Conversions using CultureInfo: ' Converted '-103' to -103. ' Converted '+12' to 12. ' Unable to parse '~16'. ' Converted ' 1' to 1. ' Unable to parse '~255'.