i think the essential cause for this is that the int is value types, and the getid() accepts a reference type, so, there needs to be a boxing process. everytime you boxing, you get a new id of the boxed int(not the original one).
hope this will help you.