您的位置:首页 > 其它

2010.4.9 委托和事件学习

2010-04-09 13:21 239 查看
在定义方法的时候,我们一般将基本数据类型做为方法的参数,也可以把类做为方法的参数来传递,而委托则是将整个方法做为参数来传递。类似于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");
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: