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.
< [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]