Tôi đang thử nghiệm bằng cách gọi hàm đại biểu từ một mảng đại biểu. Tôi đã có thể tạo ra các mảng đại biểu, nhưng làm thế nào để tôi gọi cho đại biểu?Delegate Array
public delegate void pd();
public static class MyClass
{
static void p1()
{
//...
}
static void p2()
{
//...
}
//...
static pd[] delegates = new pd[] {
new pd(MyClass.p1),
new pd(MyClass.p2)
/* ... */
};
}
public class MainClass
{
static void Main()
{
// Call pd[0]
// Call pd[1]
}
}
EDIT: Lý do cho mảng là tôi cần phải gọi các chức năng đại diện bởi một chỉ số khi cần thiết. Chúng không chạy để đáp ứng với một sự kiện. Tôi thấy một lỗi nghiêm trọng (ngu ngốc) trong mã của tôi như tôi đã cố gắng thực hiện các chức năng đại biểu bằng cách sử dụng pd [] loại chứ không phải là tên của mảng (đại biểu).
Một lý do không phải là xử lý riêng các trường hợp ngoại lệ do bất kỳ đại biểu nào ném ra, thay vì chỉ bắt đầu những người đầu tiên. –
Theo chỉnh sửa của tôi, các đại biểu không được thực hiện để đáp ứng với một sự kiện, nhưng được gọi riêng lẻ bằng cách sử dụng một chỉ mục trong mảng. – pro3carp3
@jacob_c - vâng, nếu bạn thực sự muốn :) @ pro3carp3 - trong trường hợp đó bạn chỉ cần truy cập nó theo chỉ mục như bình thường cho một mảng. Không có gì đặc biệt về việc nó là một đại biểu ở đây. –