Parse Method (String, IFormatProvider)
Collapse the table of content
Expand the table of content

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.

This API is not CLS-compliant. The CLS-compliant alternative is Parse(String).

Namespace:  System
Assembly:  mscorlib (in mscorlib.dll)

public static sbyte Parse(
	string s,
	IFormatProvider provider


Type: System.String
A string that represents a number to convert. The string is interpreted using the NumberStyles.Integer style.
Type: System.IFormatProvider
An object that supplies culture-specific formatting information about s. If provider is null, the thread current culture is used.

Return Value

Type: System.SByte
An 8-bit signed integer that is equivalent to the number specified in s.


s is null.


s is not in the correct format.


s represents a number less than MinValue or greater than MaxValue.

The s parameter contains a number of the form:


Elements in square brackets ([ and ]) are optional. The following table describes each element.




Optional white space.


An optional sign.


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 null, 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.

using System;
using System.Globalization;

public class Example
   public static void Demo(System.Windows.Controls.TextBlock outputBlock)
      NumberFormatInfo nf = new NumberFormatInfo();
      nf.NegativeSign = "~"; 

      string[] values = { "-103", "+12", "~16", "  1", "~255" };
      IFormatProvider[] providers = { nf, CultureInfo.InvariantCulture };

      foreach (IFormatProvider provider in providers)
         outputBlock.Text += String.Format("Conversions using {0}:", ((object) provider).GetType().Name) + Environment.NewLine;
         foreach (string value in values)
            try {
               outputBlock.Text += String.Format("   Converted '{0}' to {1}.", 
                                 value, SByte.Parse(value, provider)) + Environment.NewLine;
            catch (FormatException) {
               outputBlock.Text += String.Format("   Unable to parse '{0}'.", value) + Environment.NewLine;   
            catch (OverflowException) {
               outputBlock.Text += String.Format("   '{0}' is out of range of the SByte type.", value) + Environment.NewLine;         
// The example displays the following output:
//       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'.

Windows Phone OS

Supported in: 8.1, 8.0, 7.1, 7.0

Windows Phone

© 2017 Microsoft