C# is in the .net 'family' of languages.
The games are not coded in C#, but some of the tools to work with them created by the community are.
As it sounds like you don't have any particular experience in programming in general, I'm going to point you towards two books, one is for absolute beginners, the other is more intermediate.
http://www.amazon.com/Head-First-2E-Real-World-Programming/dp/1449380344/ref=sr_1_5?ie=UTF8&qid=1340881934&sr=8-5&keywords=c%23+beginning+programming
This one, I have not used. It does have good reviews and is indicated to be for beginners. Once you're done with it, I suggest you get one of the following two books:
http://www.amazon.com/4-0-Nutshell-The-Definitive-Reference/dp/0596800959/ref=sr_1_1?s=books&ie=UTF8&qid=1340881880&sr=1-1&keywords=c%23+4.0+in+a+nutshell
http://www.amazon.com/5-0-Nutshell-The-Definitive-Reference/dp/1449320104/ref=sr_1_2?s=books&ie=UTF8&qid=1340881880&sr=1-2
I have used the first, and it is a fairly good book. Kinda light on some details, but for the most part quite useful. The second is the same book, generally, but indicated more towards Studio 2012 that will be coming out soon.
For rom/save hacking, you'd be using primarily byte arrays and bitwise operators, which none of these books seem to get into much. I don't have time to write any tutorials on the subjects (and I'm a bit rusty on bitwise anyways).