Was this page helpful?
Your feedback about this content is important. Let us know what you think.
Additional feedback?
1500 characters remaining
ToInt16 Method (String)

Convert::ToInt16 Method (String)

Converts the specified string representation of a number to an equivalent 16-bit signed integer.

Namespace:  System
Assemblies:   System.Runtime.Extensions (in System.Runtime.Extensions.dll)
  mscorlib (in mscorlib.dll)

public:
static short ToInt16(
	String^ value
)

Parameters

value
Type: System::String

A string that contains the number to convert.

Return Value

Type: System::Int16
A 16-bit signed integer that is equivalent to the number in value, or 0 (zero) if value is nullptr.

ExceptionCondition
FormatException

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

OverflowException

value represents a number that is less than Int16::MinValue or greater than Int16::MaxValue.

Using the ToInt16(String) method is equivalent to passing value to the Int16::Parse(String) method. value is interpreted by using the formatting conventions of the current thread culture.

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 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. 
using namespace System;
using namespace System::Globalization;
const __wchar_t * protoFmt = L"{0,-20}{1,-20}{2}";

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

void ConvertToInt16( 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 );
   }

   Console::WriteLine( gcnew String( protoFmt ), numericStr, defaultValue, providerValue );
}

int main()
{

   // Create a NumberFormatInfo object and set several of its 
   // properties that apply to numbers.
   NumberFormatInfo^ provider = gcnew 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 = ",";
   array<Int32>^sizes = {3};
   provider->NumberGroupSizes = sizes;
   provider->NumberNegativePattern = 0;
   Console::WriteLine( "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" );
   Console::WriteLine( gcnew String( protoFmt ), "String to convert", "Default/exception", "Provider/exception" );
   Console::WriteLine( gcnew String( protoFmt ), "-----------------", "-----------------", "------------------" );

   // Convert strings, with and without an IFormatProvider.
   ConvertToInt16( "12345", provider );
   ConvertToInt16( "+12345", provider );
   ConvertToInt16( "pos 12345", provider );
   ConvertToInt16( "-12345", provider );
   ConvertToInt16( "neg 12345", provider );
   ConvertToInt16( "12345.", provider );
   ConvertToInt16( "12,345", provider );
   ConvertToInt16( "(12345)", provider );
   ConvertToInt16( "32768", provider );
   ConvertToInt16( "-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
*/

.NET Framework

Supported in: 4.6, 4.5, 4, 3.5, 3.0, 2.0, 1.1

.NET Framework Client Profile

Supported in: 4, 3.5 SP1

XNA Framework

Supported in: 3.0, 2.0, 1.0

.NET for Windows Phone apps

Supported in: Windows Phone 8.1, Windows Phone Silverlight 8.1, Windows Phone Silverlight 8

Portable Class Library

Supported in: Portable Class Library
Show:
© 2015 Microsoft