关闭

c# 委托的定义及使用实例

104人阅读 评论(0) 收藏 举报
分类:
namespace 委托测试
{

    //小明类
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        //声明一个委托,其实就是个“命令”
        public delegate void BugTicketEventHandler();
        public delegate void BugTicketEventHandler2(object obj);

        private void button1_Click(object sender, EventArgs e)
        {
            //不带参数委托调用
            //这里就是具体阐述这个命令是干什么的,本例是MrZhang.BuyTicket“小张买车票”
            BugTicketEventHandler myDelegate = new BugTicketEventHandler(MrZhang.BuyTicket);

            myDelegate += MrZhang.BuyMovieTicket;

            //这时候委托被附上了具体的方法
            myDelegate();



            //带参数的静态委托调用
            BugTicketEventHandler2 myDelegate2 = new BugTicketEventHandler2(MrZhang.BuyDoorTicket);
            myDelegate2("带参数委拖");

            //带参数的非静态委托调用
            MrZhang MZ = new MrZhang();
            BugTicketEventHandler2 myDelegate3 = new BugTicketEventHandler2(MZ.BuyDoor);
            myDelegate3("非静态带参数委拖");
 
        }
    }

    //小张类
    public class MrZhang
    {
        //其实买车票的悲情人物是小张
        public static void BuyTicket()
        {
            MessageBox.Show("NND,每次都让我去买票,鸡人呀!");
        }

        public static void BuyMovieTicket()
        {
            MessageBox.Show("我去,自己泡妞,还要让我带电影票!");
        }


        public static void BuyDoorTicket(object obj)
        {
            string str = obj as string;
            MessageBox.Show(str);
        }

        public  void BuyDoor(object  obj)
        {
            string str = obj as string;
            MessageBox.Show(str);
        }
    }
}
0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:11853次
    • 积分:281
    • 等级:
    • 排名:千里之外
    • 原创:15篇
    • 转载:8篇
    • 译文:0篇
    • 评论:11条
    文章分类