Partager via


Convert.ToSByte Method (String)

Microsoft Silverlight will reach end of support after October 2021. Learn more.

Converts the specified String representation of a number to an equivalent 8-bit signed integer.

This API is not CLS-compliant. 

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

Syntax

'Declaration
<CLSCompliantAttribute(False)> _
Public Shared Function ToSByte ( _
    value As String _
) As SByte
[CLSCompliantAttribute(false)]
public static sbyte ToSByte(
    string value
)

Parameters

Return Value

Type: System.SByte
An 8-bit signed integer equivalent to the value of value.
-or-
Zero if value is nulla null reference (Nothing in Visual Basic).

Exceptions

Exception Condition
FormatException

value does not consist of an optional sign followed by a sequence of digits (zero through nine).

OverflowException

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

Remarks

If you prefer not to handle an exception if the conversion fails, you can call the SByte.TryParse method instead. It returns a Boolean value that indicates whether the conversion succeeded or failed.

Examples

The following code example converts String representations of SByte (signed byte) values with the ToSByte method, using default formatting.

' Example of the Convert.ToSByte( String ) and 
' Convert.ToSByte( String, IFormatProvider ) methods.
Imports System.Globalization

Module Example

   Dim format As String = "{0,-20}{1,-20}{2}"

   ' Get the exception type name; remove the namespace prefix.
   Function GetExceptionType(ByVal ex As Exception) As String

      Dim exceptionType As String = ex.GetType().ToString()
      Return exceptionType.Substring( _
          exceptionType.LastIndexOf("."c) + 1)
   End Function

   Sub ConvertToSByte(ByVal outputBlock As System.Windows.Controls.TextBlock, ByVal numericStr As String, _
       ByVal provider As IFormatProvider)

      Dim defaultValue As Object
      Dim providerValue As Object

      ' Convert numericStr to SByte without a format provider.
      Try
         defaultValue = Convert.ToSByte(numericStr)
      Catch ex As Exception
         defaultValue = GetExceptionType(ex)
      End Try

      ' Convert numericStr to SByte with a format provider.
      Try
         providerValue = Convert.ToSByte(numericStr, provider)
      Catch ex As Exception
         providerValue = GetExceptionType(ex)
      End Try

      outputBlock.Text &= String.Format(format, numericStr, _
          defaultValue, providerValue) & vbCrLf
   End Sub

   Public Sub Demo(ByVal outputBlock As System.Windows.Controls.TextBlock)

      ' Create a NumberFormatInfo object and set several of its
      ' properties that apply to numbers.
      Dim provider As NumberFormatInfo = New NumberFormatInfo()

      ' These properties affect the conversion.
      provider.NegativeSign = "neg "
      provider.PositiveSign = "pos "

      ' These properties do not affect the conversion.
      ' The input string cannot have decimal and group separators.
      provider.NumberDecimalSeparator = "."
      provider.NumberNegativePattern = 0

      outputBlock.Text &= String.Format("This example of" & vbCrLf & _
          "  Convert.ToSByte( String ) and " & vbCrLf & _
          "  Convert.ToSByte( String, IFormatProvider ) " & _
          vbCrLf & "generates the following output. It " & _
          "converts several strings to " & vbCrLf & "SByte " & _
          "values, using default formatting " & _
          "or a NumberFormatInfo object." & vbCrLf) & vbCrLf
      outputBlock.Text &= String.Format(format, "String to convert", _
          "Default/exception", "Provider/exception") & vbCrLf
      outputBlock.Text &= String.Format(format, "-----------------", _
          "-----------------", "------------------") & vbCrLf

      ' Convert strings, with and without an IFormatProvider.
      ConvertToSByte(outputBlock, "123", provider)
      ConvertToSByte(outputBlock, "+123", provider)
      ConvertToSByte(outputBlock, "pos 123", provider)
      ConvertToSByte(outputBlock, "-123", provider)
      ConvertToSByte(outputBlock, "neg 123", provider)
      ConvertToSByte(outputBlock, "123.", provider)
      ConvertToSByte(outputBlock, "(123)", provider)
      ConvertToSByte(outputBlock, "128", provider)
      ConvertToSByte(outputBlock, "-129", provider)
   End Sub
End Module

' This example of
'   Convert.ToSByte( String ) and
'   Convert.ToSByte( String, IFormatProvider )
' generates the following output. It converts several strings to
' SByte values, using default formatting or a NumberFormatInfo object.
' 
' String to convert   Default/exception   Provider/exception
' -----------------   -----------------   ------------------
' 123                 123                 123
' +123                123                 FormatException
' pos 123             FormatException     123
' -123                -123                FormatException
' neg 123             FormatException     -123
' 123.                FormatException     FormatException
' (123)               FormatException     FormatException
' 128                 OverflowException   OverflowException
' -129                OverflowException   FormatException
// Example of the Convert.ToSByte( string ) and 
// Convert.ToSByte( string, IFormatProvider ) methods.
using System;
using System.Globalization;

class Example
{
   static string format = "{0,-20}{1,-20}{2}";

   // Get the exception type name; remove the namespace prefix.
   static string GetExceptionType(Exception ex)
   {
      string exceptionType = ex.GetType().ToString();
      return exceptionType.Substring(
          exceptionType.LastIndexOf('.') + 1);
   }

   static void ConvertToSByte(System.Windows.Controls.TextBlock outputBlock, string numericStr,
       IFormatProvider provider)
   {
      object defaultValue;
      object providerValue;

      // Convert numericStr to SByte without a format provider.
      try
      {
         defaultValue = Convert.ToSByte(numericStr);
      }
      catch (Exception ex)
      {
         defaultValue = GetExceptionType(ex);
      }

      // Convert numericStr to SByte with a format provider.
      try
      {
         providerValue = Convert.ToSByte(numericStr, provider);
      }
      catch (Exception ex)
      {
         providerValue = GetExceptionType(ex);
      }

      outputBlock.Text += String.Format(format, numericStr,
          defaultValue, providerValue) + "\n";
   }

   public static void Demo(System.Windows.Controls.TextBlock outputBlock)
   {
      // Create a NumberFormatInfo object and set several of its
      // properties that apply to numbers.
      NumberFormatInfo provider = new NumberFormatInfo();

      // These properties affect the conversion.
      provider.NegativeSign = "neg ";
      provider.PositiveSign = "pos ";

      // These properties do not affect the conversion.
      // The input string cannot have decimal and group separators.
      provider.NumberDecimalSeparator = ".";
      provider.NumberNegativePattern = 0;

      outputBlock.Text += String.Format("This example of\n" +
          "  Convert.ToSByte( string ) and \n" +
          "  Convert.ToSByte( string, IFormatProvider ) " +
          "\ngenerates the following output. It converts " +
          "several strings to \nSByte values, using " +
          "default formatting or a NumberFormatInfo object.\n") + "\n";
      outputBlock.Text += String.Format(format, "String to convert",
          "Default/exception", "Provider/exception") + "\n";
      outputBlock.Text += String.Format(format, "-----------------",
          "-----------------", "------------------") + "\n";

      // Convert strings, with and without an IFormatProvider.
      ConvertToSByte(outputBlock, "123", provider);
      ConvertToSByte(outputBlock, "+123", provider);
      ConvertToSByte(outputBlock, "pos 123", provider);
      ConvertToSByte(outputBlock, "-123", provider);
      ConvertToSByte(outputBlock, "neg 123", provider);
      ConvertToSByte(outputBlock, "123.", provider);
      ConvertToSByte(outputBlock, "(123)", provider);
      ConvertToSByte(outputBlock, "128", provider);
      ConvertToSByte(outputBlock, "-129", provider);
   }
}

/*
This example of
  Convert.ToSByte( string ) and
  Convert.ToSByte( string, IFormatProvider )
generates the following output. It converts several strings to
SByte values, using default formatting or a NumberFormatInfo object.

String to convert   Default/exception   Provider/exception
-----------------   -----------------   ------------------
123                 123                 123
+123                123                 FormatException
pos 123             FormatException     123
-123                -123                FormatException
neg 123             FormatException     -123
123.                FormatException     FormatException
(123)               FormatException     FormatException
128                 OverflowException   OverflowException
-129                OverflowException   FormatException
*/

Version Information

Silverlight

Supported in: 5, 4, 3

Silverlight for Windows Phone

Supported in: Windows Phone OS 7.1, Windows Phone OS 7.0

XNA Framework

Supported in: Xbox 360, Windows Phone OS 7.0

Platforms

For a list of the operating systems and browsers that are supported by Silverlight, see Supported Operating Systems and Browsers.