Better conversion from type
Given a conversion C1 that converts from a type S to a type T1, and a conversion C2 that converts from a type S to a type T2, the better conversion of the two conversions is determined as follows: · If T1 and T2 are the same type, neither conversion is better. · If S is T1, C1 is the better conversion. · If S is T2, C2 is the better conversion. · If an implicit conversion from T1 to T2 exists, and no implicit conversion from T2 to T1 exists, C1 is the better conversion. · If an implicit conversion from T2 to T1 exists, and no implicit conversion from T1 to T2 exists, C2 is the better conversion. · If T1 is sbyte and T2 is byte, ushort, uint, or ulong, C1 is the better conversion. · If T2 is sbyte and T1 is byte, ushort, uint, or ulong, C2 is the better conversion. · If T1 is short and T2 is ushort, uint, or ulong, C1 is the better conversion. · If T2 is short and T1 is ushort, uint, or ulong, C2 is the better conversion. · If T1 is int and T2 is uint, or ulong, C1 is the better conversion. · If T2 is int and T1 is uint, or ulong, C2 is the better conversion. · If T1 is long and T2 is ulong, C1 is the better conversion. · If T2 is long and T1 is ulong, C2 is the better conversion. · Otherwise, neither conversion is better. Note that this may define a conversion to be better even in cases where no implicit conversion is defined. Thus, for instance the conversion of the expression 6 to short is better than the conversion of 6 to ushort, because a conversion of any type to short is better than a conversion to ushort.
|