Từ 1 tới 5 trên tổng số 5 kết quả

Đề tài: Về delegate

  1. #1
    Ngày gia nhập
    03 2008
    Bài viết
    5

    Mặc định Về delegate

    Đ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?

  2. #2
    Ngày gia nhập
    10 2007
    Nơi ở
    Gameloft studio
    Bài viết
    175

    Đọ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 ...

  3. #3
    No Avatar
    langtugacon Khách

    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=

  4. #4
    Ngày gia nhập
    03 2008
    Bài viết
    5

    Trong code sau tôi có mấy chỗ thắc mắc,mọi người giải đáp giúp nhé
    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();
        }

    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:
    someProcs += new Procedure(DelegateDemo.Method1); 
    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?
    Mọi người làm ơn giải thích hộ cái nhé

  5. #5
    Ngày gia nhập
    04 2007
    Bài viết
    128

    Trích dẫn Nguyên bản được gửi bởi the-misery Xem bài viết
    Trong code sau tôi có mấy chỗ thắc mắc,mọi người giải đáp giúp nhé
    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();
        }

    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:
    someProcs += new Procedure(DelegateDemo.Method1); 
    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?
    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

Các đề tài tương tự

  1. Cơ bản Delegate trong lập trình C#
    Gửi bởi Yin Yang trong diễn đàn Tutorials và Thủ thuật lập trình C#, ASP.NET
    Trả lời: 11
    Bài viết cuối: 07-11-2012, 01:22 AM
  2. Vấn đề delegate
    Gửi bởi kimdaiphong trong diễn đàn Nhập môn lập trình C#, ASP.NET
    Trả lời: 3
    Bài viết cuối: 21-04-2012, 12:10 PM
  3. Có thể hiểu INotifyPropertyChanged như Delegate đc ko ?
    Gửi bởi langtu072 trong diễn đàn Thắc mắc lập trình ASP.NET
    Trả lời: 0
    Bài viết cuối: 30-12-2011, 11:00 AM
  4. nhược điểm của việc sử dụng delegate là gì?
    Gửi bởi thuy5789 trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 18
    Bài viết cuối: 20-05-2011, 03:01 PM
  5. Có thể tạo được một mảng delegate ?
    Gửi bởi nqthanh trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 2
    Bài viết cuối: 25-07-2009, 12:24 PM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn