Przeciążanie metod
darek963
Język C# umożliwia programiście tworzenie wielu metod o tej samej nazwie w ramach jednej klasy. Aby program wiedział, której metody użyć w danym momencie, muszą one się różnić typem lub liczbą argumentów. Taki sposób tworzenia metod nazywa się przeciążaniem (ang. overloading).
Poniższy kod pokazuje jak przeciążać metody w języku C#. Proszę zwrócić uwagę, że wywołujemy tą samą metodę jakiTyp() podając inny typ lub liczbę argumentów. Za każdym razem wykonywany jest kod innej metody przeciążonej.
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
// <tworzenie obiektu>
KlasaMetodyPrzeciazone obiekt = new KlasaMetodyPrzeciazone();
// </tworzenie obiektu>
// <deklaracja i inicjalizacja zmiennej>
string zwroconaWartosc = null;
// </deklaracja i inicjalizacja zmiennej>
// <wywoływanie z różnymi argumentami metody przeciązonej>
zwroconaWartosc = obiekt.jakiTyp();
Console.WriteLine(zwroconaWartosc);
zwroconaWartosc = obiekt.jakiTyp(123);
Console.WriteLine(zwroconaWartosc);
zwroconaWartosc = obiekt.jakiTyp("123");
Console.WriteLine(zwroconaWartosc);
zwroconaWartosc = obiekt.jakiTyp(123.00);
Console.WriteLine(zwroconaWartosc);
zwroconaWartosc = obiekt.jakiTyp(123,456);
Console.WriteLine(zwroconaWartosc);
// </wywoływanie z różnymi argumentami metody przeciązonej>
Console.ReadKey();
}
}
class KlasaMetodyPrzeciazone
{
// <metoda jakiTyp()>
public string jakiTyp()
{
return "Nie podano argumentów metody";
}
// </metoda jakiTyp()>
// <przeciazanie metody jakiTyp()>
// * przeciazanie metody polega na
// * implementacji wielu metod o tej samej nazwie
// * ale różniących się od siebie typem lub
// * liczbą argumentów
public string jakiTyp(int zmienna)
{
return "Liczba całkowita";
}
public string jakiTyp(string zmienna)
{
return "Łańcuch znaków";
}
public string jakiTyp(double zmienna)
{
return "Liczba zmiennoprzecinkowa";
}
public string jakiTyp(int zmienna, int zmienna1)
{
return "Dwie liczby całkowite";
}
// </przeciazanie metody jakiTyp()>
}
}