The compiler does not take into account what you do with the result when it determines the type of result of the expression. The rules for using types in an expression take into account only the values ββin the expression itself, and not what you do with the value later.
In the case when you assign the result to a variable, you could use this information, but think about the following:
Console.Write(L + UL);
The Write method has overloads that accept several different types of data, which makes it difficult to decide how to use this information.
For example, there is an overload that takes a string, so one of the possible ways to promote types (and a good candidate, since it does not lose any precision) was to convert both values ββto strings first and then combine them, which is probably not the result of what you were after.
Guffa
source share