ECMA-334 C# Language Specification14.4.3.1: Invocations on boxed instances |
A function member implemented in a value-type
can be invoked through a boxed instance of that value-type
in the following situations:
- When the function member is an override of a method inherited from type object and is invoked through an instance expression of type object.
- When the function member is an implementation of an interface function member and is invoked through an instance expression of an
interface-type
. - When the function member is invoked through a delegate.
In these situations, the boxed instance is considered to contain a variable of the value-type
, and this variable becomes the variable referenced by this within the function member invocation. [Note: In particular, this means that when a function member is invoked on a boxed instance, it is possible for the function member to modify the value contained in the boxed instance. end note]