Ho una domanda circa il codice seguente:basi Console.WriteLine
class CurrentDate
{
static void Main()
{
Console.WriteLine(DateTime.Now);
}
}
documentazione dice:
Scrive la rappresentazione testuale di matrice specificata di oggetti, seguito dalla linea di corrente terminatore , al flusso di output standard utilizzando le informazioni di formato specificate.
Quindi la mia domanda è: Come mai WriteLine
conosce la rappresentazione testuale di DateTime
oggetto? Voglio dire, se creo il mio oggetto dalla mia classe, come saprebbe come convertire il valore in testo? E ancora di più, come fa a sapere qual è il valore? Come si può definire "valore" di un oggetto?
Vedere https://msdn.microsoft.com/en-gb/library/ms173154%28v=vs.80%29.aspx – adaam
Si noti che l'ispettore dell'oggetto di Visual Studio Debugger utilizza anche un meccanismo molto simile ('MyClass.toString ') per capire cosa stampare come valore quando l'oggetto è visualizzato come una singola riga. – Superbest
'Console.WriteLine()' chiama implicitamente 'ToString()', quindi per il tuo oggetto devi implementare/sovrascrivere il metodo 'ToString()'. – Jaider