Surcharger la méthode ToString() en C#
Tout objet hérite de la classe System.Object et implémente la méthode ToString(). Lorsque nous instancions une classe, normalement il y a quatre méthodes présentes dans chaque objet crée, qui sont GetType(), ToString(), GethashCode() et Equals(). Par défaut lorsque nous appelons ToString() sur n’importe quel objet, il nous renvoie l’espace de noms et le nom de la classe. Voir l’exemple ci-dessous :
using System; namespace WayToLearnX { class Customer { public Customer(int ID, string FirstName, string Address) { id = ID; firstName = FirstName; address = Address; } public int id { get; set; } public string firstName { get; set; } public string address { get; set; } } public class Test { public static void Main(string[] args) { Customer c = new Customer(99, "Alex", "Paris"); Console.WriteLine(c.ToString()); } } }
La sortie :
WayToLearnX.Customer
Supposons qu’on veut afficher le « Customer » sous la forme : « ID + FirstName + Address » et chacun de ces champs séparés par un espace lorsque nous appelons la méthode ToString() sur l’objet « Customer ».
Cette représentation sous forme de chaîne de caractères de l’objet que nous pouvons définir dans la classe « Customer », peut être utilisée, chaque fois que nous en avons besoin.
Programme pour Surcharger la méthode ToString()
using System; namespace WayToLearnX { class Customer { public Customer(int ID, string FirstName, string Address) { id = ID; firstName = FirstName; address = Address; } public override string ToString() { return this.id + " " + this.firstName + " " +this.address; } public int id { get; set; } public string firstName { get; set; } public string address { get; set; } } public class Test { public static void Main(string[] args) { Customer c = new Customer(99, "Alex", "Paris"); Console.WriteLine(c.ToString()); } } }
La sortie :
99 Alex Paris