c# - Functions that call functions and/or delegates -


let's have enemy class couple properties , method addpoints add experience points enemy object. after amount of experience points level property of enemy object increase.

initially thought 'how can make program update level property when don't know when correct amount of experience points reached?. made me think of events (have listen event occur, in case outcome of levelup() method) decided like

   private void levelup()             {                 if (experiencepoints > (5 * level))                 {                     level++;                 }             }             public void addpoints(int points)             {                  this.experiencepoints += points;                 levelup();             } 

this way every time there points added enemy object method check whether or not level property needs incremented. having 1 method call method made think containment/delegation (one method 'nested' inside another). in way, addpoints function sort of acts function pointer (at least in mind).

does knowledge of language design or historical knowledge of c++/c# find helpful way of thinking delegates? following code there way delegate can improve program, or simple?

full enemy class

class enemy     {          public int experiencepoints { get; set; }         public string name { get; set; }           private int level;         public int level         {             { return level; }             private set { level = value; }         }          private void levelup()         {             if (experiencepoints > (5 * level))             {                 level++;             }         }         public void addpoints(int points)         {              this.experiencepoints += points;             levelup();         }          public enemy()         {             experiencepoints = 1;             level = 1;         }     } 

testing

delegate void mydelegate(int x);     class program     {         static void main(string[] args)         {               enemy e = new enemy();             mydelegate del = e.addpoints;             e.addpoints(10); //level =1 @ runtime, after call level=2             del(20);//now level=3             console.writeline(e.level);//output = 3           }     } 


Comments

Popular posts from this blog

javascript - JS causing window size to be bigger than necessary - Dropdown bug -

php - Calling a template part from a post -

How to mention the localhost in android -