Any Object that derives from System.Object implements a method ToString() which upon calling, return the fully qualified
name of the class.
We can override the ToString() method to return more meaningful Results
For ex:
Let’s have a console application with a class called Customer, defined like:
class Customer { public Customer(string firstName, string lastName, string address, string phone) { FirstName = firstName; LastName = lastName; Address = address; Phone = phone; } public string FirstName { get; set; } public string LastName { get; set; } public string Address { get; set; } public string Phone { get; set; } }
Now in the main(), call constructor of the class Customer:
Customer customer = new Customer("Monte", "Carlo", "Street No 122, LA", "000-111222333");
If we call ToString() on customer, it will return the class name (Customer) Console.WriteLine(customer.ToString()); Output: Customer Now, Override ToString() for Customer class like: public override string ToString() { return String.Format("Customer Details: \nFirst Name - {0} \nLast Name - {1} \nAddress - {2} \nPhone - {3}", FirstName, LastName, Address, Phone); } Calling ToString() on Customer object will now return more meaningful result as: Console.WriteLine(customer.ToString());
output:
Customer Details: First Name – Monte Last Name – Carlo Address – Street No 122, LA
Phone – 000-111222333