ToString
è il principale metodo di formattazione in .NET Framework. Converte un oggetto nella rappresentazione in formato stringa in modo che sia adatto alla visualizzazione. Per ulteriori informazioni sul supporto per la formattazione in .NET Framework, vedere Formattazione dei tipi di dati.
L'implementazione predefinita del metodo ToString restituisce il nome completo del tipo di Object, come indicato nell'esempio seguente.
using System;
public class Example
{
public static void Main()
{
Object obj = new Object();
Console.WriteLine(obj.ToString());
}
}
// The example displays the following output:
// System.Object
Poiché Object è la classe di base di tutti i tipi riferimento in .NET Framework, questo comportamento è ereditato da tipi riferimento che non eseguono l'override del metodo ToString. Questa condizione è illustrata nell'esempio che segue. Definisce una classe denominata Object1 che accetta l'implementazione predefinita di tutti i membri Object. Il relativo metodo ToString restituisce il nome del tipo completo dell'oggetto.
using System;
using Examples;
namespace Examples
{
public class Object1
{
}
}
public class Example
{
public static void Main()
{
object obj1 = new Object1();
Console.WriteLine(obj1.ToString());
}
}
// The example displays the following output:
// Examples.Object1
I tipi spesso eseguono l'override del metodo ToString per restituire una stringa che rappresenta un'istanza dell'oggetto. I tipi di base, come ad esempio Char, Int32 e String offrono ToString implementazioni che restituiscono il formato stringa del valore che l'oggetto rappresenta. Nell'esempio seguente viene definita la classe Object2 che esegue l'override del metodo ToString per restituire il nome del tipo e il valore.
using System;
public class Object2
{
private object value;
public Object2(object value)
{
this.value = value;
}
public override string ToString()
{
return base.ToString() + ": " + value.ToString();
}
}
public class Example
{
public static void Main()
{
Object2 obj2 = new Object2('a');
Console.WriteLine(obj2.ToString());
}
}
// The example displays the following output:
// Object2: a
Note per gli implementatoriQuando si implementano tipi propri, è necessario eseguire l'override del metodo ToString per restituire valori significativi per quei tipi. Le classi derivate che richiedono più controllo sulla formattazione rispetto a quanto offerto da ToString possono implementare l'interfaccia IFormattable. Il metodo IFormattable.ToString(String, IFormatProvider) consente di definire stringhe di formato che controllano la formattazione e di utilizzare un oggetto IFormatProvider che può fornire la formattazione specifica delle impostazioni cultura.