Computer >> Máy Tính >  >> Lập trình >> C#

Các loại tham số khác nhau của một phương thức trong C # là gì?


Các phương thức trong C # nói chung là khối mã hoặc câu lệnh trong chương trình cung cấp cho người dùng khả năng sử dụng lại cùng một đoạn mã, điều này cuối cùng giúp tiết kiệm việc sử dụng quá mức bộ nhớ, hoạt động như một trình tiết kiệm thời gian và quan trọng hơn, nó cung cấp khả năng đọc mã tốt hơn.

Có thể có một số tình huống người dùng muốn thực thi một phương thức nhưng đôi khi phương thức đó yêu cầu một số đầu vào có giá trị để thực thi và hoàn thành nhiệm vụ của nó. Các giá trị đầu vào này được gọi là Tham số .

Các tham số có thể được chuyển tới một phương thức theo những cách sau -

  • Tham số giá trị

  • Tham số Tham chiếu

  • Tham số đầu ra

Tham số giá trị

Tham số giá trị 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. Khi một biến đơn giản được truyền dưới dạng tham số cho bất kỳ phương thức nào, nó sẽ được chuyển dưới dạng giá trị. Điều này có nghĩa là giá trị chứa trong biến được truyền dưới dạng tham số được sao chép vào các biến của phương thức và nếu bên trong phương thức, các giá trị này bị thay đổi hoặc sửa đổi, thì thay đổi đó không được phản ánh trong biến thực tế được truyền. Hầu hết các kiểu dữ liệu nguyên thủy như số nguyên, kép, Boolean, v.v. đều được truyền theo giá trị.

Ví dụ

using System;
namespace MyApplication{
   public class Program{
      public static void Main(){
         int x = 5, y = 5;
         Console.WriteLine($"Value before calling the method. x = {x}, y = {y}");
         ValueParamter(x, y);
         Console.WriteLine($"Value after calling the method. x = {x}, y = {y}");
      }
      public static void ValueParamter(int x, int y){
         x = 10;
         y = 10;
         int z = x + y;
         Console.WriteLine($"Sum of x and y = {z}");
      }
   }
}

Đầu ra

Đầu ra của đoạn mã trên như sau &mius;

Giá trị
Value before calling the method. x = 5, y = 5
Sum of x and y = 20
Value after calling the method. x = 5, y = 5

Tham số Tham chiếu

Tham số Tham chiếu 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. Thông thường, tất cả các đối tượng được truyền bằng tham chiếu dưới dạng tham số cho phương thức. Phương thức hoạt động trên các tham chiếu của các biến được truyền trong các tham số thay vì hoạt động trên các giá trị của chúng. Điều này dẫn đến việc sửa đổi các biến trong hàm đang gọi khi chúng được sửa đổi trong hàm được gọi. Đ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ố.

Ví dụ

using System;
namespace MyApplication{
   public class Program{
      public static void Main(){
         int x = 5, y = 5;
         Console.WriteLine($"Value before calling the method. x = {x}, y = {y}");
         RefParamter(ref x, ref y);
         Console.WriteLine($"Value after calling the method. x = {x}, y = {y}");
      }
      public static void RefParamter(ref int x, ref int y){
         x = 10;
         y = 10;
         int z = x + y;
         Console.WriteLine($"Sum of x and y = {z}");
      }
   }
}

Đầu ra

Đầu ra của đoạn mã trên như sau -

Giá trị
Value before calling the method. x = 5, y = 5
Sum of x and y = 20
Value after calling the method. x = 10, y = 10

Tham số đầu ra

Tham số đầu ra giúp trả về nhiều hơn một giá trị. Một câu lệnh trả về chỉ có thể được sử dụng để trả về một giá trị từ một hàm. Tuy nhiên, bằng cách sử dụng các tham số đầu ra, bạn có thể trả về hai giá trị từ một hàm. Biến được cung cấp cho tham số đầu ra không cần được gán giá trị. Các tham số đầu ra đặc biệt hữu ích khi bạn cần trả về giá trị từ một phương thức thông qua các tham số mà không cần gán giá trị ban đầu cho tham số. Các tham số đầu ra tương tự như các tham số tham chiếu, ngoại trừ việc chúng truyền dữ liệu ra khỏi phương thức chứ không phải vào nó.

Ví dụ

using System;
namespace MyApplication{
   public class Program{
      public static void Main(){
         int result;
         OutParamter(out result);
         Console.WriteLine($"Result: {result}");
      }
      public static void OutParamter(out int result){
         int x = 10, y = 10;
         result = x + y;
      }
   }
}

Đầu ra

The output of the above code is as follows:
Result: 20