Junior
Czym jest przeciążanie metod w C#?
sobes.tech AI
Odpowiedź od AI
Przeciążanie metod (Method Overloading) w C# pozwala na zdefiniowanie kilku metod w tej samej klasie o tej samej nazwie, ale z różnymi sygnaturami.
Sygnatura metody obejmuje:
- Nazwę metody.
- Liczbę i typy parametrów na liście parametrów.
Nie jest uwzględniane w sygnaturze:
- Typ wartości zwracanej.
- Modyfikatory parametrów (np.
ref,out).
Przykład:
// Klasa z przeciążonymi metodami
public class Calculator
{
// Przeciążenie 1: Dodawanie dwóch liczb całkowitych
public int Add(int a, int b)
{
return a + b;
}
// Przeciążenie 2: Dodawanie dwóch liczb zmiennoprzecinkowych (inne typy parametrów)
public double Add(double a, double b)
{
return a + b;
}
// Przeciążenie 3: Dodawanie trzech liczb całkowitych (inna liczba parametrów)
public int Add(int a, int b, int c)
{
return a + b + c;
}
// To NIE jest przeciążenie: różni się tylko typem wartości zwracanej
/*
public double Add(int a, int b)
{
return (double)(a + b);
}
*/
}
Kompilator określa, który metodę wywołać podczas kompilacji, na podstawie typów i liczby argumentów przekazywanych podczas wywołania. Jest to znane jako wiązanie statyczne (Static Binding) lub wiązanie wczesne (Early Binding).
Zalety przeciążania metod:
- Poprawia czytelność i wygodę korzystania z kodu.
- Przedstawia podobne operacje pod jedną nazwą, ale dla różnych typów danych lub z różnymi zestawami parametrów wejściowych.