Metot Overloading : Bir metodu aynı isimle, ancak farklı parametre tipleri ya da sayısı için tekrar yazmaya denir.

 static double Topla(double a, double b)
        {
            Console.WriteLine("(double a, double b) parametreli Topla metodu çağrıldı...");
            return a + b;
        }
  static int Topla(int a, int b)
        {
            Console.WriteLine("(int a, int b) parametreli Topla metodu çağrıldı...");
            return a + b;
        }

 //Topla isimli metodun iki int parametre alan bir versiyonu zaten bulunduğu için aşağıdaki metodun yazılmasına derleme zamanında izin verilmez...
        //static double Topla(int a, int b)
        //{
        //    return a + b;
        //}
 static void Main(string[] args)
        {
            //Bir metodun aşırı yüklenmiş versiyonları arasından, hangisinin çağrılacağına gelen parametrelere bakılarak karar verilir.
            Topla(6, 10.5);


            //Atama operatörünün öncelikle sağ taraftaki operandı çalıştığı için, metotları aşırı yüklerken geriye dönüş tipi önemli değildir...
            int sayi = Topla(5, 10);
            double sayi2 = Topla(5, 10);
        }

Not: Erişim belirleyicisinin de aşırı yüklemede bir önemi bulunmaz

  //public void Deneme()
        //{
        //}

        //private void Deneme()
        //{
        //}