Like others have said, Unity is a great engine to use.. it really takes care of a lot of the rudimentary and quite frankly boring parts of game development. It supports C#, JavaScript and I believe Objective-C which is what iOS uses. I myself am a C++/C# developer and C++ is defiantly the better of the two when it comes to developing games from scratch.
If you do want to use C# from scratch and not use a pre-built engine like Unity or UDK try downloading the XNA framework or Windows Phone 7.1/8.0 SDK. The reason I say the windows phone SDK is because Microsoft has decided to discontinue XNA and push it's indie game development resources into Windows Phone - which is transferable to Xbox 360 Live Arcade, Windows Phone, and Windows PC. Give that a try, it's a lot of fun.