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

Làm thế nào để khai báo và khởi tạo Ủy quyền trong C #?

Các đại diện của C # tương tự như con trỏ tới các hàm, trong C hoặc C ++. Một đại biểu là một biến kiểu tham chiếu chứa tham chiếu đến một phương thức. Tham chiếu có thể được thay đổi trong thời gian chạy.

Cú pháp khai báo Ủy quyền -

delegate <return type> <delegate-name> <parameter list>

Bây giờ chúng ta hãy xem cách khởi tạo các đại diện trong C #.

Khi một kiểu ủy quyền được khai báo, một đối tượng ủy nhiệm phải được tạo bằng từ khóa mới và được liên kết với một phương thức cụ thể. Khi tạo một đại biểu, đối số được truyền cho biểu thức mới được viết tương tự như một lệnh gọi phương thức, nhưng không có đối số cho phương thức.

public delegate void printString(string s);
...
printString ps1 = new printString(WriteToScreen);
printString ps2 = new printString(WriteToFile);

Sau đây là một ví dụ để khai báo và khởi tạo các đại diện trong C # -

Ví dụ

using System;

delegate int NumberChanger(int n);
namespace DelegateAppl {

   class TestDelegate {
      static int num = 10;

      public static int AddNum(int p) {
         num += p;
         return num;
      }

      public static int MultNum(int q) {
         num *= q;
         return num;
      }

      public static int getNum() {
         return num;
      }

      static void Main(string[] args) {
         //create delegate instances
         NumberChanger nc1 = new NumberChanger(AddNum);
         NumberChanger nc2 = new NumberChanger(MultNum);

         //calling the methods using the delegate objects
         nc1(25);
         Console.WriteLine("Value of Num: {0}", getNum());
         nc2(5);
         Console.WriteLine("Value of Num: {0}", getNum());
         Console.ReadKey();
      }
   }
}

Đầu ra

Value of Num: 35
Value of Num: 175