Indítsuk el a Visual Studio-t, és hozzunk létre egy "ConsoleToString1" nevű Console projektet.
Másoljuk be a következő kódot a Program.cs file-ba.
namespace ConsoleToString1
{
class resztvevo
{
public string Nev { get; set; }
public string Varos { get; set; }public override string ToString()
{
return "A résztvevő adatai : \t" +
"Név : " + Nev + " - " + "Város : " + Varos;
//return base.ToString();
}
}class Program
{
static void Main(string[] args)
{
resztvevo laci = new resztvevo
{ Nev = "László", Varos = "Budapest" };Console.WriteLine(laci.ToString());
Console.ReadLine();
}
}
}
A ConsoleToString1 névtérben lévő "resztvevo" osztály tartalmaz két property-t, illetve a felülírt ToString() metódust. Ezt nem kell nekünk "kézzel" beírni. A "resztvevo" osztályban kezdjük el beírni az "override" szót, és a fejlesztőkörnyezetünk felkínálja az Object osztályban lévő metódusokat, és ekkor tudjuk kiválasztani a ToString()-et (1. ábra).

1. ábra A felülírt ToString() metódus létrehozása
Hozzuk létre a fejlesztőkörnyezetünk segítségével a ToString() metódust (2. ábra), majd a tartalmát módosítsuk.

2. ábra Létrehoztuk a ToString() metódust
A Program osztályban lévő Main() metódusban a "resztvevo" osztályt példányosítjuk "laci" néven és ekkor adunk értéket a két property-nek is.
Ezután a Console osztály WriteLine() metódusát hívjuk meg úgy, hogy a "laci" nevű példányt megjelenítjük a felülírt ToString() segítségével.
Futtassuk debug módban a programunkat, és következő eredményt kapjuk (3. ábra).

3. ábra Futási eredmény
Látható, hogy a "laci" példány property-einek az értékét a kiegészítő megjegyzésekkel írtuk ki a konzolra.
A ToString() metódus módosítására létezik egy másik lehetőség is, amikor nem felülírjuk ezt a metódust, hanem implementáljuk az IFormattable interfészt.
Másoljuk be a következő kódot a Program.cs file-ba. Látható, hogy az előző példaprogram kiegészítésre került egy újabb osztállyal, amelynek a neve "tanfolyam". Ezt az osztályt az IFormattable nevű interfész segítségével implementáltuk. Amikor létrehoztuk az osztályt az implementálás során, akkor a fejlesztő eszközünk a ToString() metódust implmentálta, de úgy, hogy a metódusnak a törzse nem került megvalósításra, azt nekünk kell utána megadnunk.
namespace ConsoleToString1
{
class resztvevo
{
public string Nev { get; set; }
public string Varos { get; set; }public override string ToString()
{
return "A résztvevő adatai : \t" +
"Név : " + Nev + " - " + "Város : " + Varos;
//return base.ToString();
}
}class tanfolyam : IFormattable
{
public string Nev { get; set; }
public string Varos { get; set; }public string ToString(string format, IFormatProvider formatProvider)
{
if (format == "n")
return Nev;
else if (format == "v")
return Varos;
else if (format == "nv")
return "Név : " + Nev + " - Város : " + Varos;
else
return "Nincs kijelölve megjelenítendő elem....";
}
}
class Program
{
static void Main(string[] args)
{
resztvevo laci = new resztvevo
{ Nev = "László", Varos = "Budapest" };Console.WriteLine(laci.ToString());
tanfolyam t1 = new tanfolyam
{ Nev = "ASP.NET", Varos = "Tata" };
Console.WriteLine(t1.ToString("n", null));
Console.WriteLine(t1.ToString("v", null));
Console.WriteLine(t1.ToString("nv", null));
Console.WriteLine(t1.ToString("y", null));Console.ReadLine();
}
}
}
A "tanfolyam" osztályban lévő ToString() metódust úgy írtuk meg, hogy paraméteresen tudjuk meghívni. Az implementálást alkalmazva más lehetőségünk nincs is, hiszen az IFormattable intérfészben található ToString() metódus szignatúrája így került kialakításra.
A meghíváskor átadott paramétereket a "format"-tal hasonlítjuk össze. A másik paramétert (formatProvider) nem használjuk, meghíváskor a "null" értéket kapja meg.
Futtassuk újra debug módban az alkalmazásunkat, az eredményt a 4. ábrán látjuk.

4. ábra A ToString() metódus Futási eredmény
Először a ToString() metódus felülírásának az eredménye látható, majd a "tanfolyam" osztály példányosításakor (t1) a property-knek megadott értékek.
A "t1" példányt a Console.WriteLine() segítségével jelenítjük meg úgy, hogy a ToString() metódus első paraméterének az értékét változtatjuk. Látható a 4. ábrán, hogy ennek a segítségével módosítani tudjuk a "t1" példány property-einek a megjelenítését.
Ebben a cikkben bemutatjuk a metódusok alapjait. Nem érintjük viszont például a túlterhelést, ezt egy következő részben tekintjük át.. . . .
A sorozatunknak ebben a részében átnézzük általánosságban az osztályok alapjait egy konzolalkalmazás segítségével. A konstruktorok viszont a következő részben kerülnek bemutatásra.. . . .
Ebben a cikkben nem csak a metódusok túlterhelését nézzük meg egy konkrét példa segítségével, hanem szóba kerülnek a generikusok is, szintén egy kisebb projekt keretén belül.. . . .