Export (0) Print
Expand All
This topic has not yet been rated - Rate this topic

Convert.ToInt64 Method (String, IFormatProvider)

Converts the specified string representation of a number to an equivalent 64-bit signed integer, using the specified culture-specific formatting information.

Namespace:  System
Assembly:  mscorlib (in mscorlib.dll)
public static long ToInt64(
	string value,
	IFormatProvider provider
)

Parameters

value
Type: System.String

A string that contains the number to convert.

provider
Type: System.IFormatProvider

An object that supplies culture-specific formatting information.

Return Value

Type: System.Int64
A 64-bit signed integer that is equivalent to the number in value, or 0 (zero) if value is null.
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 Int64.MinValue or greater than Int64.MaxValue.

The return value is the result of invoking the Int64.Parse method on value.

provider is an IFormatProvider instance that obtains a NumberFormatInfo object. The NumberFormatInfo object provides culture-specific information about the format of value. If provider is null, the NumberFormatInfo for the current culture is used.

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

The following example defines a custom NumberFormatInfo object that recognizes the string "pos" as the positive sign and the string "neg" as the negative sign. It then attempts to convert each element of a numeric string array to an integer using both this provider and the NumberFormatInfo provider for the invariant culture.

using System;
using System.Globalization;

public class Example
{
   public static void Main()
   {
      // Create a NumberFormatInfo object and set the properties that 
      // affect conversions using Convert.ToInt64(String, IFormatProvider).
      NumberFormatInfo customProvider = new NumberFormatInfo();
      customProvider.NegativeSign = "neg ";
      customProvider.PositiveSign = "pos ";

      // Create an array of providers with the custom provider and the 
      // NumberFormatInfo object for the invariant culture.
      NumberFormatInfo[] providers = { customProvider,
                                       NumberFormatInfo.InvariantInfo };

      // Define an array of strings to parse. 
      string[] numericStrings = { "123456789", "+123456789", "pos 123456789", 
                                  "-123456789", "neg 123456789", "123456789.",
                                  "123,456,789", "(123456789)",
                                  "9223372036854775808", "-9223372036854775809" };

      for (int ctr = 0; ctr < 2; ctr++)
      {
         IFormatProvider provider = providers[ctr];
         Console.WriteLine(ctr == 0 ? "Custom Provider:" : "Invariant Culture:");
         foreach (string numericString in numericStrings)
         {
            Console.Write("   {0,-22} -->  ", numericString);
            try {
               Console.WriteLine("{0,22}", Convert.ToInt32(numericString, provider));
            }
            catch (FormatException) {
               Console.WriteLine("{0,22}", "Unrecognized Format");
            }   
            catch (OverflowException) {
               Console.WriteLine("{0,22}", "Overflow");
            }
         }
         Console.WriteLine();
      }
   }
}
// The example displays the following output: 
//       Custom Provider: 
//          123456789              -->               123456789 
//          +123456789             -->     Unrecognized Format 
//          pos 123456789          -->               123456789 
//          -123456789             -->     Unrecognized Format 
//          neg 123456789          -->              -123456789 
//          123456789.             -->     Unrecognized Format 
//          123,456,789            -->     Unrecognized Format 
//          (123456789)            -->     Unrecognized Format 
//          9223372036854775808    -->                Overflow 
//          -9223372036854775809   -->     Unrecognized Format 
//        
//       Invariant Culture: 
//          123456789              -->               123456789 
//          +123456789             -->               123456789 
//          pos 123456789          -->     Unrecognized Format 
//          -123456789             -->              -123456789 
//          neg 123456789          -->     Unrecognized Format 
//          123456789.             -->     Unrecognized Format 
//          123,456,789            -->     Unrecognized Format 
//          (123456789)            -->     Unrecognized Format 
//          9223372036854775808    -->                Overflow 
//          -9223372036854775809   -->                Overflow

.NET Framework

Supported in: 4.5.1, 4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Supported in: 4, 3.5 SP1

Portable Class Library

Supported in: Portable Class Library

.NET for Windows Store apps

Supported in: Windows 8

.NET for Windows Phone apps

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

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core Role not supported), Windows Server 2008 R2 (Server Core Role supported with SP1 or later; Itanium not supported)

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

Did you find this helpful?
(1500 characters remaining)
Thank you for your feedback
Show:
© 2014 Microsoft. All rights reserved.