Convert.ToInt16 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 16-bit signed integer.
Namespace: System
Assembly: mscorlib (in mscorlib.dll)
Syntax
'Declaration
Public Shared Function ToInt16 ( _
value As String _
) As Short
public static short ToInt16(
string value
)
Parameters
- value
Type: System.String
A String containing a number to convert.
Return Value
Type: System.Int16
A 16-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 Int16.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 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
// Example of the Convert.ToInt16( string ) and
// Convert.ToInt16( 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 ConvertToInt16(System.Windows.Controls.TextBlock outputBlock, string numericStr,
IFormatProvider provider)
{
object defaultValue;
object providerValue;
// Convert numericStr to Int16 without a format provider.
try
{
defaultValue = Convert.ToInt16(numericStr);
}
catch (Exception ex)
{
defaultValue = GetExceptionType(ex);
}
// Convert numericStr to Int16 with a format provider.
try
{
providerValue = Convert.ToInt16(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.NumberGroupSeparator = ",";
provider.NumberGroupSizes = new int[] { 3 };
provider.NumberNegativePattern = 0;
outputBlock.Text += String.Format("This example of\n" +
" Convert.ToInt16( string ) and \n" +
" Convert.ToInt16( string, IFormatProvider ) " +
"\ngenerates the following output. It converts " +
"several strings to \nshort 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.
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);
}
}
/*
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
*/
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.