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 UInt32.Parse (String, NumberStyles, IFormatProvider)

 

Data di pubblicazione: novembre 2016

clsCompliantAlternativeM:System.Int64.Parse(System.String)

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

Questa API non è conforme a CLS.

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

[CLSCompliantAttribute(false)]
public static uint Parse(
	string s,
	NumberStyles style,
	IFormatProvider provider
)

Parametri

s
Type: System.String

Stringa che rappresenta il numero da convertire. La stringa viene interpretata usando lo stile specificato dal parametro style.

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 di formattazione specifiche delle impostazioni cultura relativamente a s.

Valore restituito

Type: System.UInt32

Intero senza 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

L'oggetto s rappresenta un numero minore di UInt32.MinValue o maggiore di UInt32.MaxValue.

-oppure-

s include cifre frazionarie diverse da zero.

Il style parametro definisce gli elementi di stile (ad esempio spazio vuoto o il simbolo di segno positivo o negativo) consentiti nel s parametro per l'operazione di analisi abbia esito positivo. Deve essere una combinazione di flag di bit dal NumberStyles enumerazione.

A seconda del valore di style, s parametro può includere gli elementi seguenti:

[ws][$][sign]digits[.frazionarie] [E [accesso]cifre_esponenziali] [ws]

Gli elementi tra parentesi quadre ([e]) sono facoltativi. Se style include NumberStyles.AllowHexSpecifier, s parametro può includere gli elementi seguenti:

[ws]hexdigits[ws]

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 che può essere visualizzato alla fine di s Se style include il NumberStyles.AllowTrailingWhite flag.

$

Un simbolo di valuta delle impostazioni cultura specifiche. La posizione nella stringa è definita dalla 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.

accesso

Un segno facoltativo. (Il metodo genera un OverflowException Se s include un segno negativo e rappresenta un numero diverso da zero.) Il segno può ricorrere all'inizio di s Se style include il NumberStyles.AllowLeadingSign flag ed è possibile visualizzarlo fine 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

Una sequenza di cifre da 0 a 9.

.

Simbolo di separatore decimale delle impostazioni cultura specifiche. Simbolo di separatore decimale della lingua corrente può essere visualizzati s Se style include il NumberStyles.AllowDecimalPoint flag.

frazionarie

Uno o più occorrenze della cifra 0-9 se style include il NumberStyles.AllowExponent flag o una o più occorrenze della cifra 0 in caso contrario. Cifre frazionarie possono essere visualizzati in s solo se style include il NumberStyles.AllowDecimalPoint flag.

E

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

cifre_esponenziali

Una sequenza di cifre da 0 a 9. Il s parametro può rappresentare un numero in notazione esponenziale se style include il NumberStyles.AllowExponent flag.

cifre esadecimali

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

Una stringa con solo cifre decimali (che corrisponde al NumberStyles.None stile) viene sempre analizzata correttamente. La maggior parte dei rimanenti NumberStyles membri controllano gli elementi che possono essere presenti, ma non è necessario trovarsi in questa stringa di input. Nella tabella seguente viene indicato come singoli NumberStyles membri interessano gli elementi che possono essere presenti in s.

Non compositi NumberStyles valori

Elementi consentiti in s oltre alle cifre

NumberStyles.None

Cifre decimali.

NumberStyles.AllowDecimalPoint

Decimale (.) e frazionarie elementi. Tuttavia, se lo stile non include il NumberStyles.AllowExponent flag frazionarie deve essere costituito solo da uno o più cifre 0; in caso contrario, un OverflowException viene generata un'eccezione.

NumberStyles.AllowExponent

La "e" o il carattere "E", che indica la notazione esponenziale, insieme a cifre_esponenziali.

NumberStyles.AllowLeadingWhite

Il ws elemento all'inizio del s.

NumberStyles.AllowTrailingWhite

Il ws elemento alla fine di s.

NumberStyles.AllowLeadingSign

Un segno prima di cifre.

NumberStyles.AllowTrailingSign

Un segno dopo cifre.

NumberStyles.AllowParentheses

Parentesi prima e dopo cifre per indicare un valore negativo.

NumberStyles.AllowThousands

Il separatore di gruppo (,) elemento.

NumberStyles.AllowCurrencySymbol

La valuta ($) elemento.

Se il NumberStyles.AllowHexSpecifier flag viene utilizzato, s deve essere un valore esadecimale. Sono gli unici altri flag che possono essere combinati con NumberStyles.AllowLeadingWhite e NumberStyles.AllowTrailingWhite. (Il NumberStyles enumerazione comprende uno stile di numero composto, NumberStyles.HexNumber, che include entrambi i flag di spazi vuoti.)

System_CAPS_noteNota

Se il s parametro è la rappresentazione di stringa di un numero esadecimale, non può essere preceduto da alcun effetto (ad esempio 0x o &h) che lo distingue come numero esadecimale. In questo modo l'operazione di analisi generare un'eccezione.

Il provider parametro è un IFormatProvider implementazione cui GetFormat metodo restituisce un NumberFormatInfo oggetto che fornisce informazioni specifiche delle impostazioni cultura relative al formato di s. Esistono tre modi per utilizzare il provider per fornire informazioni di formattazione personalizzate per l'operazione di analisi:

  • È possibile passare l'oggetto effettivo NumberFormatInfo oggetto che fornisce informazioni di formattazione. (L'implementazione di GetFormat semplicemente restituisce se stesso.)

  • È possibile passare un CultureInfo oggetto che specifica le impostazioni cultura di cui la formattazione da utilizzare. La NumberFormat proprietà fornisce informazioni di formattazione.

  • È possibile passare un oggetto personalizzato IFormatProvider implementazione. Il GetFormat metodo deve creare un'istanza e restituire il NumberFormatInfo oggetto che fornisce informazioni di formattazione.

Se provider è null, NumberFormatInfo per le impostazioni cultura correnti dell'oggetto.

Nell'esempio seguente viene utilizzata la Parse(String, NumberStyles, IFormatProvider) metodo per convertire varie rappresentazioni di stringa di numeri in valori interi senza segno a 32 bit.

using System;
using System.Globalization;

public class Example
{
   public static void Main()
   {
      string[] cultureNames= { "en-US", "fr-FR" };
      NumberStyles[] styles= { NumberStyles.Integer,
                               NumberStyles.Integer | NumberStyles.AllowDecimalPoint };
      string[] values = { "170209", "+170209.0", "+170209,0", "-103214.00",
                                 "-103214,00", "104561.1", "104561,1" };

      // Parse strings using each culture
      foreach (string cultureName in cultureNames)
      {
         CultureInfo ci = new CultureInfo(cultureName);
         Console.WriteLine("Parsing strings using the {0} culture", 
                           ci.DisplayName);
         // Use each style.
         foreach (NumberStyles style in styles)
         {
            Console.WriteLine("   Style: {0}", style.ToString());
            // Parse each numeric string.
            foreach (string value in values)
            {
               try {
                  Console.WriteLine("      Converted '{0}' to {1}.", value,
                                    UInt32.Parse(value, style, ci));
               }
               catch (FormatException) {
                  Console.WriteLine("      Unable to parse '{0}'.", value);
               }      
               catch (OverflowException) {
                  Console.WriteLine("      '{0}' is out of range of the UInt32 type.",
                                    value);
               }
            }
         }
      }                                    
   }
}
// The example displays the following output:
//       Parsing strings using the English (United States) culture
//          Style: Integer
//             Converted '170209' to 170209.
//             Unable to parse '+170209.0'.
//             Unable to parse '+170209,0'.
//             Unable to parse '-103214.00'.
//             Unable to parse '-103214,00'.
//             Unable to parse '104561.1'.
//             Unable to parse '104561,1'.
//          Style: Integer, AllowDecimalPoint
//             Converted '170209' to 170209.
//             Converted '+170209.0' to 170209.
//             Unable to parse '+170209,0'.
//             '-103214.00' is out of range of the UInt32 type.
//             Unable to parse '-103214,00'.
//             '104561.1' is out of range of the UInt32 type.
//             Unable to parse '104561,1'.
//       Parsing strings using the French (France) culture
//          Style: Integer
//             Converted '170209' to 170209.
//             Unable to parse '+170209.0'.
//             Unable to parse '+170209,0'.
//             Unable to parse '-103214.00'.
//             Unable to parse '-103214,00'.
//             Unable to parse '104561.1'.
//             Unable to parse '104561,1'.
//          Style: Integer, AllowDecimalPoint
//             Converted '170209' to 170209.
//             Unable to parse '+170209.0'.
//             Converted '+170209,0' to 170209.
//             Unable to parse '-103214.00'.
//             '-103214,00' is out of range of the UInt32 type.
//             Unable to parse '104561.1'.
//             '104561,1' is out of range of the UInt32 type.

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: