Cenni preliminari sulla formattazione

In .NET Framework viene fornito un meccanismo di formattazione di utilizzo generale personalizzabile per la conversione di un valore in una stringa appropriata per la visualizzazione. Un valore numerico può ad esempio essere formattato con la notazione scientifica o esadecimale oppure utilizzando una serie di cifre suddivise in gruppi mediante un segno di punteggiatura specificato dall'utente. Le date e le ore possono essere formattate in modo appropriato per un determinato paese o per una specifica regione o lingua. Una costante enumerata può infine essere formattata come valore numerico o come nome.

La formattazione viene controllata specificando una stringa di formato e un provider di formato oppure utilizzando le impostazioni predefinite. Una stringa di formato contiene uno o più caratteri dell'identificatore di formato che indicano come deve essere convertito un valore. Un provider di formato fornisce le ulteriori informazioni sulla lingua, sulla sostituzione e sul controllo necessarie per convertire un tipo specifico.

È possibile eseguire l'override dell'interpretazione di una stringa di formato in .NET Framework implementando l'interfaccia IFormattable, fornire un provider di formato personalizzato implementando l'interfaccia IFormatProvider e personalizzare la formattazione implementando l'interfaccia ICustomFormatter.

In .NET Framework viene fornita una funzionalità, denominata formattazione composta, che consente di utilizzare una o più stringhe di formato per incorporare uno o più valori formattati in una stringa di risultati. La stringa di risultati può essere utilizzata per un'ulteriore elaborazione, visualizzata nella console di sistema oppure scritta in un flusso.

Identificatori di formato

In .NET Framework vengono forniti identificatori di formato standard e personalizzati per la formattazione di numeri, date, ore ed enumerazioni. Gli identificatori di formato vengono utilizzati da vari metodi con cui vengono formattate le stringhe di output, tra cui Console.WriteLine e il metodo ToString di qualsiasi tipo e da alcuni metodi con cui vengono analizzate le stringhe di input, ad esempio DateTime.ParseExact.

Per informazioni sulla formattazione di dati numerici, vedere Stringhe di formato numerico. Per una tabella degli identificatori di formato numerico utilizzati più frequentemente, vedere Stringhe di formato numerico standard. Per una tabella degli identificatori di formato personalizzati utilizzabili per creare una stringa di formato, vedere Stringhe di formato numerico personalizzato.

Per informazioni sulla formattazione di date e ore, vedere Stringhe di formato di data e ora. Per una tabella degli identificatori di formato di data e ora utilizzati più frequentemente, vedere Stringhe di formato DateTime standard. Per una tabella degli identificatori di formato di data e ora personalizzati utilizzabili per creare una stringa di formato personalizzato, vedere Stringhe di formato DateTime personalizzato.

Per informazioni sulla formattazione di enumerazioni e una tabella degli identificatori di formato di enumerazione standard, vedere Stringhe di formato di enumerazione.

Analisi e identificatori di formato

Con la formattazione, il valore di un tipo viene convertito in una rappresentazione di stringa. Con l'analisi, che costituisce l'operazione inversa rispetto alla formattazione, viene creato un tipo di dati da una rappresentazione di stringa. L'esecuzione dell'analisi è controllata da un provider di formato. Alcuni metodi, tra cui DateTime.ParseExact, accettano inoltre un parametro costituito da un identificatore di formato che indica il formato previsto della rappresentazione di stringa. Per ulteriori informazioni sull'analisi, vedere Analisi delle stringhe.

Identificatori di formato e ToString

.NET Framework supporta l'overload del metodo ToString predefinito per un tipo, con cui viene eseguita una formattazione rudimentale, con una versione specializzata di ToString che utilizza un parametro costituito da un identificatore di formato per indicare il modo in cui deve essere formattato il valore. Per ulteriori informazioni, vedere Formattazione dei tipi di base e l'interfaccia IFormattable.

Provider di formato

I provider di formato forniscono informazioni quali il carattere da utilizzare come separatore decimale nella formattazione di stringhe numeriche o il carattere di separazione da utilizzare nella formattazione di un oggetto DateTime. I provider di formato definiscono i caratteri utilizzati per la formattazione dagli identificatori di formato, ma non definiscono gli identificatori stessi.

Un provider di formato viene passato all'overload di ToString richiesto dall'interfaccia IFormattable oppure, nel caso in cui non venga passato alcun provider di formato, viene predeterminato dal metodo utilizzato per formattare il testo.

Quando non viene passato alcun provider di formato, le informazioni vengono inferite oppure ottenute da uno dei provider di formato standard inclusi in .NET Framework. In generale, le classi che implementano IFormattable forniscono anche overload di ToString che accettano solo un identificatore di formato o un provider di formato. Il metodo ToString predefinito, che non accetta alcun parametro, viene ereditato dalla classe Object.

Per informazioni sul provider di formato predefinito per i dati numerici, vedere NumberFormatInfo. Per informazioni sul provider di formato predefinito per date e ore, vedere DateTimeFormatInfo. Per informazioni sulla creazione di un provider di formato personalizzato o di un provider di formato per una diversa lingua, vedere CultureInfo e Formattazione per lingue differenti.

Formattazione composta

La funzionalità di formattazione composta di .NET Framework, supportata da metodi quali String.Format e i metodi di output di System.Console e System.IO.TextWriter, consente di sostituire ciascun elemento di formato indicizzato incorporato in una stringa di origine con l'elemento formattato equivalente all'interno di un elenco di valori. Per ulteriori informazioni, vedere Formattazione composta.

Vedere anche

Riferimenti

IFormattable Interface
IFormatProvider Interface
ICustomFormatter Interface

Concetti

Stringhe di formato numerico
Stringhe di formato di data e ora
Stringhe di formato di enumerazione
Personalizzazione di stringhe di formato
Formattazione composta

Altre risorse

Formattazione dei tipi di dati
Analisi delle stringhe
Operazioni di base sulle stringhe