Composite Formatting |
Sintassi/Regole/Tabelle per implementare le stringhe composte di formattazione |
{n[,[-]w][:f]} |
Sintassi generale elemento di formattazione |
n |
Obbligatorio: "n" è l'indice della variabile il cui valore è da formattare |
[,[-]w] |
Opzionale: "[,[-]w]" indica la larghezza minima
del testo formattato
- Se positivo e la lunghezza della stringa formattata è minore di w allora vengono aggiunti all'inizio tanti spazi quanti w (corrisponde ad effettuare un PadLeft() su un tipo string)
- Se negativo e la lunghezza della stringa formattata è minore di w allora vengono aggiunti in fondo tanti spazi quanti w (corrisponde ad effettuare un PadRight() su un tipo string)
|
[:f] |
Opzionale: "[:f]" indica la stringa di formattazione |
Code Snippet
- [Test]
- public void UseOfMinimumWidthInStringFormatItem()
- {
- var d = 10.5M;
-
- Assert.AreEqual("10.5", string.Format(CultureInfo.InvariantCulture, "{0}", d));
- Assert.AreEqual(" 10.5", string.Format(CultureInfo.InvariantCulture, "{0,10}", d));
- Assert.AreEqual("10.5".PadLeft(10), string.Format(CultureInfo.InvariantCulture, "{0,10}", d));
- Assert.AreEqual("10.5 ", string.Format(CultureInfo.InvariantCulture, "{0,-10}", d));
- Assert.AreEqual("10.5".PadRight(10), string.Format(CultureInfo.InvariantCulture, "{0,-10}", d));
- }
|
|
Stringhe di formattazione Standard
|
Risolvono problemi generici di formattazione, consistono di una lettera opzionalmente seguita da un numero indicate il numero dei digit da applicare in formattazione
|
Standard Numeric Format Strings |
Tabella stringhe standard di formattazione per i tipi numerici |
Standard Date and Time Format Strings |
Tabella stringhe standard di formattazione per i tipi data e ora |
Code Snippet
- [Test]
- public void UseOfStandardFormatStringHonoringLocalCultureIt()
- {
- var d = 1250.75M;
- var dt = new DateTime(2010, 1, 1, 15, 30, 30);
-
- Assert.AreEqual(" € 1.250,75", string.Format("{0,20:C}", d));
- Assert.AreEqual("01/01/2010 15:30 ", string.Format("{0,-20:g}", dt));
- }
|
Stringhe di formattazione Custom
|
Per formattare in modo preciso e puntuale ogni carattare secondo un template
|
Custom Numeric Format Strings |
Tabella stringhe custom di formattazione per i tipi numerici |
Custom Date and Time Format Strings |
Tabella stringhe custom di formattazione per i tipi data e ora |
Code Snippet
- [Test]
- public void UseOfCustomFormatString()
- {
- var d = 1250.75M;
- var dt = new DateTime(2010, 1, 1, 15, 30, 30);
-
- Assert.AreEqual(" eur 001.250,75", string.Format("{0,20:eur 000,000.00}", d));
- Assert.AreEqual("1-1-10 15:30.30 ", string.Format("{0,-20:d-M-yy HH:mm.ss}", dt));
- }
|
Enumerazioni di stili |
Utilizzati per il parsing delle stringhe per i tipi numerici o data e ora |
NumberStyles Enumeration |
Enumerazione di stili per il parsing di tipi numerici |
DateTimeStyles Enumeration |
Enumerazione di stili per il parsing di tipi data e ora |
Code Snippet
-
- [Test]
- public void ParsingStringHonoringLocalCultureItAndUsingSpecificStyles()
- {
- var d = 1250.75M;
- var dt = new DateTime(2010, 1, 1, 15, 30, 00);
-
- Assert.AreEqual(d, decimal.Parse(" € 1.250,75", NumberStyles.Currency));
- Assert.AreEqual(dt, DateTime.Parse("01/01/2010 15:30 ", CultureInfo.CurrentCulture,
- DateTimeStyles.AllowWhiteSpaces));
- }
|
System.Globalization.CultureInfo.CurrentCulture |
Cultura corrente: Nella maggioranza dei casi formatting & parsing si onora la cultura corrente |
System.IFormatProvider |
Fornisce informazioni per la formattazione, la maggioranza dei metodi di formatting & parsing implementano overload che dove è possibile passarlo come parametro |
System.Threading.Thread.CurrentCulture |
Per ottenere e/o cambiare la cultura del thread Corrente |
System.Globalization.CultureInfo.DefaultThreadCurrentCulture |
Per ottenere e/o cambiare la cultura di default per tutti i threads (solo .NET 4.5) |
System.Globalization.CultureInfo.InvariantCulture |
Cultura invariante rispetto all'ambiente di esecuzione (NOTA: basata sulla cultura americana) |
Code Snippet
- [Test]
- public void UseOfStandardFormatStringPassingUsingSpecifingCulture()
- {
- var d = 1250.75M;
- var dt = new DateTime(2010, 1, 1, 15, 30, 30);
-
- CultureInfo it = new CultureInfo("it-IT");
- CultureInfo us = new CultureInfo("en-US");
-
- Assert.AreEqual(" € 1.250,75", string.Format(it, "{0,20:C}", d));
- Assert.AreEqual("01/01/2010 15:30 ", string.Format(it, "{0,-20:g}", dt));
- Assert.AreEqual(" $1,250.75", string.Format(us, "{0,20:C}", d));
- Assert.AreEqual("1/1/2010 3:30 PM ", string.Format(us, "{0,-20:g}", dt));
- }
|