# Int Object Monitoring

**URL:** <https://forum.kirupa.com/t/int-object-monitoring/266143>\
**Category:** programming\
**Created:** [July 16, 2008, 5:32pm UTC](https://forum.kirupa.com/t/int-object-monitoring/266143 "2008-07-16T17:32:46Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![rschoenbach](https://avatars.discourse-cdn.com/v4/letter/r/7cd45c/32.png) [@rschoenbach](https://forum.kirupa.com/u/rschoenbach)\
**Post date:** [July 16, 2008, 5:32pm UTC](https://forum.kirupa.com/t/int-object-monitoring/266143/1 "2008-07-16T17:32:46Z")

</div>

I am trying to monitor an int object for changes in c#. Below is my code. I am looking for a new solution as this does not scale well and each time I want to monitor and object I need to create a new class.

```auto
< [FONT=Courier New][SIZE=2][FONT=Courier New][COLOR=blue][COLOR=blue]delegate[/COLOR][/COLOR] [COLOR=blue][COLOR=blue]void[/COLOR][/COLOR] [COLOR=#2b91af][COLOR=#2b91af]StateChangeHandler[/COLOR][/COLOR]([COLOR=blue][COLOR=blue]int[/COLOR][/COLOR] newGolferID);[/FONT][/SIZE][/FONT]
 
 [FONT=Courier New][SIZE=2][FONT=Courier New] [COLOR=blue][COLOR=blue]static[/COLOR][/COLOR] [COLOR=blue][COLOR=blue]class[/COLOR][/COLOR] [COLOR=#2b91af][COLOR=#2b91af]Golfer[/COLOR][/COLOR][/FONT][/SIZE][/FONT]
 [FONT=Courier New][SIZE=2][FONT=Courier New] {[/FONT][/SIZE][/FONT]
 [FONT=Courier New][SIZE=2][FONT=Courier New] [COLOR=blue][COLOR=blue]private[/COLOR][/COLOR] [COLOR=blue][COLOR=blue]static[/COLOR][/COLOR] [COLOR=blue][COLOR=blue]int[/COLOR][/COLOR] _GolferID;[/FONT][/SIZE][/FONT]
 [FONT=Courier New][SIZE=2][FONT=Courier New] [COLOR=blue][COLOR=blue]public[/COLOR][/COLOR] [COLOR=blue][COLOR=blue]static[/COLOR][/COLOR] [COLOR=blue][COLOR=blue]int[/COLOR][/COLOR] GolferID[/FONT][/SIZE][/FONT]
 [FONT=Courier New][SIZE=2][FONT=Courier New] {[/FONT][/SIZE][/FONT]
 [FONT=Courier New][SIZE=2][FONT=Courier New] [COLOR=blue][COLOR=blue]get[/COLOR][/COLOR] { [COLOR=blue][COLOR=blue]return[/COLOR][/COLOR] _GolferID; }[/FONT][/SIZE][/FONT]
 [FONT=Courier New][SIZE=2][FONT=Courier New] [COLOR=blue][COLOR=blue]set[/COLOR][/COLOR][/FONT][/SIZE][/FONT]
 [FONT=Courier New][SIZE=2][FONT=Courier New] {[/FONT][/SIZE][/FONT]
 [FONT=Courier New][SIZE=2][FONT=Courier New] [COLOR=blue][COLOR=blue]if[/COLOR][/COLOR] (_GolferID != [COLOR=blue][COLOR=blue]value[/COLOR][/COLOR])[/FONT][/SIZE][/FONT]
 [FONT=Courier New][SIZE=2][FONT=Courier New] {[/FONT][/SIZE][/FONT]
 [FONT=Courier New][SIZE=2][FONT=Courier New] _GolferID = [COLOR=blue][COLOR=blue]value[/COLOR][/COLOR];[/FONT][/SIZE][/FONT]
 [FONT=Courier New][SIZE=2][FONT=Courier New] Properties.[COLOR=#2b91af][COLOR=#2b91af]Settings[/COLOR][/COLOR].Default.golferID = [COLOR=blue][COLOR=blue]value[/COLOR][/COLOR];[/FONT][/SIZE][/FONT]
 [FONT=Courier New][SIZE=2][FONT=Courier New] Properties.[COLOR=#2b91af][COLOR=#2b91af]Settings[/COLOR][/COLOR].Default.Save();[/FONT][/SIZE][/FONT]
 [FONT=Courier New][SIZE=2][FONT=Courier New] notify();[/FONT][/SIZE][/FONT]
 [FONT=Courier New][SIZE=2][FONT=Courier New] }[/FONT][/SIZE][/FONT]
 [FONT=Courier New][SIZE=2][FONT=Courier New] }[/FONT][/SIZE][/FONT]
 [FONT=Courier New][SIZE=2][FONT=Courier New] }[/FONT][/SIZE][/FONT]
 
 [FONT=Courier New][SIZE=2][FONT=Courier New] [COLOR=blue][COLOR=blue]private[/COLOR][/COLOR] [COLOR=blue][COLOR=blue]static[/COLOR][/COLOR] [COLOR=blue][COLOR=blue]event[/COLOR][/COLOR] [COLOR=#2b91af][COLOR=#2b91af]StateChangeHandler[/COLOR][/COLOR] _onChange;[/FONT][/SIZE][/FONT]
 [FONT=Courier New][SIZE=2][FONT=Courier New] [COLOR=blue][COLOR=blue]public[/COLOR][/COLOR] [COLOR=blue][COLOR=blue]static[/COLOR][/COLOR] [COLOR=blue][COLOR=blue]event[/COLOR][/COLOR] [COLOR=#2b91af][COLOR=#2b91af]StateChangeHandler[/COLOR][/COLOR] OnStateChange[/FONT][/SIZE][/FONT]
 [FONT=Courier New][SIZE=2][FONT=Courier New] {[/FONT][/SIZE][/FONT]
 [FONT=Courier New][SIZE=2][FONT=Courier New] [COLOR=blue][COLOR=blue]add[/COLOR][/COLOR][/FONT][/SIZE][/FONT]
 [FONT=Courier New][SIZE=2][FONT=Courier New] {[/FONT][/SIZE][/FONT]
 [FONT=Courier New][SIZE=2][FONT=Courier New] _onChange += [COLOR=blue][COLOR=blue]value[/COLOR][/COLOR];[/FONT][/SIZE][/FONT]
 [FONT=Courier New][SIZE=2][FONT=Courier New] }[/FONT][/SIZE][/FONT]
 [FONT=Courier New][SIZE=2][FONT=Courier New] [COLOR=blue][COLOR=blue]remove[/COLOR][/COLOR][/FONT][/SIZE][/FONT]
 [FONT=Courier New][SIZE=2][FONT=Courier New] {[/FONT][/SIZE][/FONT]
 [FONT=Courier New][SIZE=2][FONT=Courier New] _onChange -= [COLOR=blue][COLOR=blue]value[/COLOR][/COLOR];[/FONT][/SIZE][/FONT]
 [FONT=Courier New][SIZE=2][FONT=Courier New] }[/FONT][/SIZE][/FONT]
 [FONT=Courier New][SIZE=2][FONT=Courier New] }[/FONT][/SIZE][/FONT]
 
 [FONT=Courier New][SIZE=2][FONT=Courier New] [COLOR=blue][COLOR=blue]private[/COLOR][/COLOR] [COLOR=blue][COLOR=blue]static[/COLOR][/COLOR] [COLOR=blue][COLOR=blue]void[/COLOR][/COLOR] notify()[/FONT][/SIZE][/FONT]
 [FONT=Courier New][SIZE=2][FONT=Courier New] {[/FONT][/SIZE][/FONT]
 [FONT=Courier New][SIZE=2][FONT=Courier New] [COLOR=blue][COLOR=blue]if[/COLOR][/COLOR] (_onChange != [COLOR=blue][COLOR=blue]null[/COLOR][/COLOR])[/FONT][/SIZE][/FONT]
 [FONT=Courier New][SIZE=2][FONT=Courier New] {[/FONT][/SIZE][/FONT]
 [FONT=Courier New][SIZE=2][FONT=Courier New] _onChange(_GolferID);[/FONT][/SIZE][/FONT]
 [FONT=Courier New][SIZE=2][FONT=Courier New] }[/FONT][/SIZE][/FONT]
 [FONT=Courier New][SIZE=2][FONT=Courier New] }[/FONT][/SIZE][/FONT]
 [FONT=Courier New][SIZE=2][FONT=Courier New] }[/FONT][/SIZE][/FONT]

```
