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

Đề tài: Vấn đề delegate

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

    Mặc định Vấn đề delegate

    Mình đang học về delegate. Mình có đoạn code sau :

    using System;

    namespace CSharpAdvanced
    {
    class MyDelegateClass
    {
    public delegate void MyDelegateName(string str);

    public void CSharpAdnvanedMethod(MyDelegateName myDelegate)
    {
    if (myDelegate != null)
    {
    myDelegate("My Process Begin");
    }
    if (myDelegate == null)
    {
    myDelegate("My Process End");
    }
    }
    }

    class Program
    {
    public static void Main(string[] args)
    {
    MyDelegateClass myDelegateClass = new MyDelegateClass();
    MyDelegateClass.MyDelegateName myde = new MyDelegateClass.MyDelegateName(Sender);
    myDelegateClass.CSharpAdnvanedMethod(myde);
    Console.ReadLine();
    }

    static void Sender(string a)
    {
    Console.WriteLine(a);
    }
    }
    }
    Cho mình hỏi chỗ bôi đỏ không phải là myDelegateClass.MyDelegateName? Sao MyDelegateName lại trở thành 1 thành phần static của lớp MyDelegateClass vậy?
    Và tại sao hàm Sender phải static thì mới gắn vào được cái delegate myde?

    Cảm ơn các bạn và mong giúp đỡ?

  2. #2
    Ngày gia nhập
    05 2011
    Bài viết
    39

    cÁI câu thứ 2 thì mình biết... vì đơn giản hàm Main là hàm static nên cái sender kia cũng phải static thì Main mới nhìn thấy dc.

  3. #3
    Ngày gia nhập
    04 2012
    Bài viết
    1

    delegate có người viết hướng dẫn rồi, search xem.
    ps: thằng cha số 3 tên hay đấy

  4. #4
    Ngày gia nhập
    07 2010
    Bài viết
    99

    - bạn nên nhớ delegate cũng là 1 kiểu. do đó, MyDelegateName là 1 kiểu trong lớp MyDelegateClass. và khi đó tên kiểu sẽ truy cập như sau : MyDelegateClass.MyDelegateName
    - còn tại sao hàm Sender phải là static ? Đơn giản thôi, vì bạn tạo 1 delegate trong hàm Main() mà hàm Main() là hàm static, nên nó chỉ được sử dụng những thứ là static trong lớp của nó. Do đó hàm Sender truyền vào delegate cũng phải là static.
    Never try, never know

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. 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
  3. 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
  4. 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
  5. Về delegate
    Gửi bởi the-misery trong diễn đàn Nhập môn lập trình C#, ASP.NET
    Trả lời: 4
    Bài viết cuối: 20-04-2008, 09:58 AM

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