Co to jest przeciążenie metody w C #?
Kiedy chcesz zaimplementować funkcję polimorfizmu, odbywa się to za pomocą metody Overloading. W laickim pojęciu, jeśli chcemy użyć jednej funkcji dla więcej niż jednej formy, używamy przeciążenia metody. Ponieważ C # jest językiem opartym na OOP, całkowicie obsługuje polimorfizm.
Programista może wielokrotnie używać jednej klasy o tej samej nazwie i różnych parametrach. Podczas wykonywania polimorfizmu dwie klasy lub metody mogą używać tej samej nazwy.
Porozmawiajmy o różnych metodach używania parametrów w klasach i metodach c #.
- Możemy przeładować metodę na podstawie kilku przekazanych parametrów. W metodach parametry należy przekazywać jako argumenty.
- Nie można zdefiniować dwóch metod o tej samej nazwie i tym samym typie i kolejności przekazywanych parametrów. To dałoby ci błąd.
- Chociaż kompilator nie bierze pod uwagę typu zwracanego, nie można zadeklarować dwóch metod o tej samej nazwie, typie lub podpisie.
Jakie jest zastosowanie metody przeciążania?
Gdy nie chcesz zadeklarować więcej niż jednej metody dla podobnego typu metody do wykonania podobnych zadań i chcesz użyć tej samej metody na różne sposoby. Na przykład, różne dane wejściowe, inna kolejność, inna liczba danych wejściowych dla tych samych metod, należy użyć przeciążenia metody.
Weźmy przykład z życia. Kodujemy kalkulator, w którym możesz zakodować część sumy kalkulatora. Wszystkie liczby wprowadzane przez użytkownika powinny być dodawane do siebie i zwracać sumę wszystkich wprowadzonych liczb.
Jest ograniczenie. Użytkownicy nie mogą dodać więcej niż trzech liczb za jednym razem.
Oto kroki, aby zrobić to łatwo:
- Zadeklaruj metodę, która powinna sumować wszystkie liczby przekazane w parametrach
- Przeciążenie metody nastąpiłoby na podstawie liczby przekazanych parametrów.
- Metoda powinna zwrócić sumę wszystkich wprowadzonych liczb.
Składnia
Oto składnia przeciążenia metody.
//declare the parameters in method
public void method1 (parameter1, parameter2)
(
//some statement
)
public void method1(parameter2, parameter1)
(
//some statement to be executed
)
//in main method pass the parameters while declaring these methods
public static void Main(Strings() args)
(
class object=new class();
object.method(2, 3) //value of parameter
object.method(3, 2) //value of parameter by changing the order
)
)
Przykłady przeciążenia metody
Przeciążenie metody w języku C # można wykonać, zmieniając poniższe rzeczy.
- Możesz zmienić liczbę parametrów przekazanych w metodzie
- Możesz zmienić typ parametrów przekazywanych w metodzie
- Możesz zmienić kolejność parametrów przekazywanych w metodzie.
Jeśli ten sam typ podpisu i parametry zostaną przekazane tą samą metodą, pojawi się błąd kompilacji. Podpis powinien być inny, jeśli używasz funkcji polimorfizmu lub próbujesz przeciążać metodę w C #
Weźmy przykład każdego z nich.
1. Zmiana liczby parametrów
using System;
public class methodOverloadfirst
(
//declaring two integers x and y.
public int sum(int x, int y)
(
int result=x+y;
return result;
)
//Let's add three integers in same method
public int sum(int x, int y, int z)
(
int result=x+y+z;
return result;
)
//Declare main method
public static void Main(String() args)
(
methodOverloadfirst obj=new methodOverloadfirst();
int result1=obj.sum(2, 3);
Console.WriteLine("The Sum of the two integer value is : " + result1);
int result2=obj.sum(2, 3, 4);
Console.WriteLine("The Sum of the three integer value is : " + result2);
)
)
Wynik:
2. Zmiana typów danych parametrów
// Nasz program do pokazania funkcji przeciążenia metody
// Zmienimy tutaj typ danych parametrów.
using System;
public class methodOverloadfirst
(
//declaring two integers x and y.
public int sum(int x, int y)
(
int result=x+y;
return result;
)
//Let's add three doubles in same method
public double sum(double x, double y, double z)
(
double result=x+y+z;
return result;
)
//Declare main method
public static void Main(String() args)
(
methodOverloadfirst obj=new methodOverloadfirst();
int result1=obj.sum(2, 3);
Console.WriteLine("The Sum of the two integer value is : " + result1);
double result2=obj.sum(2.1, 3.2, 4.5);
Console.WriteLine("The Sum of the three double value is : " + result2);
)
)
Wynik:
3. Zmiana typów danych parametrów.
// Nasz program do pokazania funkcji przeciążenia metody
// Zmienimy tutaj typ danych parametrów.
using System;
class methodOverloadfirst
(
//declaring one integer and one String
public void displayinfo(string fname, int empID)(
Console.WriteLine("Your name is: " + fname + ", " + "Your Employee ID is: " + empID);
)
//Let's change the order of the parameters
public void displayinfo(int empID, string fname)
(
Console.WriteLine("Your Employee ID is: " + empID + ", " + "Your name is: " + fname);
)
//Declare main method
public static void Main(String() args)
(
methodOverloadfirst obj=new methodOverloadfirst();
obj.displayinfo("Kumar", 121);
obj.displayinfo("Anand", 123);
)
)
Wynik:
Wniosek
Przeciążanie metod jest niesamowitą cechą koncepcji opartej na procesorach operacyjnych i może uratować Cię od wielu kłopotów, jeśli jesteś programistą. Przeciążenie metody jest jedną z cech polimorfizmu. Prawidłowe użycie może uniemożliwić zadeklarowanie więcej niż jednej metody i zadeklarowanie jej za każdym razem w przypadku podobnego zadania.
Podczas korzystania z tej funkcji jest rodzaj podpisu. Powinno to być inne za każdym razem, gdy metoda jest stosowana albo według kilku parametrów, a kolejności według parametrów lub według typu parametrów, jak pokazano powyżej w przykładach.
Polecane artykuły
Jest to przewodnik po przeciążaniu metod w języku C #. Tutaj omawiamy użycie metody Overloading z przykładami i wynikami. Możesz także spojrzeć na następujący artykuł, aby dowiedzieć się więcej-
- Niszczyciel w C #
- Przeciążenie w C #
- Kompilatory C #
- Operator C # OR
- Polimorfizm w Javie
- Przeciążenie w Javie
- Typy danych C ++
- Przeciążenie Pythona
- Przeciążanie i zastępowanie w C #
- Destructor w PHP | Przykłady