What is overloading in C#?

The process of creating more than one method in a class with the same name or creating a method in a derived class with the same name as a method in the base class is called "method overloading". It is a compile time polymorphism.

In C#, we have no need to use any keyword while overloading a method either in the same class or in a derived class.
While overloading the methods, a rule to follow is that the overloaded methods must differ either in number of arguments they take or the data type of at least one argument.

Program
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. namespace functionloadingProgram {
  7. class class1 {
  8. public int Add(int x, int y) {
  9. return x + y;
  10. }
  11. public float Add(int x, float y) {
  12. return x + y;
  13. }
  14. }
  15. class class2: class1 {
  16. public int Add(int x, int y, int z) {
  17. return x + y + z;
  18. }
  19. }
  20. class Program {
  21. static void Main(string[] args) {
  22. class2 obj = new class2();
  23. Console.WriteLine(obj.Add(10, 10));
  24. Console.WriteLine(obj.Add(10, 12.1 f));
  25. Console.WriteLine(obj.Add(10, 20, 30));
  26. Console.ReadLine();
  27. }
  28. }
  29. }
Output

20
22.1
60

In this example, you can observe that there are 3 methods with the name Add() but with different parameters.