Convert.ToInt16 Method (String)
[ This article is for Windows Phone 8 developers. If you’re developing for Windows 10, see the latest documentation. ]
Converts the specified String representation of a number to an equivalent 16-bit signed integer.
Assembly: mscorlib (in mscorlib.dll)
Parameters
- value
- Type: System.String
A String containing a number to convert.
Return Value
Type: System.Int16A 16-bit signed integer equivalent to the value of value.
-or-
Zero if value is Nothing.
| 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. |
If you prefer not to handle an exception if the conversion fails, you can call the Int16.TryParse method instead. It returns a Boolean value that indicates whether the conversion succeeded or failed.
The following code example converts String representations of 16-bit integers with the ToInt16 method, using default formatting.
' Example of the Convert.ToInt16( String ) and ' Convert.ToInt16( 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 ConvertToInt16(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 Int16 without a format provider. Try defaultValue = Convert.ToInt16(numericStr) Catch ex As Exception defaultValue = GetExceptionType(ex) End Try ' Convert numericStr to Int16 with a format provider. Try providerValue = Convert.ToInt16(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.NumberGroupSeparator = "," provider.NumberGroupSizes = New Integer() {3} provider.NumberNegativePattern = 0 outputBlock.Text &= String.Format("This example of" & vbCrLf & _ " Convert.ToInt16( String ) and " & vbCrLf & _ " Convert.ToInt16( String, IFormatProvider ) " & _ vbCrLf & "generates the following output. It " & _ "converts several strings to " & vbCrLf & "Short " & _ "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. ConvertToInt16(outputBlock, "12345", provider) ConvertToInt16(outputBlock, "+12345", provider) ConvertToInt16(outputBlock, "pos 12345", provider) ConvertToInt16(outputBlock, "-12345", provider) ConvertToInt16(outputBlock, "neg 12345", provider) ConvertToInt16(outputBlock, "12345.", provider) ConvertToInt16(outputBlock, "12,345", provider) ConvertToInt16(outputBlock, "(12345)", provider) ConvertToInt16(outputBlock, "32768", provider) ConvertToInt16(outputBlock, "-32769", provider) End Sub End Module ' This example of ' Convert.ToInt16( String ) and ' Convert.ToInt16( String, IFormatProvider ) ' generates the following output. It converts several strings to ' Short values, using default formatting or a NumberFormatInfo object. ' ' String to convert Default/exception Provider/exception ' ----------------- ----------------- ------------------ ' 12345 12345 12345 ' +12345 12345 FormatException ' pos 12345 FormatException 12345 ' -12345 -12345 FormatException ' neg 12345 FormatException -12345 ' 12345. FormatException FormatException ' 12,345 FormatException FormatException ' (12345) FormatException FormatException ' 32768 OverflowException OverflowException ' -32769 OverflowException FormatException