I know nothing of C#, but there are a lot of comparisons to Java in this thread. Does C# have anything comparable to the JVM? That is, does anything compile to C# bytecode, if there is such a thing?
So Microsoft got the luxury of being able to go back to the drawing board and try to "do Java right". At least with the knowledge gained from developing Java in the 90s.
Arguably it came full circle in Java 8, which was a big update to the language.
C# compiles to Common Intermediate Language (CIL) which is then assembled into a form of bytecode.