For example, why this method Max(ref int x, ref int y) is not considered overload of Max(int x, int y)? Why is the same with out?
Max(ref int x, ref int y)
Max(int x, int y)
out
ref and out are the same thing, symantically. The CLR does not differentiate between the two. The C# language is making the distinction. For the CLR, there is only ref.
ref