Int16.TryParse Method (String, Int16)


The .NET API Reference documentation has a new home. Visit the .NET API Browser on to see the new experience.

Converts the string representation of a number to its 16-bit signed integer equivalent. A return value indicates whether the conversion succeeded or failed.

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

public static bool TryParse(
	string s,
	out short result


Type: System.String

A string containing a number to convert.

Type: System.Int16

When this method returns, contains the 16-bit signed integer value equivalent to the number contained in s, if the conversion succeeded, or zero if the conversion failed. The conversion fails if the s parameter is null or String.Empty, is not of the correct format, or represents a number less than MinValue or greater than MaxValue. This parameter is passed uninitialized; any value originally supplied in result will be overwritten.

Return Value

Type: System.Boolean

true if s was converted successfully; otherwise, false.

The Int16.TryParse(String, Int16) method differs from the Int16.Parse(String) method by returning a Boolean value that indicates whether the parse operation succeeded instead of returning the parsed Int16 value. It eliminates the need to use exception handling to test for a FormatException in the event that s is invalid and cannot be successfully parsed.

The s parameter should be the string representation of a number in the form:


Items 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 NumberStyles.Integer style. In addition to the decimal digits, only leading and trailing spaces together with a leading sign are allowed. To explicitly define the style elements together with the culture-specific formatting information that can be present in s, use the Int16.TryParse(String, NumberStyles, IFormatProvider, Int16) method.

The s parameter is parsed using the formatting information in a NumberFormatInfo object that is initialized for the current system culture. For more information, see CurrentInfo.

This overload of the TryParse method interprets all digits in the s parameter as decimal digits. To parse the string representation of a hexadecimal number, call the Int16.TryParse(String, NumberStyles, IFormatProvider, Int16) overload.

The following example calls the Int16.TryParse(String, Int16)method with a number of different string values.

using System;

public class StringParsing
   public static void Main()
      TryToParse("   -322   ");

   private static void TryToParse(string value)
      short number;
      bool result = Int16.TryParse(value, out number);
      if (result)
         Console.WriteLine("Converted '{0}' to {1}.", value, number);         
         if (value == null) value = ""; 
         Console.WriteLine("Attempted conversion of '{0}' failed.", value);
// The example displays the following output to the console:
//       Attempted conversion of '' failed.
//       Converted '16051' to 16051.
//       Attempted conversion of '9432.0' failed.
//       Attempted conversion of '16,667' failed.
//       Converted '   -322   ' to -322.
//       Converted '+4302' to 4302.
//       Attempted conversion of '(100)' failed.
//       Attempted conversion of '01FA' failed.

Some of the strings that the TryParse(String, Int16) method is unable to convert in this example are:

  • "9432.0". The conversion fails because the string cannot contain a decimal separator; it must contain integral digits only.

  • "16,667". The conversion fails because the string cannot contain group separators; it must contain integral digits only.

  • "(100)". The conversion fails because the string cannot contain a negative sign other than the one defined by the current culture's NumberFormatInfo.NegativeSign and NumberFormatInfo.NumberNegativePattern properties.

  • "01FA". The conversion fails because the string cannot contain hexadecimal digits; it must contain decimal digits only.

Universal Windows Platform
Available since 8
.NET Framework
Available since 2.0
Portable Class Library
Supported in: portable .NET platforms
Available since 2.0
Windows Phone Silverlight
Available since 7.0
Windows Phone
Available since 8.1
Return to top