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 UInt64.TryParse (String, NumberStyles, IFormatProvider, UInt64)

 

Data di pubblicazione: ottobre 2016

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

Prova a convertire la rappresentazione di stringa di un numero in uno stile e in un formato specifico delle impostazioni cultura specificati nel relativo intero senza segno a 64 bit equivalente. Un valore restituito indica se la conversione è riuscita o meno.

Questa API non è conforme a CLS.

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

[CLSCompliantAttribute(false)]
public static bool TryParse(
	string s,
	NumberStyles style,
	IFormatProvider provider,
	out ulong result
)

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 di valori di enumerazione che indica il formato consentito di s. Un valore tipico da specificare è NumberStyles.Integer.

provider
Type: System.IFormatProvider

Oggetto che fornisce informazioni di formattazione specifiche delle impostazioni cultura relativamente a s.

result
Type: System.UInt64

Quando questo metodo viene restituito, contiene il valore intero senza segno a 64 bit equivalente al numero contenuto in s, se la conversione riesce oppure zero se la conversione non riesce. La conversione non riesce se il parametro s è null o String.Empty non presenta un formato conforme a style o rappresenta un numero minore di UInt64.MinValue o maggiore di UInt64.MaxValue. Questo parametro viene passato non inizializzato. Qualsiasi valore fornito in origine in result verrà sovrascritto.

Valore restituito

Type: System.Boolean

true se s è stato convertito correttamente; in caso contrario, false.

Exception Condition
ArgumentException

style non è un valore di NumberStyles.

-oppure-

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

Il TryParse(String, NumberStyles, IFormatProvider, UInt64) metodo è simile di Parse(String, NumberStyles, IFormatProvider) metodo, ad eccezione del fatto che non genera un'eccezione se la conversione non riesce. Questo metodo elimina la necessità di utilizzare la gestione delle eccezioni per verificare la presenza di un FormatException se s non è valido e non può essere analizzato correttamente.

Il style parametro definisce gli elementi di stile (ad esempio spazio vuoto o un segno positivo o negativo) 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][$][sign][digits,]digits[. frazionarie] [E [sign]cifre_esponenziali] [ws]

All'interno delle parentesi quadre ([e]) sono facoltativi. Oppure, se il style parametro 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 o 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 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 e può apparire 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. Tuttavia, se il segno negativo è presente, s possono rappresentare solo il valore zero per l'operazione di analisi abbia esito positivo.

cifre

Una sequenza di cifre da 0 a 9.

,

Separatore di gruppi di impostazioni cultura specifiche. Il separatore di gruppi 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.

frazionarie

Una o più occorrenze della cifra 0. Cifre frazionarie possono essere visualizzati s solo se style include il NumberStyles.AllowDecimalPoint flag.

E

Il "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 esadecimali da 0 a f, o da 0 a F.

Una stringa con solo cifre decimali (che corrisponde alla NumberStyles.None flag) viene sempre analizzata correttamente. La maggior parte degli altri NumberStyles membri controllano gli elementi che possono essere presenti, ma non deve essere presente, in questa stringa di input. Nella tabella seguente indica come singoli NumberStyles membri interessano gli elementi che possono essere presenti in s.

Non compositi NumberStyles valori

Elementi consentiti nel valore oltre alle cifre

None

Cifre decimali.

AllowDecimalPoint

Il separatore decimale (.) e frazionarie elementi. Tuttavia, frazionarie deve essere costituito solo da uno o più cifre 0 o il metodo restituisce false.

AllowExponent

Il "e" o il carattere "E", che indica la notazione esponenziale, insieme a cifre_esponenziali. Se s rappresenta un numero in notazione esponenziale, non può avere un componente frazionario diverso da zero.

AllowLeadingWhite

Il ws elemento all'inizio di s.

AllowTrailingWhite

Il ws elemento alla fine di s.

AllowLeadingSign

Il sign elemento prima cifre.

AllowTrailingSign

Il sign elemento dopo cifre.

AllowParentheses

Il sign elemento sotto forma di parentesi che racchiudono un valore numerico pari a zero.

AllowThousands

Il separatore di gruppi (,) elemento.

AllowCurrencySymbol

La valuta ($) elemento.

Currency

Tutti gli elementi. Tuttavia, s non può rappresentare un numero esadecimale o un numero in notazione esponenziale.

Float

Il ws elemento all'inizio o alla fine di s, sign all'inizio di se il separatore decimale (.) simbolo. Il s parametro inoltre possibile utilizzare la notazione esponenziale.

Number

Il ws, sign, separatore di gruppi (,), punto decimale e (.) elementi.

Any

Tutti gli elementi. Tuttavia, s può rappresentare un numero esadecimale.

Se il NumberStyles.AllowHexSpecifier flag viene utilizzato, s deve essere un valore esadecimale. I caratteri esadecimali validi sono 0-9, A-F e -f. Un prefisso, ad esempio "0x" non è supportato e causa l'esito negativo dell'operazione di analisi. Gli unici altri flag che possono essere presenti in style sono NumberStyles.AllowLeadingWhite e NumberStyles.AllowTrailingWhite. (Il NumberStyles enumerazione dispone di uno stile composto, HexNumber, che include entrambi i flag di spazi vuoti.)

System_CAPS_noteNota

Se s è la rappresentazione di stringa di un numero esadecimale, non può essere preceduto da qualsiasi effetto (ad esempio 0x o &h) che lo distingue come numero esadecimale. In questo modo la conversione.

Il provider parametro è un IFormatProvider implementazione. Il relativo GetFormat metodo restituisce un NumberFormatInfo oggetto che fornisce informazioni specifiche delle impostazioni cultura relative al formato di s. Il provider parametro può essere uno dei seguenti:

  • Oggetto CultureInfo oggetto che rappresenta le impostazioni cultura che fornisce informazioni di formattazione. Il relativo GetFormat metodo restituisce il NumberFormatInfo oggetto che fornisce informazioni sulla formattazione numeriche per le impostazioni cultura.

  • Oggetto NumberFormatInfo oggetto che fornisce informazioni sulla formattazione numeriche. (L'implementazione di GetFormat appena restituisce se stesso.)

  • Un oggetto personalizzato che implementa IFormatProvider. Il relativo GetFormat metodo crea e restituisce il NumberFormatInfo oggetto che fornisce informazioni di formattazione.

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

L'esempio seguente chiama il TryParse(String, NumberStyles, IFormatProvider, UInt64) metodo con un numero di stringhe diverse e NumberStyles valori.

using System;
using System.Globalization;

public class Example
{
   public static void Main()
   {
      string numericString;
      NumberStyles styles;

      numericString = "2106034";
      styles = NumberStyles.Integer;
      CallTryParse(numericString, styles);

      numericString = "-10603";
      styles = NumberStyles.None;
      CallTryParse(numericString, styles);

      numericString = "29103674.00";
      styles = NumberStyles.Integer | NumberStyles.AllowDecimalPoint;
      CallTryParse(numericString, styles);

      numericString = "10345.72";
      styles = NumberStyles.Integer | NumberStyles.AllowDecimalPoint;
      CallTryParse(numericString, styles);

      numericString = "41792210E-01";
      styles = NumberStyles.Integer | NumberStyles.AllowExponent;
      CallTryParse(numericString, styles); 

      numericString = "9112E-01";
      CallTryParse(numericString, styles);

      numericString = "312E01";
      CallTryParse(numericString, styles); 

      numericString = "FFC86DA1";
      CallTryParse(numericString, NumberStyles.HexNumber);

      numericString = "0x8F8C";
      CallTryParse(numericString, NumberStyles.HexNumber);
   }

   private static void CallTryParse(string stringToConvert, NumberStyles styles)
   {
      ulong number;
      bool result = UInt64.TryParse(stringToConvert, styles, 
                                   CultureInfo.InvariantCulture, out number);
      if (result)
         Console.WriteLine("Converted '{0}' to {1}.", stringToConvert, number);
      else
         Console.WriteLine("Attempted conversion of '{0}' failed.", 
                           Convert.ToString(stringToConvert));
   }
}
// The example displays the following output:
//       Converted '2106034' to 2106034.
//       Attempted conversion of '-10603' failed.
//       Converted '29103674.00' to 29103674.
//       Attempted conversion of '10345.72' failed.
//       Converted '41792210E-01' to 4179221.
//       Attempted conversion of '9112E-01' failed.
//       Converted '312E01' to 3120.
//       Converted 'FFC86DA1' to 4291325345.
//       Attempted conversion of '0x8F8C' failed.

Universal Windows Platform
Disponibile da 8
.NET Framework
Disponibile da 2.0
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: