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 IFormattable.ToString (String, IFormatProvider)

 

Data di pubblicazione: ottobre 2016

Formatta il valore dell'istanza corrente usando il formato specificato.

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

string ToString(
	string format,
	IFormatProvider formatProvider
)

Parametri

format
Type: System.String

Formato da usare.

-oppure-

Riferimento null (Nothing in Visual Basic) per usare il formato predefinito per il tipo dell'implementazione di IFormattable.

formatProvider
Type: System.IFormatProvider

Provider da usare per formattare il valore.

-oppure-

Riferimento null (Nothing in Visual Basic) per ottenere le informazioni sul formato numerico dalle impostazioni locali correnti del sistema operativo.

Valore restituito

Type: System.String

Valore dell'istanza corrente nel formato specificato.

Il ToString metodo converte un valore in una rappresentazione di stringa che può essere espressa in diversi modi. Il formato esatto dipende dai simboli specifici o un ordine specifico, definito da impostazioni cultura specifiche, professioni o settori. È possibile chiamare direttamente il metodo. Viene inoltre chiamato automaticamente dai metodi Convert.ToString(Object) e Convert.ToString(Object, IFormatProvider) e dai metodi che utilizzano la funzionalità di formattazione composita in .NET Framework, come String.Format(String, Object[]), Console.WriteLine(String, Object[]) e StringBuilder.AppendFormat(String, Object[]). Per altre informazioni, vedere Formattazione composita.

Chiamata di metodi di formattazione composita la ToString metodo una volta per ogni elemento di formato in una stringa di formato. I parametri passati al metodo dipendono dal metodo di formattazione specifico che viene chiamato e il contenuto dell'elemento di formato, come indicato di seguito:

System_CAPS_noteNota

Un oggetto ToString implementazione viene chiamata dai metodi di formattazione composti solo se non vengono passati un ICustomFormatter provider di formato, o se il Format metodo del provider di formato personalizzato restituisce null.

.NET Framework include tre provider di formato, che implementano il IFormatProvider interfaccia:

  • NumberFormatInfofornisce numerico informazioni sulla formattazione, ad esempio i caratteri da utilizzare per decimale e separatori di gruppi e l'ortografia e la posizione dei simboli di valuta in valori monetari.

  • DateTimeFormatInfofornisce Data e ora informazioni di formattazione, ad esempio la posizione del mese, giorno e l'anno in un modello di Data.

  • CultureInfocontiene le informazioni contenute in una lingua specifica, incluse le informazioni di formato numerico e informazioni di formattazione relative alla data e ora di formattazione predefinite.

Inoltre, è possibile definire un provider di formato personalizzata.

Note per gli implementatori:

Il ToString (metodo) deve supportare l'identificatore di formato (generale) "G". Oltre l'identificatore "G", la classe può definire l'elenco di identificatori di formato che supporta. Inoltre, è necessario preparare la classe per gestire un identificatore di formato null. Per ulteriori informazioni sulla formattazione e sui codici di formattazione, vedere Formattazione di tipi in .NET Framework.

Nell'esempio seguente viene illustrato un Temperature classe che implementa il ToString metodo. Questo esempio di codice fa parte di un esempio più esaustivo disponibile per la IFormattable classe.

using System;
using System.Globalization;

public class Temperature : IFormattable
{
   private decimal temp;

   public Temperature(decimal temperature)
   {
      if (temperature < -273.15m) 
        throw new ArgumentOutOfRangeException(String.Format("{0} is less than absolute zero.", 
                                              temperature));
      this.temp = temperature;
   }

   public decimal Celsius
   {
      get { return temp; }
   }

   public decimal Fahrenheit
   {
      get { return temp * 9 / 5 + 32; }
   }

   public decimal Kelvin
   {
      get { return temp + 273.15m; }
   }

   public override string ToString()
   {
      return this.ToString("G", CultureInfo.CurrentCulture);
   }

   public string ToString(string format)
   {
      return this.ToString(format, CultureInfo.CurrentCulture);
   }

   public string ToString(string format, IFormatProvider provider) 
   {
      if (String.IsNullOrEmpty(format)) format = "G";
      if (provider == null) provider = CultureInfo.CurrentCulture;

      switch (format.ToUpperInvariant())
      {
         case "G":
         case "C":
            return temp.ToString("F2", provider) + " °C"; 
         case "F":
            return Fahrenheit.ToString("F2", provider) + " °F";
         case "K":
            return Kelvin.ToString("F2", provider) + " K";
         default:
            throw new FormatException(String.Format("The {0} format string is not supported.", format));
      }
   }
}

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: