C# is based mostly on C++, Pascal and Java. It's a lot of C++ syntax, but without the need to mess with pointers. It's object oriented like Java. It's strictly typed like Pascal (and Java). I think that you should choose your class depending on where you feel that your weaknesses are. If you want to learn about object orientation you should choose Java, if you like to learn about what really happens with bytes and references you should choose C++.
Experience is the sum of all the mistakes you have done.