Mam pytanie o następującym kodzie:Console.WriteLine Podstawy
class CurrentDate
{
static void Main()
{
Console.WriteLine(DateTime.Now);
}
}
Dokumentacja mówi:
pisze reprezentacji tekstowej określonej tablicy obiektów, następnie bieżącej linii terminatora , do standardowego strumienia wyjściowego przy użyciu określonej informacji o formacie.
Więc moje pytanie brzmi: Jak to się stało WriteLine
zna reprezentacji tekstowej DateTime
obiektu? Mam na myśli, że jeśli utworzę własny obiekt z mojej własnej klasy, jak on będzie wiedział, jak przekonwertować wartość na tekst? A nawet więcej, skąd wiadomo, jaka jest wartość? Jak zdefiniować "wartość" obiektu?
Zobacz https://msdn.microsoft.com/en-gb/library/ms173154%28v=vs.80%29.aspx – adaam
Uwaga: Inspektor obiektów Visual Studio Debugger również używa bardzo podobnego mechanizmu ('MyClass.toString '), aby dowiedzieć się, co wydrukować jako wartość, gdy obiekt jest wyświetlany jako pojedynczy wiersz. – Superbest
'Console.WriteLine()' niejawnie wywołuje 'ToString()', więc dla twojego własnego obiektu musisz zaimplementować/przesłonić metodę 'ToString()'. – Jaider