C # - Yöntemler

Yöntem, bir görevi birlikte gerçekleştiren bir grup deyimdir. Her C # programı, Main adında bir yönteme sahip en az bir sınıfa sahiptir.

Bir yöntemi kullanmak için yapmanız gerekenler -

  • Yöntemi tanımlayın
  • Yöntemi çağırın

C # 'da Yöntemleri Tanımlama

Bir yöntemi tanımladığınızda, temelde yapısının öğelerini bildirmiş olursunuz. C # 'da bir yöntemi tanımlamak için sözdizimi aşağıdaki gibidir -

<Access Specifier> <Return Type> <Method Name>(Parameter List) {
   Method Body
}

Bir yöntemin çeşitli unsurları aşağıdadır -

  • Access Specifier - Bu, bir değişkenin veya başka bir sınıftan bir yöntemin görünürlüğünü belirler.

  • Return type- Bir yöntem bir değer döndürebilir. Dönüş türü, yöntemin döndürdüğü değerin veri türüdür. Yöntem herhangi bir değer döndürmüyorsa, dönüş türüvoid.

  • Method name- Yöntem adı benzersiz bir tanımlayıcıdır ve büyük / küçük harfe duyarlıdır. Sınıfta belirtilen diğer herhangi bir tanımlayıcı ile aynı olamaz.

  • Parameter list- Parantezler arasında, parametreler bir yöntemden veri aktarmak ve almak için kullanılır. Parametre listesi, bir yöntemin parametrelerinin türü, sırası ve sayısı ile ilgilidir. Parametreler isteğe bağlıdır; yani, bir yöntem hiçbir parametre içermeyebilir.

  • Method body - Bu, gerekli aktiviteyi tamamlamak için gereken talimatları içerir.

Misal

Aşağıdaki kod parçacığı, iki tamsayı değeri alan ve ikisinden büyük olanı döndüren FindMax işlevini gösterir . Genel erişim tanımlayıcısına sahiptir, bu nedenle sınıfın bir örneği kullanılarak sınıfın dışından erişilebilir.

class NumberManipulator {

   public int FindMax(int num1, int num2) {
      /* local variable declaration */
      int result;

      if (num1 > num2)
         result = num1;
      else
         result = num2;

      return result;
   }
   ...
}

C # 'da Çağrı Yöntemleri

Yöntemin adını kullanarak bir yöntemi çağırabilirsiniz. Aşağıdaki örnek bunu göstermektedir -

using System;

namespace CalculatorApplication {
   class NumberManipulator {
      public int FindMax(int num1, int num2) {
         /* local variable declaration */
         int result;
         
         if (num1 > num2)
            result = num1;
         else
            result = num2;
         return result;
      }
      
      static void Main(string[] args) {
         /* local variable definition */
         int a = 100;
         int b = 200;
         int ret;
         NumberManipulator n = new NumberManipulator();

         //calling the FindMax method
         ret = n.FindMax(a, b);
         Console.WriteLine("Max value is : {0}", ret );
         Console.ReadLine();
      }
   }
}

Yukarıdaki kod derlendiğinde ve yürütüldüğünde, aşağıdaki sonucu verir -

Max value is : 200

Ayrıca, sınıfın örneğini kullanarak diğer sınıflardan public yöntemi de çağırabilirsiniz. Örneğin, yöntem FindMax aittir NumberManipulator sınıfına, başka sınıf onu çağırabilir Testi .

using System;

namespace CalculatorApplication {
   class NumberManipulator {
      public int FindMax(int num1, int num2) {
         /* local variable declaration */
         int result;
         
         if(num1 > num2)
            result = num1;
         else
            result = num2;
         
         return result;
      }
   }
   class Test {
      static void Main(string[] args) {
         /* local variable definition */
         int a = 100;
         int b = 200;
         int ret;
         NumberManipulator n = new NumberManipulator();
         
         //calling the FindMax method
         ret = n.FindMax(a, b);
         Console.WriteLine("Max value is : {0}", ret );
         Console.ReadLine();
      }
   }
}

Yukarıdaki kod derlendiğinde ve yürütüldüğünde, aşağıdaki sonucu verir -

Max value is : 200

Yinelemeli Yöntem Çağrısı

Bir yöntem kendisini çağırabilir. Bu olarak bilinirrecursion. Aşağıda, özyinelemeli bir işlev kullanarak belirli bir sayı için faktöriyel hesaplayan bir örnek verilmiştir -

using System;

namespace CalculatorApplication {
   class NumberManipulator {
      public int factorial(int num) {
         /* local variable declaration */
         int result;
         if (num == 1) {
            return 1;
         } else {
            result = factorial(num - 1) * num;
            return result;
         }
      }
      static void Main(string[] args) {
         NumberManipulator n = new NumberManipulator();
         //calling the factorial method {0}", n.factorial(6));
         Console.WriteLine("Factorial of 7 is : {0}", n.factorial(7));
         Console.WriteLine("Factorial of 8 is : {0}", n.factorial(8));
         Console.ReadLine();
      }
   }
}

Yukarıdaki kod derlendiğinde ve yürütüldüğünde, aşağıdaki sonucu verir -

Factorial of 6 is: 720
Factorial of 7 is: 5040
Factorial of 8 is: 40320

Bir Yönteme Parametreleri Geçirme

Parametreli yöntem çağrıldığında, parametreleri yönteme iletmeniz gerekir. Bir yönteme parametrelerin aktarılmasının üç yolu vardır:

Sr.No. Mekanizma ve Açıklama
1 Değer parametreleri

Bu yöntem, bir bağımsız değişkenin gerçek değerini işlevin biçimsel parametresine kopyalar. Bu durumda, işlevin içindeki parametrede yapılan değişikliklerin bağımsız değişken üzerinde hiçbir etkisi yoktur.

2 Referans parametreleri

Bu yöntem, bir bağımsız değişkenin bellek konumuna başvuruyu biçimsel parametreye kopyalar. Bu, parametrede yapılan değişikliklerin bağımsız değişkeni etkilediği anlamına gelir.

3 Çıkış parametreleri

Bu yöntem, birden fazla değer döndürmeye yardımcı olur.