The variable allDice is an object reference. Because we invoke the method OfReferences that indicates we are going to store object references. If we had invoked the method ofValues instead of ofReferences we would have been storing actual values. In the following example allDice is the name of the collection, add is the name of the method to add a single item to the collection and lsDice is an object reference to a single die. We now have a collection of dice.
Lets register a callback to roll the dice.
Lets look at the actual callback method now. You will notice that the linkage section passes an object reference to a single die. The linkage section of the callback method must match what you added to the collection. Remember from above we were adding object references. Collection classes can hold object references or actual date values.