In 6.1.6. of the C# language specification, there is:
The implicit reference conversions are:
(...)
From any reference-type to a reference-type T if it has an implicit identity or reference conversion to a reference-type T0 and T0 has an identity conversion to T.
Why don't they say instead, more simply:
From any reference-type to a reference-type T if it has an implicit identity or reference conversion to T.
Is there any factual difference?
EDIT: I realized I mistyped the specification and the error could potentially be significant for the question (the specification says "The implicit reference conversion are" rather than "An implicit conversion exists")
T
could implicitly convert to typeU
due to its implicit identity or reference conversion toU
. HoweverU
may not necessarily have an identity conversion toU
. It doesn't mentionU
having a reference conversion toT
though... confuzzed. – Lews Therin