I recommend against using C# at all if you can avoid it. Not because it's inherently bad (I wouldn't know, I haven't used it myself), but because it's built on a proprietary framework controlled by Microsoft, whereas Java, C++, etc are open frameworks. It's not good when your software can stop working with no warning just because Bill Gates pressed a big red button somewhere while laughing maniacally. Also, C++ is lower-level and therefore faster for most purposes, and when you're doing game programming, you want the extra speed. This is particularly true for 3D games, which Java is not as well suited for.
C# is not a version of C or C++, it is a completely different language. They do have a similar syntax, but the underlying rules are very different. C is compiled right to machine code, whereas C# is really just a front for CIL (which is the real underlying .Net language behind VB.Net, C#, etc...).
Go with C# if you want to quickly prototype ideas or make small games where the additional CPU overhead (which can be quite small if you are a careful programmer) is not going to be a big deal.
If you're working on a very complex game, you'll need C or C++ for the extra speed it provides.
If you do not know how to program yet I would recommend first learning in a different language(like Java or Ruby)... and do not try to just make a game until you have a good understanding of Object Oriented Programming.
If you want to dabble in making games try out something like this first. It has some really excellent tutorial on how to use it and it will teach you some programming.
Answers & Comments
Verified answer
C++ for sure,
code written in C# is a managed code means it automatically allocates memory
and releases it with garbage collector, so you can't manually manage your memory,
this means lower speed and sometimes may garbage collector
starts when it should not, and drops frame rate,
I recommend against using C# at all if you can avoid it. Not because it's inherently bad (I wouldn't know, I haven't used it myself), but because it's built on a proprietary framework controlled by Microsoft, whereas Java, C++, etc are open frameworks. It's not good when your software can stop working with no warning just because Bill Gates pressed a big red button somewhere while laughing maniacally. Also, C++ is lower-level and therefore faster for most purposes, and when you're doing game programming, you want the extra speed. This is particularly true for 3D games, which Java is not as well suited for.
C# is not a version of C or C++, it is a completely different language. They do have a similar syntax, but the underlying rules are very different. C is compiled right to machine code, whereas C# is really just a front for CIL (which is the real underlying .Net language behind VB.Net, C#, etc...).
Go with C# if you want to quickly prototype ideas or make small games where the additional CPU overhead (which can be quite small if you are a careful programmer) is not going to be a big deal.
If you're working on a very complex game, you'll need C or C++ for the extra speed it provides.
If you don't know... don't bother.
If you do not know how to program yet I would recommend first learning in a different language(like Java or Ruby)... and do not try to just make a game until you have a good understanding of Object Oriented Programming.
If you want to dabble in making games try out something like this first. It has some really excellent tutorial on how to use it and it will teach you some programming.
http://www.garagegames.com/products/torque/tgb/
Otherwise if you are just learning to program I recommend this guide:
http://poignantguide.net/ruby/
It is fun to read and it does a good job of teaching you excellent Object Oriented Programming skills.