C#委托与事件,通俗易懂详细解释

请尊重原创如果转载请注明出处和作者,尊重别人的劳动成果

 


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace @delegate
{
       //这里是充气娃娃拥有的一些特性,中国的娃娃叫声,日本的娃娃的叫声,娃娃的价格
      public class ChongQiWaWaArgs : EventArgs
      {
            public readonly string zhonggejiaofa;  //中国娃娃叫声
            public readonly string yibenjiaofa;  //日本娃娃叫声
            public readonly string jiage;  //价格
            public ChongQiWaWaArgs(string zhonggejiaofa, string yibenjiaofa, string jiage)
            {
                  this.zhonggejiaofa = zhonggejiaofa;
                  this.yibenjiaofa = yibenjiaofa;
                  this.jiage = jiage;
            }
      }

       //中国娃娃信息
      class zhonggejiaowawa
      {
            public static void zhonggejiaowawayanzhi(object sender, ChongQiWaWaArgs yanzhi)
            {
                  Console.WriteLine("中国娃娃叫法:" + yanzhi.zhonggejiaofa + "   价格:" + yanzhi.jiage);
            }
      }

       //日本娃娃信息
      class yibenjiaowawa
      {
            public static void yibenjiaowawayanzhi(object sender, ChongQiWaWaArgs yanzhi)
            {
                  Console.WriteLine("日本娃娃叫法:" + yanzhi.yibenjiaofa + "   价格:" + yanzhi.jiage);
            }
      }

       //这里是卖充气娃娃的淘宝店
      public class taobaodian
      {
             //声明一个卖充气娃娃的委托,也就是可以进货多种娃娃的仓库
            public delegate void wawa(object sender, ChongQiWaWaArgs yanzhi);
             //声明一个卖充气娃娃事件,也就是可以卖多种娃娃的店面
            public event wawa maiwawa;

             //如果有娃娃就卖娃娃
            public void MaiWaWa(ChongQiWaWaArgs yanzhi)
            {
                  if (maiwawa != null)
                  {
                         //可以开始卖充气娃娃事件
                        Console.WriteLine("娃娃专卖店:本店物美价廉,送货极速,欢迎选购!");
                        maiwawa(this,yanzhi);
                  }
            }

             //是否卖娃娃,做生意
            public void beginmaiwawa(ChongQiWaWaArgs yanzhi)
            {
                   //已经进货娃娃了,可以卖了
                  MaiWaWa(yanzhi);
            }       
      }

       //这里是给淘宝店添加各种各样商品的厂家
      class changjia
      {
            public changjia(taobaodian dianzu, ChongQiWaWaArgs waimao)
            {
                   //给淘宝店添加中国、日本娃娃
                  dianzu.maiwawa += new taobaodian.wawa(zhonggejiaowawa.zhonggejiaowawayanzhi);
                  dianzu.maiwawa += new taobaodian.wawa(yibenjiaowawa.yibenjiaowawayanzhi);

                   //淘宝店可以开始卖娃娃了
                  dianzu.beginmaiwawa(waimao);
            }
      }

      public class Program
      {
             //这里是我们人们需求,想娃娃外貌和价格是怎么样的
            public static void Main()
            {
                   //想要的娃娃外貌
                  ChongQiWaWaArgs waimao = new ChongQiWaWaArgs("啊~啊~啊","ya ba de","100元");
                   //通知厂长要给淘宝店生成一个外貌这样的娃娃,然后淘宝店才有得卖
                  changjia changzhan = new changjia(new taobaodian(), waimao);

                  Console.WriteLine(" ");
                  Console.Write("请输入您想要娃娃(1 或者 2):");
                  string wawadaihao = Console.ReadLine();

                  if (wawadaihao == "1")
                  {
                        Console.WriteLine("您买了一个中国娃娃   " + "花费价格为:100元.");
                  }
                  else if (wawadaihao == "2")
                  {
                        Console.WriteLine("您买了一个日本娃娃   " + "花费价格为:100元.");
                  }
                  else
                  {
                        Console.WriteLine("对不起,我们没有生成这种娃娃.");
                  }

                  Console.ReadKey();
            }
      }
}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值