2010.4.9 委托和事件学习

来源:互联网 发布:360手机 知乎 编辑:程序博客网 时间:2024/05/01 10:17

在定义方法的时候,我们一般将基本数据类型做为方法的参数,也可以把类做为方法的参数来传递,而委托则是将整个方法做为参数来传递。类似于c语言的指针,它定义了方法的类型,使得方法可以当做另一个方法的参数来使用。下面是我学习他的步骤:

1.定义一个委托(deletegate关键字)

  public delegate void Login(string name, string password);

2.定义这个委托要调用的方法(委托的实质就是把方法作为参数)

 public void UserLogin(string name, string password)
        {
            //实现
            Console.WriteLine("HelloWord");
        }
        public void AdminLogin(string name, string password)
        {
            //实现
        }

3.实例化委托

  Login  login;//申明委托
            Program pro=new Program();
            login = new Login(pro.UserLogin);//实例化委托

4。调用委托:

 这个其实在 实例化的时候就调用了它:

  login ("user","123")

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

using System;
using System.Collections.Generic;
using System.Text;

namespace Person
{
    /// <summary>
    /// 定义委托(实在命名空间下定义的)
    /// </summary>
    /// <param name="name"></param>
    /// <param name="password"></param>
    public delegate void Login(string name, string password);
    class Presons
    {
        /// <summary>
        /// 定义委托要掉用的方法
        /// 参数与定义委托的相同
        /// </summary>
        /// <param name="name">name</param>
        /// <param name="password">password</param>
        public void UserLogin(string name, string password)
        {
            Console.WriteLine("UserLogin....{0}:{1}",name,password);
        }
        public void AdminLogin(string name, string password)
        {
            Console.WriteLine("AdminLogin...{0}::{1}",name,password);
        }
    }
    class DelegateProgram
    {
        static void Main()
        {
            //申明委托(委托名 标识符)
            Login1 login;
            Presons pd = new Presons();
            //实例化委托
            login = new Login1(pd.UserLogin);
            //调用委托
            login("小刚","123");
            login = new Login1(pd.AdminLogin);
            login("小城","253");
        }
    }
}

原创粉丝点击