Đọc thử "bài này" đi cậu, tiếng anh, có gì không hiểu thì post thắc mắc lên chứ hỏi như vậy biết thế nào mà trả lời bạn.
"Bài viết sưu tầm"
Đang học C#,đến phần delegate thấy khó hiểu quá.Tìm trong diễn đàn đọc chằng hiểu được mấy,mọi người có thể làm cái hướng dẫn về nó được không?
Đọc thử "bài này" đi cậu, tiếng anh, có gì không hiểu thì post thắc mắc lên chứ hỏi như vậy biết thế nào mà trả lời bạn.
"Bài viết sưu tầm"
Đã được chỉnh sửa lần cuối bởi Forlorn_hope : 19-04-2008 lúc 09:46 AM.
Không biết ghi gì luôn ...
Cái này trên mạng có một bài hướng dẫn khá hay bằng TV đây này (chẳng nhớ tác giả là ai nữa, giờ tụi nó copy paste vô lương tâm quá, search ra thấy nhan nhản)
http://zensoft.vn/ShowArticle.aspx?ID=1873
Kết quả tìm kiếm google:
http://www.google.com.vn/search?hl=v...1%BA%BFm&meta=
Trong code sau tôi có mấy chỗ thắc mắc,mọi người giải đáp giúp nhé
Bản chất thực sự của delegate là gì?tôi thấy nó có kiểu trả về như hàm,nhưng lại có thể new để tạo 1 thể hiện như class.Tại sao delegate có thể không nằm trong bất kỳ class nào như trong code trên?delegate có thể đói gói bất cứ method nào cùng kiểu trả về với nó và cùng giống kiểu tham số?ví dụ ởPHP Code:using System;
using System.Collections;
delegate void Procedure();
class DelegateDemo
{
static void Method1()
{
Console.WriteLine("Method 1");
}
static void Method2()
{
Console.WriteLine("Method 2");
}
void Method3()
{
Console.WriteLine("Method 3");
}
static void Main()
{
Procedure someProcs = null;
someProcs += new Procedure(DelegateDemo.Method1);
someProcs += new Procedure(DelegateDemo.Method2);
DelegateDemo demo = new DelegateDemo();
someProcs += new Procedure(demo.Method3);
someProcs();
Console.Read();
}
}
thì dấu + có ý nghĩa như thế nào,tại sao có hay không có dấu + thì kết quả như nhau?PHP Code:someProcs += new Procedure(DelegateDemo.Method1);
Mọi người làm ơn giải thích hộ cái nhé
Cứ hiểu đơn giản là con trỏ hàm như trong C/C++ ấy, hàm khởi tạo của delegate nhận tên của 1 phương thức nào đó. Khi bạn chạy delegae này, tức là bạn chạy phương thức mà delegate trỏ tới.
Dấu + tức là cho delegate trỏ tới thêm 1 phương thức nữa. Lần này khi bạn gọi delegate thì nó sẽ gọi cùng lúc nhiều phương thức mà nó hiện trỏ tới.
Nói nôm na là vậy, trong ebook C# có nói quá rõ ràng rồi, bạn nên tự mò mẫm