Esporta (0) Stampa
Espandi tutto
Il presente articolo è stato tradotto automaticamente. Passare il puntatore sulle frasi nell'articolo per visualizzare il testo originale. Ulteriori informazioni.
Traduzione
Originale
Questo argomento non è stato ancora valutato - Valuta questo argomento

Metodo UInt64.Parse (String, NumberStyles)

Consente di convertire la rappresentazione in forma di stringa di un numero in uno stile specificato nel suo equivalente intero senza segno a 64 bit.

Questa API non è conforme a CLS. L'alternativa conforme a CLS è Parse.

Spazio dei nomi:  System
Assembly:  mscorlib (in mscorlib.dll)
[CLSCompliantAttribute(false)]
public static ulong Parse(
	string s,
	NumberStyles style
)

Parametri

s
Tipo: System.String
Stringa che rappresenta il numero da convertire. La stringa viene interpretata utilizzando lo stile specificato dal parametro style.
style
Tipo: System.Globalization.NumberStyles
Combinazione bit per bit dei valori di enumerazione che specifica il formato consentito di s. Un valore tipico da specificare è NumberStyles.Integer.

Valore restituito

Tipo: System.UInt64
Equivalente intero senza segno a 64 bit del numero specificato in s.
EccezioneCondizione
ArgumentNullException

Il parametro s è null.

ArgumentException

Il parametro style non è un valore dell'oggetto NumberStyles.

In alternativa

style non è una combinazione di valori AllowHexSpecifier e HexNumber.

FormatException

Il parametro s non è in un formato conforme a style.

OverflowException

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

In alternativa

s include cifre frazionarie diverse da zero.

Il parametro style definisce gli elementi di stile (ad esempio lo spazio vuoto, il simbolo positivo o negativo o il simbolo del separatore delle migliaia o dei decimali) consentiti nel parametro s affinché l'operazione di analisi venga eseguita correttamente. style deve essere una combinazione di flag di bit derivato dall'enumerazione NumberStyles. Il parametro style rende utile questo overload del metodo quando s contiene la rappresentazione di stringa di un valore esadecimale, quando il sistema numerico (decimale o esadecimale) rappresentato da s è conosciuto solo in fase di esecuzione, o quando si desidera impedire uno spazio vuoto o un simbolo di segno in s.

A seconda del valore di style, è possibile che il parametro s comprenda gli elementi seguenti:

[sv][][segno][cifre,]cifre[.cifre_frazionarie][E[segno]cifre_esponenziali][sv]

Gli elementi tra parentesi quadre ([ e ]) sono facoltativi. Se style include NumberStyles.AllowHexSpecifier, il parametro s potrebbe contenere i seguenti elementi:

[sv]cifreesadecimali[sv]

Nella tabella riportata di seguito viene descritto ogni elemento.

Elemento

Descrizione

sv

Spazio vuoto facoltativo. Lo spazio vuoto può ricorrere all'inizio di s se nel parametro style è incluso il flag NumberStyles.AllowLeadingWhite o alla fine di s se nel parametro style è incluso il flag NumberStyles.AllowTrailingWhite.

$

Simbolo di valuta specifico per le impostazioni cultura. La posizione nella stringa è definita dalle proprietà NumberFormatInfo.CurrencyNegativePattern e NumberFormatInfo.CurrencyPositivePattern delle impostazioni cultura correnti. Il simbolo di valuta delle impostazioni cultura correnti può essere presente in s se style include il flag NumberStyles.AllowCurrencySymbol.

sign

Segno facoltativo. Il segno può essere presente all'inizio di s se style include il flag NumberStyles.AllowLeadingSign o alla fine di s se style include il flag NumberStyles.AllowTrailingSign. Le parentesi possono essere utilizzate in s per indicare un valore negativo se style include il flag NumberStyles.AllowParentheses. Il simbolo di segno negativo può essere tuttavia utilizzato solo con lo zero. In caso contrario, il metodo genera un'eccezione OverflowException.

cifre

cifre frazionarie

cifre_esponenziali

Sequenza di cifre comprese tra 0 e 9. Per cifre_frazionarie solo la cifra 0 è valida.

,

Simbolo di separatore di un gruppo specifico delle impostazioni cultura. Il separatore di gruppo delle impostazioni cultura correnti può essere presente in s se style include il flag NumberStyles.AllowThousands.

.

Simbolo di separatore decimale specifico delle impostazioni cultura. Il simbolo di separatore decimale delle impostazioni cultura correnti può essere presente in s se style include il flag NumberStyles.AllowDecimalPoint. Affinché l'operazione di analisi venga eseguita correttamente, solo la cifra 0 può essere visualizzata come cifra frazionaria; se cifre_frazionarie include altre cifre diverse da 0, verrà generata un'eccezione FormatException.

E

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

cifreesadecimali

Sequenza di cifre esadecimali comprese tra 0 e f o tra 0 e F.

Una stringa che contiene solo cifre (corrispondente allo stile NumberStyles.None) viene sempre analizzata correttamente. La maggior parte dei membri di NumberStyles residui controlla elementi la cui presenza in questa stringa di input è possibile ma non obbligatoria. Nella tabella seguente viene indicato come singoli membri di NumberStyles incidano sugli elementi che possono essere presenti in s.

Valore NumberStyles

Elementi consentiti in s oltre alle cifre

None

Solo l'elemento cifre.

AllowDecimalPoint

Separatore decimale (,) e cifre frazionarie.

AllowExponent

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

AllowLeadingWhite

Elemento sv all'inizio di s.

AllowTrailingWhite

Elemento sv alla fine di s.

AllowLeadingSign

Elemento segno all'inizio di s.

AllowTrailingSign

Elemento segno alla fine di s.

AllowParentheses

Elemento segno sotto forma di parentesi che racchiudono il valore numerico.

AllowThousands

Elemento separatore di gruppo (;).

AllowCurrencySymbol

Elemento valuta (€).

Currency

Tutti gli elementi. Il parametro s non può tuttavia rappresentare un numero esadecimale o un numero in notazione esponenziale.

Float

Elemento ws all'inizio o alla fine del parametro s, sign all'inizio del parametro s e simbolo del separatore decimale (,) Anche il parametro s può utilizzare la notazione esponenziale.

Number

Elementi ws, sign, separatore di gruppo (;) e separatore decimale (,).

Any

Tutti gli elementi. s non può comunque rappresentare un numero esadecimale.

A differenza di altri valori NumberStyles che consentono ma non richiedono la presenza di particolari elementi di stile in s, il valore dello stile NumberStyles.AllowHexSpecifier vuole dire che i caratteri numerici singoli in s vengono interpretati sempre come caratteri esadecimali. I caratteri esadecimali validi sono 0-9, A-F e a-f. Gli unici altri flag che possono essere combinati con il parametro style sono NumberStyles.AllowLeadingWhite e NumberStyles.AllowTrailingWhite. L'enumerazione NumberStyles include uno stile di numero composto, NumberStyles.HexNumber, che comprende entrambi i flag di spazio vuoto.

NotaNota

Se s è la rappresentazione in forma di stringa di un numero esadecimale, non può essere preceduto da alcun effetto, quale 0x o &h, che lo differenzi come numero esadecimale. La conversione avrà altrimenti esito negativo.

Il parametro s viene analizzato utilizzando le informazioni di formattazione contenute in un oggetto NumberFormatInfo inizializzato per le impostazioni cultura correnti del sistema. Per specificare le impostazioni cultura le cui informazioni di formattazione vengono utilizzate per l'operazione di analisi, chiamare l'overload di Parse(String, NumberStyles, IFormatProvider).

Nell'esempio riportato di seguito si tenta di analizzare ogni elemento presente in una matrice di stringhe utilizzando una serie di valori NumberStyles.


using System;
using System.Globalization;

public class Example
{
   public static void Main()
   {
      string[] values= { " 214309 ", "1,064,181", "(0)", "10241+", " + 21499 ", 
                         " +21499 ", "122153.00", "1e03ff", "91300.0e-2" };
      NumberStyles whitespace =  NumberStyles.AllowLeadingWhite | NumberStyles.AllowTrailingWhite;
      NumberStyles[] styles= { NumberStyles.None, whitespace, 
                               NumberStyles.AllowLeadingSign | NumberStyles.AllowTrailingSign | whitespace, 
                               NumberStyles.AllowThousands | NumberStyles.AllowCurrencySymbol, 
                               NumberStyles.AllowExponent | NumberStyles.AllowDecimalPoint };

      // Attempt to convert each number using each style combination.
      foreach (string value in values)
      {
         Console.WriteLine("Attempting to convert '{0}':", value);
         foreach (NumberStyles style in styles)
         {
            try {
               ulong number = UInt64.Parse(value, style);
               Console.WriteLine("   {0}: {1}", style, number);
            }   
            catch (FormatException) {
               Console.WriteLine("   {0}: Bad Format", style);
            }   
            catch (OverflowException)
            {
               Console.WriteLine("   {0}: Overflow", value);         
            }         
         }
         Console.WriteLine();
      }
   }
}
// The example displays the following output:
//    Attempting to convert ' 214309 ':
//       None: Bad Format
//       AllowLeadingWhite, AllowTrailingWhite: 214309
//       Integer, AllowTrailingSign: 214309
//       AllowThousands, AllowCurrencySymbol: Bad Format
//       AllowDecimalPoint, AllowExponent: Bad Format
//    
//    Attempting to convert '1,064,181':
//       None: Bad Format
//       AllowLeadingWhite, AllowTrailingWhite: Bad Format
//       Integer, AllowTrailingSign: Bad Format
//       AllowThousands, AllowCurrencySymbol: 1064181
//       AllowDecimalPoint, AllowExponent: Bad Format
//    
//    Attempting to convert '(0)':
//       None: Bad Format
//       AllowLeadingWhite, AllowTrailingWhite: Bad Format
//       Integer, AllowTrailingSign: Bad Format
//       AllowThousands, AllowCurrencySymbol: Bad Format
//       AllowDecimalPoint, AllowExponent: Bad Format
//    
//    Attempting to convert '10241+':
//       None: Bad Format
//       AllowLeadingWhite, AllowTrailingWhite: Bad Format
//       Integer, AllowTrailingSign: 10241
//       AllowThousands, AllowCurrencySymbol: Bad Format
//       AllowDecimalPoint, AllowExponent: Bad Format
//    
//    Attempting to convert ' + 21499 ':
//       None: Bad Format
//       AllowLeadingWhite, AllowTrailingWhite: Bad Format
//       Integer, AllowTrailingSign: Bad Format
//       AllowThousands, AllowCurrencySymbol: Bad Format
//       AllowDecimalPoint, AllowExponent: Bad Format
//    
//    Attempting to convert ' +21499 ':
//       None: Bad Format
//       AllowLeadingWhite, AllowTrailingWhite: Bad Format
//       Integer, AllowTrailingSign: 21499
//       AllowThousands, AllowCurrencySymbol: Bad Format
//       AllowDecimalPoint, AllowExponent: Bad Format
//    
//    Attempting to convert '122153.00':
//       None: Bad Format
//       AllowLeadingWhite, AllowTrailingWhite: Bad Format
//       Integer, AllowTrailingSign: Bad Format
//       AllowThousands, AllowCurrencySymbol: Bad Format
//       AllowDecimalPoint, AllowExponent: 122153
//    
//    Attempting to convert '1e03ff':
//       None: Bad Format
//       AllowLeadingWhite, AllowTrailingWhite: Bad Format
//       Integer, AllowTrailingSign: Bad Format
//       AllowThousands, AllowCurrencySymbol: Bad Format
//       AllowDecimalPoint, AllowExponent: Bad Format
//    
//    Attempting to convert '91300.0e-2':
//       None: Bad Format
//       AllowLeadingWhite, AllowTrailingWhite: Bad Format
//       Integer, AllowTrailingSign: Bad Format
//       AllowThousands, AllowCurrencySymbol: Bad Format
//       AllowDecimalPoint, AllowExponent: 913


.NET Framework

Supportato in: 4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Supportato in: 4, 3.5 SP1

Libreria di classi portabile

Supportato in: Libreria di classi portabile

.NET per applicazioni Windows Store

Supportato in: Windows 8

Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (ruoli di base del server non supportati), Windows Server 2008 R2 (ruoli di base del server supportati con SP1 o versione successiva, Itanium non supportato)

.NET Framework non supporta tutte le versioni di ciascuna piattaforma. Per un elenco delle versioni supportate, vedere Requisiti di sistema di .NET Framework.
Il documento è risultato utile?
(1500 caratteri rimanenti)
Grazie per i commenti inviati.

Aggiunte alla community

AGGIUNGI
Microsoft sta conducendo un sondaggio in linea per comprendere l'opinione degli utenti in merito al sito Web di MSDN. Se si sceglie di partecipare, quando si lascia il sito Web di MSDN verrà visualizzato il sondaggio in linea.

Si desidera partecipare?
Mostra:
© 2014 Microsoft. Tutti i diritti riservati.