C # - Phương thức

Phương thức là một nhóm các câu lệnh cùng thực hiện một tác vụ. Mỗi chương trình C # đều có ít nhất một lớp với một phương thức có tên là Main.

Để sử dụng một phương pháp, bạn cần phải -

  • Xác định phương pháp
  • Gọi phương thức

Định nghĩa các phương thức trong C #

Khi bạn định nghĩa một phương thức, về cơ bản bạn khai báo các phần tử của cấu trúc của nó. Cú pháp để xác định một phương thức trong C # như sau:

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

Sau đây là các yếu tố khác nhau của một phương thức:

  • Access Specifier - Điều này xác định khả năng hiển thị của một biến hoặc một phương thức từ một lớp khác.

  • Return type- Một phương thức có thể trả về một giá trị. Kiểu trả về là kiểu dữ liệu của giá trị mà phương thức trả về. Nếu phương thức không trả về bất kỳ giá trị nào, thì kiểu trả về làvoid.

  • Method name- Tên phương thức là một định danh duy nhất và nó có phân biệt chữ hoa chữ thường. Nó không thể giống với bất kỳ mã định danh nào khác được khai báo trong lớp.

  • Parameter list- Được bao giữa các dấu ngoặc, các tham số được sử dụng để truyền và nhận dữ liệu từ một phương thức. Danh sách tham số đề cập đến kiểu, thứ tự và số lượng các tham số của một phương thức. Các thông số là tùy chọn; nghĩa là, một phương thức có thể không chứa tham số.

  • Method body - Điều này chứa tập hợp các hướng dẫn cần thiết để hoàn thành hoạt động được yêu cầu.

Thí dụ

Đoạn mã sau đây cho thấy một hàm FindMax nhận hai giá trị nguyên và trả về giá trị lớn hơn trong hai giá trị đó. Nó có bộ chỉ định truy cập công khai, vì vậy nó có thể được truy cập từ bên ngoài lớp bằng cách sử dụng một thể hiện của lớp.

class NumberManipulator {

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

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

      return result;
   }
   ...
}

Phương thức gọi trong C #

Bạn có thể gọi một phương thức bằng cách sử dụng tên của phương thức đó. Ví dụ sau minh họa điều này -

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();
      }
   }
}

Khi đoạn mã trên được biên dịch và thực thi, nó tạo ra kết quả sau:

Max value is : 200

Bạn cũng có thể gọi phương thức công khai từ các lớp khác bằng cách sử dụng thể hiện của lớp. Ví dụ, phương thức FindMax thuộc lớp NumberManipulator , bạn có thể gọi nó từ Test lớp khác .

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();
      }
   }
}

Khi đoạn mã trên được biên dịch và thực thi, nó tạo ra kết quả sau:

Max value is : 200

Cuộc gọi phương thức đệ quy

Một phương thức có thể gọi chính nó. Điều này được gọi làrecursion. Sau đây là một ví dụ tính giai thừa cho một số nhất định bằng cách sử dụng một hàm đệ quy:

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();
      }
   }
}

Khi đoạn mã trên được biên dịch và thực thi, nó tạo ra kết quả sau:

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

Chuyển các tham số cho một phương pháp

Khi phương thức có tham số được gọi, bạn cần truyền các tham số cho phương thức. Có ba cách mà các tham số có thể được truyền cho một phương thức:

Sr.No. Cơ chế & Mô tả
1 Tham số giá trị

Phương thức này sao chép giá trị thực của một đối số vào tham số chính thức của hàm. Trong trường hợp này, các thay đổi được thực hiện đối với tham số bên trong hàm không ảnh hưởng đến đối số.

2 Thông số tham khảo

Phương thức này sao chép tham chiếu đến vị trí bộ nhớ của một đối số vào tham số chính thức. Điều này có nghĩa là các thay đổi được thực hiện đối với tham số sẽ ảnh hưởng đến đối số.

3 Thông số đầu ra

Phương thức này giúp trả về nhiều giá trị.