C# is C++ with certain functionality removed and with Microsoft's .Net Common Language Runtime added over the top.
The ideas for the .Net CLR are very similar to what the design principle of Java is, at least on desktop or larger computing devices: develop machine independent code that can run on any system that supports the .Net platform without recompiling. I don't think .Net includes room for the ME version (which is what Android and other mobile OSes use) or embedded devices, but it's been a while since I've looked at the design docs.
The difference is that .Net hasn't been widely adopted compared to Java for several reasons that, 10+ years later, Microsoft still hasn't fully addressed.