萌新关于C#委托一点见解

开博第一写C#委托(一个简单的委托)

  1.关于委托,一直是学习c#的萌新们的噩梦,小生也是。最近在学委托感觉瞬间被虐成狗,但作为C#中极为重要的一个内容,学好了将会及大地减少我们的代码量,而且这也是够装X炫技的一项内容(反正大神写的委托灵狐也是看不怎么懂),由于小生也是最近接触到了,这里先做一些简单的分享。

    2.1委托的关键字delegate,下面尝试先定义一个委托(本文先从较简单的delegate委托开始说,匿名委托灵狐还没看懂[想哭])

        public delegate void ReaduceEventHandler(float damage);

 这样一个委托就定义好,关于委托,我是把它作为一个类来进行理解的,可以认为这是一个参数为float且返回值为void的方法的类,先这样定义好接下来要用。

  2.2接下来在一个类中来用这个委托比如一个玩家类Player,这里绛舌有一个战斗的场景

   class Player{

         //第二步定义一个委托变量(2.1中的那个)

         public static ReaduceEventHandler ReduceHander;

         float playerHp;

         public float PlayerHp{

         set{

         playerHp=value;

           }

         get{

           return playerHp;

           }

       }

       public void Attack(float damage){

       Console.writeLine("攻击");

        //第四步,调用委托,注意这里是第四步,在这之前还会有一个第三步,叫委托的绑定(也叫

//注册方法)因为委托可以理解为一个方法的类那么我们定义的委托,就可以看作是一类参数为

//float且返回值为void的方法 

        ReduceHander(damage);//且当执行攻击的方法时,就会执行委托已经注册过的方法

       }

}

  2.3战斗场景的话敌人是得有的这里我们定义一个敌人

       class Enemy{

       public float HP;\\为了方便,省去封装

       public void  ReduceHp(float damage){

       Console.WriteLine("掉血了");

       }

       public Enemy(){

//这里是第三步,注册方法,第二步中我们定义的委托相当于是一个方法类的对象,这里的+=

//相当于在为委托进行赋值。(这个算是个人理解了)

      Player.ReduceHander+=ReduceHp;

}

  3.1在Main中调用一下

  public static void Main(string[]args){

  Player player=new Player();

       Enemy em=new Enemy();

       player.Attack(20)//

}

注:新人初写,还在学习,请大家多提意见!另外请大佬告知怎么学好匿名委托【发愁中】

 

转载于:https://www.cnblogs.com/BXLH/p/8298914.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值