Questo articolo è stato tradotto automaticamente. Per visualizzare l'articolo in inglese, selezionare la casella di controllo Inglese. È possibile anche visualizzare il testo inglese in una finestra popup posizionando il puntatore del mouse sopra il testo.
Traduzione
Inglese

Metodo Int32.Parse (String, NumberStyles, IFormatProvider)

 

Data di pubblicazione: novembre 2016

Converte la rappresentazione di stringa di un numero in uno stile specificato e in un formato specifico delle impostazioni cultura nell'equivalente intero con segno a 32 bit.

Spazio dei nomi:   System
Assembly:  mscorlib (in mscorlib.dll)

public static int Parse(
	string s,
	NumberStyles style,
	IFormatProvider provider
)

Parametri

s
Type: System.String

Stringa che contiene un numero da convertire.

style
Type: System.Globalization.NumberStyles

Combinazione bit per bit dei valori di enumerazione che indica gli elementi di stile che possono essere presenti in s. Un valore tipico da specificare è Integer.

provider
Type: System.IFormatProvider

Oggetto che fornisce informazioni specifiche delle impostazioni cultura relative al formato di s.

Valore restituito

Type: System.Int32

Intero con segno a 32 bit equivalente al numero specificato in s.

Exception Condition
ArgumentNullException

s è null.

ArgumentException

style non è un valore di NumberStyles.

-oppure-

style non è una combinazione di valori di AllowHexSpecifier e HexNumber.

FormatException

Il formato di s non è conforme a style.

OverflowException

s rappresenta un numero minore di MinValue o maggiore di MaxValue.

-oppure-

s include cifre frazionarie diverse da zero.

Il style parametro definisce gli elementi di stile (ad esempio spazio vuoto o il segno positivo) che sono consentiti nel s parametro per l'operazione di analisi abbia esito positivo. Deve essere una combinazione di flag di bit del NumberStyles enumerazione. A seconda del valore di style, s parametro può includere gli elementi seguenti:

[ws] [$] [accesso] [cifre,] cifre [.fractional_digist] [[accesso] e cifre_esponenziali] [ws]

In alternativa, se style include AllowHexSpecifier:

[cifre esadecimali ws] [ws]

All'interno delle parentesi quadre ([e]) sono facoltativi. Nella tabella seguente viene descritto ogni elemento.

Elemento

Descrizione

ws

Spazio vuoto facoltativo. Gli spazi vuoti possono essere visualizzati all'inizio di s se style include il NumberStyles.AllowLeadingWhite flag e può apparire alla fine di s se style include il NumberStyles.AllowTrailingWhite flag.

$

Un simbolo di valuta delle impostazioni cultura specifiche. La posizione nella stringa è definita dal NumberFormatInfo.CurrencyPositivePattern proprietà del NumberFormatInfo oggetto restituito dal GetFormat metodo il provider parametro. Il simbolo di valuta può essere visualizzati s se style include il NumberStyles.AllowCurrencySymbol flag.

segno

Un segno facoltativo. Il segno può essere visualizzati all'inizio di s se style include il NumberStyles.AllowLeadingSign flag o alla fine di s se style include il NumberStyles.AllowTrailingSign flag. Le parentesi possono essere utilizzate s per indicare un valore negativo se style include il NumberStyles.AllowParentheses flag.

cifre

frazionarie

cifre_esponenziali

Una sequenza di cifre da 0 a 9. Per frazionarie, solo la cifra 0 è valida.

,

Specifiche delle impostazioni cultura migliaia simbolo di separatore. Migliaia separatore di impostazioni cultura specificate da provider possono essere visualizzati in s se style include il NumberStyles.AllowThousands flag.

.

Simbolo di separatore decimale delle impostazioni cultura specifiche. Il simbolo di separatore decimale delle impostazioni cultura specificate da provider possono essere visualizzati in s se style include il NumberStyles.AllowDecimalPoint flag.

Solo la cifra 0 può essere visualizzato come una cifra frazionaria per l'operazione di analisi abbia esito positivo; Se frazionarie include qualsiasi cifra, un OverflowException viene generata un'eccezione.

h

Il carattere 'e' o 'E', che indica che il valore è rappresentato nella notazione esponenziale. Il s parametro può rappresentare un numero in notazione esponenziale se style include il NumberStyles.AllowExponent flag.

cifre esadecimali

Una sequenza di cifre esadecimali da 0 a f, o da 0 a F.

Una stringa con solo cifre decimali (che corrisponde alla NumberStyles.None stile) viene sempre analizzata correttamente se è compreso nell'intervallo di Int32 tipo. La maggior parte degli altri NumberStyles membri controllano gli elementi che possono essere ma non devono essere presenti in questa stringa di input. Nella tabella seguente indica come singoli NumberStyles membri interessano gli elementi che possono essere presenti in s.

Valori NumberStyles non compositi

Elementi consentiti in s oltre alle cifre

NumberStyles.None

Cifre decimali.

NumberStyles.AllowDecimalPoint

Il separatore decimale ( . ) e cifre frazionarie elementi. Tuttavia, cifre frazionarie deve essere costituito solo da uno o più cifre 0 o un OverflowException viene generata un'eccezione.

NumberStyles.AllowExponent

Il s parametro inoltre possibile utilizzare la notazione esponenziale. Se s rappresenta un numero in notazione esponenziale, deve rappresentare un numero intero compreso tra il Int32 tipo di dati senza un componente frazionario diverso da zero.

NumberStyles.AllowLeadingWhite

Il ws elemento all'inizio di s.

NumberStyles.AllowTrailingWhite

Il ws elemento alla fine di s.

NumberStyles.AllowLeadingSign

Può precedere un segno positivo cifre.

NumberStyles.AllowTrailingSign

Può essere presente un segno positivo dopo cifre.

NumberStyles.AllowParentheses

Il sign elemento sotto forma di parentesi che racchiudono il valore numerico.

NumberStyles.AllowThousands

Migliaia separatore ( , ) elemento.

NumberStyles.AllowCurrencySymbol

Il $ elemento.

Se il NumberStyles.AllowHexSpecifier flag viene utilizzato, s deve essere un valore esadecimale senza prefisso. Ad esempio, "C9AF3" viene analizzata correttamente, ma non "0xC9AF3". Gli unici altri flag che possono essere presenti in style sono NumberStyles.AllowLeadingWhite e NumberStyles.AllowTrailingWhite. (Il NumberStyles enumerazione dispone di un numero composto di stile, NumberStyles.HexNumber, che include entrambi i flag di spazi vuoti.)

Il provider parametro è un IFormatProvider implementazione, ad esempio un NumberFormatInfo o CultureInfo oggetto. Il provider parametro fornisce le informazioni specifiche delle impostazioni cultura utilizzate nell'analisi. Se provider è null, NumberFormatInfo per le impostazioni cultura correnti dell'oggetto.

L'esempio seguente usa un'ampia gamma di style e provider parametri per analizzare le rappresentazioni di stringa di Int32 valori. Vengono inoltre illustrati alcuni modi diversi che la stessa stringa può essere interpretata in base alla lingua le cui informazioni di formattazione viene utilizzati per l'operazione di analisi.

using System;
using System.Globalization;

public class ParseInt32
{
   public static void Main()
   {
      Convert("12,000", NumberStyles.Float | NumberStyles.AllowThousands, 
              new CultureInfo("en-GB"));
      Convert("12,000", NumberStyles.Float | NumberStyles.AllowThousands,
              new CultureInfo("fr-FR"));
      Convert("12,000", NumberStyles.Float, new CultureInfo("en-US"));

      Convert("12 425,00", NumberStyles.Float | NumberStyles.AllowThousands,
              new CultureInfo("sv-SE"));
      Convert("12,425.00", NumberStyles.Float | NumberStyles.AllowThousands,
              NumberFormatInfo.InvariantInfo);
      Convert("631,900", NumberStyles.Integer | NumberStyles.AllowDecimalPoint, 
              new CultureInfo("fr-FR"));
      Convert("631,900", NumberStyles.Integer | NumberStyles.AllowDecimalPoint,
              new CultureInfo("en-US"));
      Convert("631,900", NumberStyles.Integer | NumberStyles.AllowThousands,
              new CultureInfo("en-US"));
   }

   private static void Convert(string value, NumberStyles style, 
                               IFormatProvider provider)
   {
      try
      {
         int number = Int32.Parse(value, style, provider);
         Console.WriteLine("Converted '{0}' to {1}.", value, number);
      }
      catch (FormatException)
      {
         Console.WriteLine("Unable to convert '{0}'.", value);
      }   
      catch (OverflowException)
      {
         Console.WriteLine("'{0}' is out of range of the Int32 type.", value);   
      }
   }                               
}
// This example displays the following output to the console:
//       Converted '12,000' to 12000.
//       Converted '12,000' to 12.
//       Unable to convert '12,000'.
//       Converted '12 425,00' to 12425.
//       Converted '12,425.00' to 12425.
//       '631,900' is out of range of the Int32 type.
//       Unable to convert '631,900'.
//       Converted '631,900' to 631900.

Universal Windows Platform
Disponibile da 8
.NET Framework
Disponibile da 1.1
Libreria di classi portabile
Supportato in: piattaforme .NET portabili
Silverlight
Disponibile da 2.0
Windows Phone Silverlight
Disponibile da 7.0
Windows Phone
Disponibile da 8.1
Torna all'inizio
Mostra: