The implicit reference conversions are:
object
.S
to any class-type T
, provided S
is derived from T
.S
to any interface-type T
, provided S
implements T
.S
to any interface-type T
, provided S
is derived from T
.S
with an element type SE
to an array-type T
with an element type TE
, provided all of the following are true:
S
and T
differ only in element type. In other words, S
and T
are both statically ranked arrays with the same number of dimensions, or S
and T
are both dynamically ranked arrays.SE
and TE
are reference-types.SE
to TE
.S
to a dynamically ranked array-type T
, provided S
and T
have the same element type.System.Array
.System.Delegate
.System.ICloneable
.The implicit reference conversions are those conversions between reference-types that can be proven to always succeed, and therefore require no checks at run-time.
Reference conversions, implicit or explicit, never change the referential identity of the object being converted. In other words, while a reference conversion may change the type of a value, it never changes the value itself.